關於動態視窗的釋放和ThemeEngine的問題

2021-09-05 20:17:41 字數 1149 閱讀 6698

關於動態視窗的釋放和themeengine的問題 vcl元件開發及應用

首先第乙個問題  

我有個動態查詢視窗form3,當我在form1裡按button1的時候,建立form3,並且把查詢資料庫的結果返回給form3上的stringgrid1中,當我點下form3的button1(form3.button1的modalresult=mrok)時候,希望把結果返回到form1.edit1.text中,具體語句如下:  

if   query.frmquery.showmodal=mrok   then   begin  

showmessage('123');  

edit1.text   :=trim(query.frmquery.stringgrid1.cells[globlej-1,query.frmquery.stringgrid1.row]);  

end;  

如果在不在form3的close動作裡寫action:=cafree;       上面的語句就沒問題,如果寫了action:=cafree;,把showmessage去掉也沒問題,但是加上showmessage就會報錯,有點迷惑了,這裡總是似懂非懂,請大家幫忙解釋下為什麼.  

第2個問題,我上面的查詢視窗沒用themeengine的時候使用正常,如果我把窗體全換成themeengine的之後就會報錯,錯誤提示如下:project   project1.exe   raised   exception   class   elisterror   with   message   'list   index   out   of   bounds(-1)'   process   stoped   use   step   or   run   to   continue.  

這個是為什麼呢?

第二個是索引越界,檢查一下list下標引用

加了action:=cafree會導致窗體關閉後,立即進行了釋放,如果窗體關閉還要用它裡面的內容,最好不要加釋放語句。

list下標引用這裡能不能說的再詳細點呢?

如果frmquery已經釋放了,引用它裡面的物件肯定不行了。  

只要物件在,你可以除錯一下呀,看看下標的範圍,看一下是否引用已超出了這個範圍

list裡下標索引是基於0的,如list裡有5個元素,下標從0到4

問題解決,謝謝樓上的兩位。

關於Theme的修改

一 每一種theme都有自己的樣式,包括dialog什麼的,我得需求是不管什麼主題,彈出的對話方塊都是白色對話方塊,1,theme檔案位置z myandroid frameworks base core res res values,那麼好了,找到theme裡面設定對話方塊的樣式的位置,這是我把th...

C 分配和釋放動態陣列

主程式 include pch.h include point.h intmain point.h pragma once include using namespace std class point intgety const static void showcount 靜態函式成員 將動態陣列...

Android 中的Theme和Style使用

android 中的theme和style使用,還是比較簡單的。1 首先在res values styles.xml的resource中定義三個樣式,分別為 然後在res layout檔案下的activity main.xml中的控制項中引用剛才定義的style。android id id text...