會什麼呼叫第二個form並縮小該視窗時,是縮小在下面工具列之上? |
尚未結案
|
tina
一般會員 發表:4 回覆:0 積分:0 註冊:2002-08-03 發送簡訊給我 |
請問一下,
我現在有一個project
主程式中,有一個button和一個label,button按下後出現Form2...
問題1:
我想當Form2的borderIcon中,視窗最小化被按下時,就改變Lebel的內容,請問我要怎麼做?我加了ApplicationEvents在Form2,當OnMinimize發生時,改變Label的內容.可是,執行後,這時事件都不會發生,直到mainForm被縮小化是才會發生..怎麼會這樣?不是應該Form2被縮小化才會觸發嗎? 問題2:
當我使Form2的Label內容值被改變時,按下右上方的關閉,可是當我再按下MainForm的button時,Form2的Label還是在被修改後的狀態;我想作到的是..
只要我按下button,出現的Form2都是全新的(未被修改過的)...我該怎麼做?
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
我想你的問題沒人回答主要是因為狀況交代不清楚, 是否使用MDIForm,Form Close時是否有Free,Form是否AutoCreate 均會影響結果, 你可以將整個project壓縮彼傳到"會員求助程式上傳區" 我只能用猜的方式稍做回答吧
1. TApplicationEvents元件是Implement Application層次之元件,不論你放在何處,當然在MainForm被縮小化才有用
Form2被縮小化好像沒有現成之Event, 必須寫在WndProc 2.
可是當我再按下MainForm的button時,Form2的Label還是在被修改後的狀態
那要看你如何Create form2, 是否有Free等
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
Hello tina try this :
//Form1 procedure TForm1.Button1Click(Sender: TObject); begin Application.CreateForm(TForm2, Form2); Form2.MyLabel := Label1; Form2.ShowModal; end; //Form2 type TForm2 = class(TForm) Memo1: TMemo; Label1: TLabel; private { Private declarations } public { Public declarations } MyLabel : TLabel; procedure DefaultHandler(var Message); override; end; procedure TForm2.DefaultHandler(var Message); begin with TMessage(Message) do begin case Msg of WM_SYSCOMMAND: begin if wParam = SC_MINIMIZE then begin Label1.Caption := 'Minimized'; MyLabel.Caption := 'Form2 Minimized'; end; end; end; Result := DefWindowProc(Handle, Msg, wParam, lParam); end; end;
------
我不是高手, 高手是正在銀幕前微笑的人. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |