Re: Kontinuierlich Schleife
Zitat:
Aber ich habe auch schon Kommunikation mit seriellen Geraeten ohne Endlosscheifen programmiert ... Daher isses IMHO erforderlich zu wissen, auf was der OP rauswill. |
Re: Kontinuierlich Schleife
Hallo zusammen,
vielen Dank für die schnellen Antworten. Der Code funktiniert soweit ich das beurteilen kann, ich habe als Anfaenger nur probleme die Sache mit den Threats zu verstehen. Gibt es für den Anfang nicht eine einfachere Lösung? Das Ziel wäre zB in einem Form mit Buttons und Memos etc. eine eine ablaufende Zeit in Sekunden anzuzeigen, die "permanent" geupdated wird, ohne dass ein Ereignis eintritt? Parallel sollte das Programm aber auf Ereignisse reagieren. Vielleicht sollte ich mit einer einfachen Loesung anfangen und später die Sache mit den Threats angehen. :oops: Merci, Raena. |
Re: Kontinuierlich Schleife
Das ist mal wieder der klassische Fall, wo einem Anfänger eine völlig unpassende Lösung angeboten wird für ein Problem, das er überhaupt nicht hat. Wenn's darum geht einen Countdown auf ein Formular zu setzen, dann würde ich einem Anfänger ein Timer empfehlen. Einfach aufs Formular ziehen, doppelt draufklicken, Countdown reinschreiben, fertig.
|
Re: Kontinuierlich Schleife
Zitat:
Zitat:
|
Re: Kontinuierlich Schleife
Ja das sehe ich auch so. Die Sache mit den Threats ist bestimmt gut.
Nun aber da ich die Aufgabe klarer formuliert habe wird bestimmt einfacher. So, mit einem Timer habe ich folgendes Problem: das Label wird zwar schoen geupdated, der Button ist aber nicht mehr ansprechbar. Wie kann man erreichen, dass der Button noch reagiert, die Zeit aber trotzdem läuft? Danke.
Delphi-Quellcode:
unit Unit2;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm2 = class(TForm) Button1: TButton; Timer1: TTimer; Label1: TLabel; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; implementation {$R *.dfm} procedure TForm2.Button1Click(Sender: TObject); begin showmessage('test'); end; procedure TForm2.FormCreate(Sender: TObject); begin timer1.Enabled:=true; end; procedure TForm2.Timer1Timer(Sender: TObject); var i:integer; begin i:=0; repeat label1.Caption:=inttostr(i)+' '; label1.Refresh; inc(i); sleep(1000); until (i>100); end; end. |
Re: Kontinuierlich Schleife
Delphi-Quellcode:
Lass das sleep und die Schleife mal aus dem Code raus und stelle das Interval so ein wie Du es brauchst.
procedure TForm2.Timer1Timer(Sender: TObject);
//var i:integer; begin //i:=0; //repeat label1.Caption:=inttostr(i)+' '; label1.Refresh; //inc(i); //sleep(1000); //until (i>100); Grüße Klaus |
Re: Kontinuierlich Schleife
Was du brauchst ist eben keine Schleife sondern eine Funktion, die in regelmäßigen Zeitintervallen aufgerufen wird. Das macht alles Windows (und ich bisschen Delphi) für dich. du musst in die Methode nur reinschreiben, was nach dem Interval (siehe im Objectinspector) eben regelmäßig gemacht werden soll
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz