Autor Beitrag
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: So 15.09.02 16:38 
Erstmal der Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
type
  TMyThread = class(TThread)
  private
    { Private declarations }
  protected
    procedure Execute; override;
  end;

...

procedure TMyThread.Execute;
begin
   ShowMessage('Hello World!');
end;

procedure TForm1.Button1Click(Sender: TObject);
var
   MyThread: TMyThread;
begin
   MyThread := TMyThread.Create(true);
   MyThread.Priority := tpLower;
   MyThread.FreeOnTerminate := true;
   MyThread.Resume;
end;


Eine einfache Threadkonstruktion. Doch nachdem ich dann auf den Button1 drücke, und der Thread gestartet wird (so hoffe ich wenigstens :wink:) bekomme ich folgende Fehlermeldung:
'Canvas does not allow drawing.'

Ich hab mir schon ein paar Tutorials usw. angeguckt, doch irgendwie haben die mir nicht viel geholfen. Was ist daran falsch? Ich glaube ich stelle mich einfach nur blöd dran, aber es ist schon deprimierend :bawling: wenn man einen einfachen Thread nicht zum laufen bekommt, zumal Delphi einem das mit der Klasse TThread ja auch noch erleichtert :( .

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
O'rallY Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: So 15.09.02 18:29 
öhm, hab ich die Frage falsch gestellt? Ich hab gedacht, dass meine Frage in Nullkommanix beantwortet werden kann... BITTE, HILFE!

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 15.09.02 18:42 
Was erwartest du? :shock: Es sind gerade mal zwei Stunden um! :roll: Und es scheint noch niemand vorbeigekommen zu sein, der dir helfden könnte, soll vorkommen.

bei Delphi ist ein Threaddemo dabei im Unterverzeichnis Demos. da geht es um Sortierverfahren, musse mal guggen.
aogwaba
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 109



BeitragVerfasst: So 15.09.02 19:26 
Hi!
in der OH steht in Bezug zu TThread.Execute:

Hinweis

Verwenden Sie die Eigenschaften und Methoden anderer Objekt nicht direkt in der Methode Execute eines Threads. Setzen Sie dazu einen separaten Prozedurenaufruf ein und rufen Sie diese Prozedur auf, indem Sie sie als Parameter an die Methode Synchronize übergeben.

cu
waba
O'rallY Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: So 15.09.02 19:38 
Zitat:
Was erwartest du? Es sind gerade mal zwei Stunden um! Und es scheint noch niemand vorbeigekommen zu sein, der dir helfden könnte, soll vorkommen.
Ja, entschuldigung. War n bisl ungeduldig von mir (ich bins gewöhnt, superschnell Antworten zu bekommen, hier in diesem tollen Forum :wink: :lol:). Also, in Zukunft lass ich son Sch... *tief bereuh* :roll:

Zitat:
bei Delphi ist ein Threaddemo dabei im Unterverzeichnis Demos. da geht es um Sortierverfahren, musse mal guggen.


Hab ich schon angeguckt, nur nicht ganz "gecheckt". Sollte mal das ganze mal etwas genauer unter die Lupe nehmen.

Also nochmal, entschuldigung, war heut nicht so mein Tag. Musst mir verzeihen :crying:
Ok, trotzallem DANKE für die Hilfe! :)

_________________
.oO'rallY
Linux is like a tipi: No gates, no windows and a gnu-eating apache inside...
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Mo 16.09.02 13:50 
Hi,

kuck dir mal die TThread.Synchronize Methode an. Das dürfte die Lösung zu deinem Problem sein!

Gruss,
tom