Autor Beitrag
beckman
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Sa 23.10.04 17:32 
ich versuche vergeblich (auch mit hilfe von dem forum hier und g00gle) seit einigen vielen stunden herauszufinden, wie ich ein chatfenster, das ein bestimmtes zur laufzeit erstelltese form ist, wiederfinden soll und wenns noch nicht erstellt wurde, dann nun neu erstellen kann.

ich hab schon ~20 varianten durchprobiert und nix geht.
das ist die letzte version, in der ich die UIN in der caption drin hab und nun die versuche die caption der gefundenen msgforms mit meiner uin zu vergleichen.


ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
procedure TMainForm.SendMessage1Click(Sender: TObject); 
var 
  i: Integer; 
//  msgwin: TComponent; 
begin 
SetCapture(Userlist.Handle); 
if Userlist.Selected = nil then Exit; 
 
for i := 0 to application.ComponentCount-1 do begin 
  if application.Components[i] is Tmsgform then begin 
    if tmsgform(application.Components[i]).Caption = Userlist.Selected.SubItems[UL_INDEX_NICK] then begin 
      tmsgform(application.Components[i]).Memo2.SetFocus; 
      end 
      else begin 
        with TMsgForm.Create(Self) do begin 
          FDest := Userlist.Selected.Caption; 
          FName := Userlist.Selected.SubItems[UL_INDEX_NICK]; 
          //Caption := Format('%s (%s)', [Userlist.Selected.SubItems[UL_INDEX_NICK], Userlist.Selected.Caption]); 
          Caption := Userlist.Selected.SubItems[UL_INDEX_NICK]; 
          Show; 
          end; 
        end; 
    end; 
  end; 
 
{ 
schau ob ein solches fenster schon erstellt wurde 
wenn ja, dann lass dort weiter schreiben 
wenn nicht, dann erstelle neues um dort zu schreiben. 
}
 
end;




hat endlich wer irgendne funkende loesung?
ich koennt ja HWND vom fenster fuer jeden user speichern und dann so irgenwie, wenn man mir erklaert wie das geht

mit enumchildwindows() weiss ich nix anzufangen
mit findcomponent hat nix gefunkt
und die findwindow methode will ich vermeiden, wobei ichs mit der jetzt probieren werde, es zumindest versuchen werde zu probieren :P

thanks fuer loesungsvorschlaege.

Moderiert von user profile iconMotzi: Code- durch Delphi-Tags ersetzt.
beckman Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Sa 23.10.04 19:25 
also, wenn ich jetzt mein HWND vom fenster gespeichert hab

gibts ne funktion, mit der ich sowas machen kann?

fenster(HWND).memo2.text := 'blah';

also, wenn ich den hwnd kenn.
beckman Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27



BeitragVerfasst: Sa 23.10.04 20:22 
with TForm(Pointer(StrToInt(<saved_string>))) as Tmsgform do begin memo2.text := 'blah'; end;


es geht!!!

danke an alle, die geholfen haetten :P