folgendes, ich möchte gerne meine ersten threading versuche machen und bin teilweise daran gescheitert ._.
mein thread:
Code:
Unit caretthread;
interface
uses
classes,
windows;
type
Tcaretthread = Class(TThread)
private
frm: Cardinal;
protected
procedure execute; override;
public
constructor create; virtual;
procedure sethandle(carethwnd: cardinal); virtual;
end;
implementation
procedure Tcaretthread.execute;
var b: boolean;
begin
b:=false;
while b=false do hidecaret(frm);
end;
procedure Tcaretthread.sethandle(carethwnd: Cardinal);
begin
frm := carethwnd;
end;
constructor Tcaretthread.create;
begin
inherited create(true);
freeOnTerminate := true;
end;
end.
und mein aufruf:
Code:
caret := Tcaretthread.create;
caret.sethandle(richedit1.handle);
caret.resume;
ob es sinnvoll ist, ist mal dahingestellt
ist mein erster versuch mit threads und deshalb gehe ich auch davon aus das er sehr reich an fehlern ist
was ich nun nicht verstehe ist, wenn ich die zeile
while b=false do hidecaret(frm);
in
while b=false do beep(1000, 100);
abändere funktioniert das ganze