Dynamiczne okienka jak w gg?

0

Elo! Mam taki problem, probuje zrobic dynamiczne okienka jak w gg. Robiłem tak ja jest w gotowcach Dynamiczne okienka jak te z GG

ten sposob z tablicami niby dzialal aczkolwiek okienek nie bylo widac w "belce" i czasem byly problemy.

Uzylem takze tego sposobu co byl w komentarzach, ale jak w poprzednim w belce nie widac okienek.

I teraz tak:

  1. Jak zrobić by kazde okienko bylo w belce
  2. Jak korzystajac z drugiego sposobu czyli:
procedure TfrmMain.CreateChatWindow(User: Integer; Caption: String);
var
  frmMsg1: tform2; // TfrmMsg jest okienkiem rozmowy
  i: Integer;
begin
  for i := 0 to Screen.FormCount - 1 do begin // pętla przechodzi przez wszystkie okienka w aplikacji
    if Screen.Forms[i].Tag = User then begin // sprawdzamy czy okienko z określonym numerem już istnieje
      Screen.Forms[i].Caption := Caption; // nadajemy tytuł okna
      Screen.Forms[i].SetFocus; // dajemy focus na to okienko
      Exit;  // nie wykonuj reszty funkcji
    end;
  end;
  frmMsg1 := TfrmMsg.Create(Application); // tworzymy nowe okno
  frmMsg1.Tag := User; // właściwośc Tag przechowywuje numer użytkownika z którym rozmawiamy
  frmMsg1.Caption := Caption;
  frmMsg1.Show; // pokazujemy nowo utworzoną formę
end;

Dodac linie do memo ktore sie znajduje w okienku ktore ma okreslony tag?

0
  1. do public formy dodaj
procedure CreateParams(var Params: TCreateParams); override;

w kodzie

procedure TfrmMsg.CreateParams(var Params: TCreateParams);
begin
  inherited;
  Params.ExStyle:=Params.ExStyle or WS_EX_APPWINDOW;
  Params.WndParent := GetDesktopWindow;
end;
  1. pomyśleć
0

Misiekd:

  1. Działa, dzieki!
  2. heh... niestety, przy braku wiedzy, myślenie nic nie da. W przypadku tablic wiedzialem jak zrobic w ktoryms z okienek bo mialem F[i] i dzieki tablicy "wybieralem" se na którym okienku chce zrobić jakąs akcje na jakims komponencie, a tutaj mam tylko frmmsg1....

próbowałem coś tym kombinowac:

for i := 0 to Screen.FormCount - 1 do begin
    if Screen.forms[i].tag = User then begin
      Screen.Forms[i].show;
      frmmsg1.msgs.Lines.Add('lol');
    end;
  end;

ale nie wiedzialem jaka jest procedura (i czy w ogole jest taka) by te frmmsg1.msgs.lines.add('lol'); bylo skierowane do konkretnego okienka i wywalał błąd przy wywołaniu tego kodu

0

Przepraszam ale jakie komponenty idą do tego kodu??:>

// omg ... - Cold

No co spytać nie można??

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