Delphi-PRAXiS
Seite 6 von 9   « Erste     456 78     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   TCollection & TCollectionitem Tutorial (https://www.delphipraxis.net/194306-tcollection-tcollectionitem-tutorial.html)

TiGü 13. Nov 2017 12:12

AW: TCollection & TCollectionitem Tutorial
 
Zitat:

Zitat von MrBrown90 (Beitrag 1386112)
Okay Id wird folgendermaßen bestimmt

Delphi-Quellcode:
Procedure TForm7.Listbox1Click(Sender:TObject)
Begin
ID=integer(ListBox1.Items.Objects[Listbox1.Itemindex]);
End;
Ps: bin allein im Büro, deswegen kann ich ja auch keine Kollegen um Hilfe Fragen

Delphi-Quellcode:
Procedure TForm7.Listbox1Click(Sender:TObject)
Begin
ID=integer(ListBox1.Items.Objects[Listbox1.Itemindex]);
ShowMessage('ID: ' + IntToStr(ID));
End;
Bitte einfach mal damit prüfen, ob ID wirklich geändert wird.

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.

MrBrown90 13. Nov 2017 18:26

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.

Sherlock 14. Nov 2017 07:13

AW: TCollection & TCollectionitem Tutorial
 
Ich steh grad aufm Schlauch, wo wird denn b gesetzt?

Sherlock

haentschman 14. Nov 2017 07:47

AW: TCollection & TCollectionitem Tutorial
 
Moin...:P
Komisch das sich noch niemand beschwert hat... :wink:
Delphi-Quellcode:
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;
:warn: Der Zugriff auf GUI Elemente aus dem Thread heraus, ist keine gute Idee!
Besser:
Ein Event aus dem Thread mit Synchronize.
http://docwiki.embarcadero.com/Libra...ad.Synchronize

MrBrown90 14. Nov 2017 07:49

AW: TCollection & TCollectionitem Tutorial
 
Oh hab ich wohl ausgelassen


In der execute, vor den if anweißungen ..b:=ID

TiGü 14. Nov 2017 07:58

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.

MrBrown90 14. Nov 2017 08:08

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.

TiGü 14. Nov 2017 08:12

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!

TiGü 14. Nov 2017 08:16

AW: TCollection & TCollectionitem Tutorial
 
Und wegen Zuhause:
Bitte lade dir die KOSTENLOSE Delphi Starter Edition runter:
https://www.embarcadero.com/de/products/delphi/starter

Installieren nicht vergessen.

MrBrown90 14. Nov 2017 09:58

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.
Seite 6 von 9   « Erste     456 78     Letzte »    

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