Okno

0

Mam mały problemik:
Powiedzmy, że mam button i po naciśnięciu go otwiera mi się okno modalne:

Form2.Showmodal;

na tym oknie jest też button. Co zrobić, aby po naciśnięciu go otworzyło się Form2 po raz drugi??

0

Sprawdź czy moja podpowiedź rozwiąże Twój problemik... [nuda]
Na pierwszej formie pod Button1Click wpisujesz:

  Form2.ShowModal;
  Form2.ShowModal;

Spowoduje to otwarcie Form2 drugi raz po jej zamknięciu. Nie jest to może idealne rozwiązanie, ale zawsze możesz dać

Form2.ShowModal;

w pętlę For na określoną ilość iteracji. Napisz czy to spełnia Twoje wymagania - jeśli nie, to zaradzimy.

0

jak chcesz, zeby mieć pare okiekek tej samej klasy, to musisz je gdzieś poprzechowywać, naprzykład na jakiej liście albo w tablicy. A pÓźniej tworzyć nie przez ShowModal, tylko swykłe Show.

var F:TForm2;
begin
 F:=TForm2.Create(Application);
 // Tutaj gdzieś dodawaj, żeby nie zgubić wskaźnika
 F.Show;
end;

Jeszcze musisz dać, że przy zamykaniu ma być Action:=caFree;

0

Teraz jeszcze tak sobie myślę nad tym i doszedłem do wniosku, że:

Forma pierwsza na Button1Click:

  Form2.ShowModal;

Forma druga na Button2Click:

  Form2.Visible := False;
  Sleep(200);
  Form2.Show;

Będzie tyle razy zamykać okno, ile razy klikać będziesz na przycisk na drugiej formie.

0
var F:TForm2;
begin
 F:=TForm2.Create(Application);
 // Tutaj gdzieś dodawaj, żeby nie zgubić wskaźnika
 F.Show;
end;

Pregusia, zgadzam się, że chyba najlepiej by było tworzyć tą formę dynamicznie, ale czy Ty czytałeś swój kod??

Wskaż mi klasę "TForm2", a kupię Ci skrzynkę wódki ;)

0

Sprawdź czy moja podpowiedź rozwiąże Twój problemik... [nuda]
Na pierwszej formie pod Button1Click wpisujesz:

  Form2.ShowModal;
  Form2.ShowModal;

Spowoduje to otwarcie Form2 drugi raz po jej zamknięciu. Nie jest to może idealne rozwiązanie, ale zawsze możesz dać

Form2.ShowModal;

w pętlę For na określoną ilość iteracji. Napisz czy to spełnia Twoje wymagania - jeśli nie, to zaradzimy.

oczywiście że nie spełnia, bo ja chcę mieć te okna otwarte na raz.

0

Wskaż mi klasę "TForm2", a kupię Ci skrzynkę wódki ;)

Pregusia, gratuluje zdobycia skrzynki wódki [browar] :-D .

unit Unit2;

//...

type
 TForm2 = class(TForm)  //TForm2 jako klasa potomna TForm
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2; //deklaracja Form2 jako okna klasy TForm2
//...

oczywiście że nie spełnia, bo ja chcę mieć te okna otwarte na raz.

Ludzie, alez wy macie problemy !!

Czy druga forma ma być tworzona dynamicznie ?

Jeżeli tak to dajesz np.

procedure TForm1.Button1Click(Sender: TObject);
var
  Form2 : TForm2;
begin
  Form2 := TForm2.Create(Form1);
  Form2.ShowModal;
  Form2.Free;
end;

A na drugiej formie np. :

procedure TForm2.Button1Click(Sender: TObject);
var
  Form2a : TForm2;
begin
  Form2a := TForm2.Create(Form2);
  Form2a.ShowModal;
  Form2a.Free;
end;
0

Wskaż mi klasę "TForm2", a kupię Ci skrzynkę wódki ;)

Pregusia, gratuluje zdobycia skrzynki wódki [browar] :-D .

unit Unit2;
//...

type
 TForm2 = class(TForm)  //TForm2 jako klasa potomna TForm
 

O cholera... Jestem chory i mam gorączkę :P

0

O... Widze ze skrzynka wodki będzie.... :p E... I tak nie chce, bo nie pije :p

1 użytkowników online, w tym zalogowanych: 0, gości: 1