Einzelnen Beitrag anzeigen

Yheeky

Registriert seit: 7. Jun 2002
1.339 Beiträge
 
#1

Thread, aber wie einbauen?!

  Alt 18. Jan 2007, 20:43
Hi,

ich habe folgendes Problem: Ich arbeite mit der TICQClient Komponente, mit der ich Usernamen anhand von UINs auslesen möchte. Dies muss ich für eine Liste von Usern machen (sagen wir mal 10 Leute). Ich weiss, dass ich hierbei Threads anwenden muss, denn ich muss ja erst den Rückwert der Funktion erhalten (den Username) und DANN erst mit der for-Schleife weitermachen.

Delphi-Quellcode:
type
  TUserInfo = class(TThread)
    private
     procedure GetUserName(UIN : Cardinal);

  end;


[...]

procedure TUserInfo.GetUserName(UIN: Cardinal);
var test : String;
begin
Form1.ICQClient1.RequestInfoShort(UIN);

end;

[...]

procedure TForm1.ICQClient1UserInfoShort(Sender: TObject; UIN, NickName,
  FirstName, LastName, Email: string; UserFound, AuthRequired: Boolean);
begin
RequestedUsername := NickName;

end;

////////////////////////////////////////////////////////////////////////

procedure TForm1.Button1Click(Sender: TObject);
begin
for I := 0 to 10 do
  begin
  UserThread.GetUserName(StrToInt(EasyListView.Items.Items[I].Captions[1])); // Hier ist die UIN drin
  // ShowMessage('Verzögerung');
  EasyListView.Items.Items[I].Captions[2] := RequestedUsername;
  end;

end;
Ich habe mit die Funktionalität mit einem kleinen Trick getestet und zwar, indem ich eine ShowMessage in die for-Schleife gemacht habe. Also funktionieren tut es generell, aber so wie es oben steht, eben nicht.

Wer kann mir helfen?
  Mit Zitat antworten Zitat