[ popmilan76 @ 21.05.2018. 22:54 ] @
POtrebno mi je ,kako da ispitam da li mi je neka forma otvorena,tj da se vidi na ekranu ili ne...Nesto tipa if form1.visible = true then....Mada tako nesto meni nece,a sve forme su otvorene kao modal? |
[ popmilan76 @ 21.05.2018. 22:54 ] @
[ savkic @ 21.05.2018. 23:17 ] @
Ako je forma Visible onda se vidi na ekranu osim ako je neka druga forma ne prekrije skroz.
Sa Screen.ActiveForm ces dobiti aktivnu formu, nije jasno da li to trazis ili nesto drugo. [ popmilan76 @ 22.05.2018. 14:22 ] @
Meni je bitno da li je aktivna ili ne,i nasao sam na netu proceduru if assign(form2) then....i ona radi.Hvala..
[ savkic @ 22.05.2018. 15:11 ] @
if Assigned(form2) samo proverava da li je pointer form2 validna (razlicita od nil), da li je vidljiva, aktivna, unistena ti ne kaze.
[ FranjoZG @ 25.05.2018. 12:43 ] @
if Assigned(form2) je malo problematičan... radi dobor samo prvi put. Ako jednom kreiraš formu i nakon toga napraviš free, if Assigned(form2) će ti uvijek vraćati true mada forma nije kreirana.
Ako nekon treba procedura... Code: function tMyClass.IsMDIChildOpen(const Forma: TForm; const AMDIChildName: string): Boolean; var i: Integer; begin Result := False; for i := Pred(Forma.MDIChildCount) DownTo 0 do if (UpperCase(Forma.MDIChildren[i].Name) = UpperCase(AMDIChildName)) then begin Result := True; Break; end; end; [ popmilan76 @ 25.05.2018. 20:16 ] @
A jel ovo samo za child forme ili bilo koje...
[ popmilan76 @ 25.05.2018. 21:48 ] @
Ovo bi trebalo biti za forme,ali isto ako se otvori jednom,radi,posle nece.....
function IsFormOpen(const FormName : string): Boolean; var i: Integer; begin Result := False; for i := Screen.FormCount - 1 DownTo 0 do if (Screen.Forms.Name = FormName) then begin Result := True; Break; end; end; procedure TForm1.Button1Click(Sender: TObject); begin if not IsFormOpen('Form2') then Form2 := TForm2.Create(Self); Form2.Show end; [ Milan Milosevic @ 26.05.2018. 05:35 ] @
Kako misli da je aktivna?
U principu preko Vislible možes da odrediš da li je vidljiva. Sve možeš i da kontrolišeš tako što ćeš napraviti promenjivu recimo Forma_vidljiva ili Forma_aktivna u glavnom junitu Kad formu kreiras ili je prikazuješ podesiš vrednost na true, a kada je zatvoriš ili uništiš podesiš vrednost na false. [Ovu poruku je menjao Milan Milosevic dana 26.05.2018. u 18:48 GMT+1] [ popmilan76 @ 26.05.2018. 18:20 ] @
Imam formu 1,i treba da prenesem neke podatke u formu 2 ,ali da proverim da li je ta forma otvorena ili ne,tj da li je aktivna ili ne...
[ Milan Milosevic @ 26.05.2018. 21:13 ] @
Code: If Form2.visible then Mada mislim da su aktivne iako forma nije vidljiva. sad ako kreiras forme dinamicki Code: if Form2 = nil then medutim treba formu nilovati kod zatvaranja da bi mogao ponovo da koristis isti pristup Code: procedure Form2.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; Form2 := nil; end; Kao sto sam i napisao u predhodnom postu mozes da napravis promenjivu u glavnom junitu i da podesis na true kad kreiras formu i na false kad je unistavas. [Ovu poruku je menjao Milan Milosevic dana 27.05.2018. u 18:22 GMT+1] Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|