Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 2.567 pregleda

Najnovija ↓

Forme i kako znati da li je otvorena ili ne 21.05.2018. u 23:54 · pre 102 meseca #1
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?
Re: Forme i kako znati da li je otvorena ili ne 22.05.2018. u 00:17 · pre 102 meseca #2
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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: Forme i kako znati da li je otvorena ili ne 22.05.2018. u 16:11 · pre 102 meseca #4
if Assigned(form2) samo proverava da li je pointer form2 validna (razlicita od nil), da li je vidljiva, aktivna, unistena ti ne kaze.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Sviđa mi se1
Re: Forme i kako znati da li je otvorena ili ne 25.05.2018. u 13:43 · pre 102 meseca #5
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;
Re: Forme i kako znati da li je otvorena ili ne 25.05.2018. u 22:48 · pre 102 meseca #7
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;
Re: Forme i kako znati da li je otvorena ili ne 26.05.2018. u 06:35 · pre 102 meseca
izmenjeno 1 put, poslednji put Milan Milosevic 26.05.2018. u 18:48
  1. Milan Milosevic26.05.2018. u 18:48zapis iz teksta poruke
#8
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.
Re: Forme i kako znati da li je otvorena ili ne 26.05.2018. u 22:13 · pre 102 meseca
izmenjeno 1 put, poslednji put Milan Milosevic 27.05.2018. u 18:22
  1. Milan Milosevic27.05.2018. u 18:22zapis iz teksta poruke
#10
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.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme