Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Forme i kako znati da li je otvorena ili ne

[es] :: Pascal / Delphi / Kylix :: Forme i kako znati da li je otvorena ili ne

[ Pregleda: 1152 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

popmilan76
Programer

Član broj: 295089
Poruke: 1159
*.dynamic.isp.telekom.rs.



+4 Profil

icon Forme i kako znati da li je otvorena ili ne21.05.2018. u 22:54 - pre 28 meseci
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?
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2638



+69 Profil

icon Re: Forme i kako znati da li je otvorena ili ne21.05.2018. u 23:17 - pre 28 meseci
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.
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1159
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: Forme i kako znati da li je otvorena ili ne22.05.2018. u 14:22 - pre 28 meseci
Meni je bitno da li je aktivna ili ne,i nasao sam na netu proceduru if assign(form2) then....i ona radi.Hvala..
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2638



+69 Profil

icon Re: Forme i kako znati da li je otvorena ili ne22.05.2018. u 15:11 - pre 28 meseci
if Assigned(form2) samo proverava da li je pointer form2 validna (razlicita od nil), da li je vidljiva, aktivna, unistena ti ne kaze.
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 245
93.140.10.*



+2 Profil

icon Re: Forme i kako znati da li je otvorena ili ne25.05.2018. u 12:43 - pre 28 meseci
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;
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1159
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: Forme i kako znati da li je otvorena ili ne25.05.2018. u 20:16 - pre 28 meseci
A jel ovo samo za child forme ili bilo koje...
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1159
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: Forme i kako znati da li je otvorena ili ne25.05.2018. u 21:48 - pre 28 meseci
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;
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 908
*.dynamic.isp.telekom.rs.



+30 Profil

icon Re: Forme i kako znati da li je otvorena ili ne26.05.2018. u 05:35 - pre 28 meseci
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]
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1159
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: Forme i kako znati da li je otvorena ili ne26.05.2018. u 18:20 - pre 28 meseci
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...
 
Odgovor na temu

Milan Milosevic

Član broj: 67
Poruke: 908
*.dynamic.isp.telekom.rs.



+30 Profil

icon Re: Forme i kako znati da li je otvorena ili ne26.05.2018. u 21:13 - pre 28 meseci
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]
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Forme i kako znati da li je otvorena ili ne

[ Pregleda: 1152 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.