![]() |
AW: TCollection & TCollectionitem Tutorial
Zitat:
Delphi-Quellcode:
Bitte einfach mal damit prüfen, ob ID wirklich geändert wird.
Procedure TForm7.Listbox1Click(Sender:TObject)
Begin ID=integer(ListBox1.Items.Objects[Listbox1.Itemindex]); ShowMessage('ID: ' + IntToStr(ID)); End; Wenn du eh alleine im Büro bist, dann nutze doch den Browser, guckt ja eh keiner. Kannst ja auch ein Inkognito-Fenster/Private-Browsing-Tab nutzen. :roll: Dann könntest du auch ganz einfach deinen bisherigen Quelltext posten und wir müssen nicht immer Glaskugel polieren und du wärst auch schneller am Ziel. |
AW: TCollection & TCollectionitem Tutorial
So jetzt mal der Code wie ich ihn bisher habe
Delphi-Quellcode:
type
TForm1=class(TForm) Start:TButton; Button3:TButton; ListBox1:TListBox; Label1:TLabel1; Label2:TLabel2; ListBox3:TListBox; Edit1:TEdit; Memo1:TMemo; procedure StartCklick(Sender:TObject); procedure Button3Click(Sender:TObject); procedure FormCreate(Sender:TObject); procedure ListBox1Click(Sender:TObject); private public end; TyMyThread=Class(TThread) protected Counter:integer; procedure execute;override; public constructor create; end; var Form7:TForm7; Thread1,Thread2,Thread3,Thread4,Thread5,Thread6:TMyThread; ID,TreadID:integer; implementation procedure TMyThread.Execute; var b:integer; while not Terminated do begin sleep(100) if b=1 then begin Form7.Memo1.Lines.Add('Thread Nr.0 ' +DataTimeToStr(Now) + 'Uhr'); end; if b=2 then begin Form7.Memo1.Lines.Add('Thread Nr.1 ' +DataTimeToStr(Now) + 'Uhr'); end; end; end; procedure TForm7.StartClick(Sender :TOject); var I:integer; begin ThreadID:=ID; if ThreadID=1 then begin Thread1:=TMyThread.create; end; if ThreadID=2 then begin Thread2:=TMyThread.create; end; end; procedure TForm7.Button3Click(Sender:TObject); begin if ID=1 then begin Thread1.Terminate; Thread1.WaitFor; Thread1.Free; end; if ID=2 then begin Thread2.Terminate; Thread2.WaitFor; Thread2.Free; end; end; constructor TMyThread.create; begin inherited create(True); resume; end; procedure TForm7.FormCreate(Sender:TObject); begin Listbox1.Items.AddObject('Thread Nr. 0', TObject(1)); Listbox1.Items.AddObject('Thread Nr. 1', TObject(2)); end; procedure 7TForm7.ListBox1Click(Sender: TObject); begin ID:= integer(ListBox1.Items.Objects(ListBox1.ItemIndex)); end; end. Das wäre bis jetzt der ganze Code, muss natürlich noch ordentlich überarbeitet werden, aber ich denke soweit funktioniert es jetzt so, dass ich 2 Threads starten/stoppen kann und man dies in der Ausgabe sieht. |
AW: TCollection & TCollectionitem Tutorial
Ich steh grad aufm Schlauch, wo wird denn b gesetzt?
Sherlock |
AW: TCollection & TCollectionitem Tutorial
Moin...:P
Komisch das sich noch niemand beschwert hat... :wink:
Delphi-Quellcode:
:warn: Der Zugriff auf GUI Elemente aus dem Thread heraus, ist keine gute Idee!
procedure TMyThread.Execute;
var b:integer; while not Terminated do begin sleep(100) if b=1 then begin Form7.Memo1.Lines.Add('Thread Nr.0 ' +DataTimeToStr(Now) + 'Uhr'); ... end; Besser: Ein Event aus dem Thread mit Synchronize. ![]() |
AW: TCollection & TCollectionitem Tutorial
Oh hab ich wohl ausgelassen
In der execute, vor den if anweißungen ..b:=ID |
AW: TCollection & TCollectionitem Tutorial
Du hast jetzt nicht ernsthaft alles händisch mit dem Smartphone abgetippt, oder etwas doch? :shock:
So kann das nämlich nicht kompilieren. |
AW: TCollection & TCollectionitem Tutorial
Ne Ne, zuhause dann. Nur hab da keine Prog für Delphi, deswegen konnte ich nicht testen ...also kann sein das ich mich vll vertippt habe.
|
AW: TCollection & TCollectionitem Tutorial
E-Mail darfst du auf Arbeit auch nicht benutzen? Schick dir doch selber den Quelltext zu?!?
Eigentlich weiß ich nicht, wo man jetzt da anfangen soll. Wenn wir dir jetzt das alles vorkauen und verbessern, dann hast du keinen Lerneffekt. Versuche zuerst die Hinweise zum Case-Of und den Hinweis von haentschman bezüglich GUI-Zugriff aus einen externen Thread-Kontext heraus zu verstehen und umzusetzen. Wenn es dir Schwierigkeiten bereitet es zu verstehen: Bitte frage gezielt nach! |
AW: TCollection & TCollectionitem Tutorial
Und wegen Zuhause:
Bitte lade dir die KOSTENLOSE Delphi Starter Edition runter: ![]() Installieren nicht vergessen. |
AW: TCollection & TCollectionitem Tutorial
Vielen Dank, mache ich.
Aber eine Frage hätte ich noch. Wie sehe ich denn, das dies alles von mehreren Threads ausgeführt wird ? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz