Okno

Odpowiedz Nowy wątek
2004-03-05 21:10
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??


...To wszystko co mam do powiedzenia w tej sprawie...

!user image

Pozostało 580 znaków

2004-03-05 21:39
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.

Pozostało 580 znaków

2004-03-05 21:58
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 puź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;

Pozostało 580 znaków

2004-03-05 22:03
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.

Pozostało 580 znaków

2004-03-05 23:56
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 ;)

Pozostało 580 znaków

2004-03-06 08:53
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.


...To wszystko co mam do powiedzenia w tej sprawie...

!user image

Pozostało 580 znaków

2004-03-06 08:54
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;

80% problemów które pojawiają sie na forum w postach rozwiązaliby samodzielnie ich autorzy, gdyby nie mieli internetu...

Pozostało 580 znaków

2004-03-06 12:12
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

Pozostało 580 znaków

2004-03-07 19:50
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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