在MDICHILD中再開啟一個MDICHILD,必須將新開的FORM關閉 |
尚未結案
|
sangya
一般會員 發表:21 回覆:46 積分:13 註冊:2002-04-15 發送簡訊給我 |
FORM1為MDIFORM,FORM2和FORM3為MDICHILD
FORM1開啟FORM2,而FORM2則開啟FORM3,如果要再使用FORM2,必須將FORM3關閉才可使用,可是在貴站看到的程式 IF FORM3=NIL THEN
BEGIN
FORM3:=TFORM3.Create(SELF);
FORM3.Show;
END
ELSE
FORM3.Show;
都是用SHOW來顯示FORM,用SHOWMODUAL則會有問題,請問有什麼辦法可以強迫一定
要關閉FORM3,才可以使用FORM2的方法.
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
sangya
一般會員 發表:21 回覆:46 積分:13 註冊:2002-04-15 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
sangya
一般會員 發表:21 回覆:46 積分:13 註冊:2002-04-15 發送簡訊給我 |
william:程式撰寫如下
procedure TForm2.SpeedButton3Click(Sender: TObject);
begin
WITH TFORM3.Create(SELF) DO
BEGIN
TRY
SHOWMODAL;
FINALLY
FREE;
END;
END; end; procedure TForm2.FormActivate(Sender: TObject);
begin
if Assigned(Form3) then Form3.Show;
end;
還是會出現Cannot make a visible window modal的錯誤訊息
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Form2 & Form3 should be MDI child.
procedure TForm2.SpeedButton3Click(Sender: TObject); begin if not Assigned(Form3) then Form3 := TForm3.Create(self); Form3.Show; end; procedure TForm2.FormActivate(Sender: TObject); begin if Assigned(Form3) then Form3.Show; end;Free the form in Form3 using similar method in Form2. If you want to make Form3 a modal form, don't call ShowModal when Form3 is visible, use BringToFront (or do nothing) instead. |
sangya
一般會員 發表:21 回覆:46 積分:13 註冊:2002-04-15 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
sangya
一般會員 發表:21 回覆:46 積分:13 註冊:2002-04-15 發送簡訊給我 |
|
Miles
尊榮會員 發表:27 回覆:662 積分:622 註冊:2002-07-12 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
sangya
一般會員 發表:21 回覆:46 積分:13 註冊:2002-04-15 發送簡訊給我 |
|
sangya
一般會員 發表:21 回覆:46 積分:13 註冊:2002-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |