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.
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; 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 := Userlist.Selected.SubItems[UL_INDEX_NICK]; Show; end; end; end; end; 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
thanks fuer loesungsvorschlaege.
Moderiert von
Motzi: Code- durch Delphi-Tags ersetzt.