Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Thread: Anwendung startet nicht, wieso? (https://www.delphipraxis.net/189107-thread-anwendung-startet-nicht-wieso.html)

AlexII 4. Mai 2016 12:45

Thread: Anwendung startet nicht, wieso?
 
Hallo,

schreibe meinen ersten Thread und habe bereits ein Problem, die Anwendung startet nicht. Hat jemand eine Idee warum? Der Compiler meldet auch keine Fehler, es passiert einfach nichts.

Delphi-Quellcode:
unit Unit1;

{$mode delphi}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls;


type
  TMyThread = class(TThread)
    procedure Execute; override;
  end;


type

  { TForm1 }

  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Timer1: TTimer;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  i: Integer;

implementation

{$R *.lfm}

{ TForm1 }

procedure TMyThread.Execute;
begin
  { Threadcode }
  try
    Form1.Label2.Caption := 'Ok';
  except
    on e: exception do begin
      // Fehler...
    end;
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Label1.Caption := IntToStr(i);
  i := i + 1;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  Thread1: TMyThread;
begin
  Thread1 := TMyThread.Create(False); // startet sofort
  i := 0;
end;

end.

Neutral General 4. Mai 2016 12:51

AW: Thread: Anwendung startet nicht, wieso?
 
Du darfst nicht aus dem Thread heraus auf visuelle Komponenten zugreifen.
Das geht in die Hose.

BUG 4. Mai 2016 12:52

AW: Thread: Anwendung startet nicht, wieso?
 
Zitat:

Zitat von AlexII (Beitrag 1337457)
schreibe meinen ersten Thread und habe bereits ein Problem, die Anwendung startet nicht. Hat jemand eine Idee warum?

Ja. Du greifst im Thread auf VCL-Komponenten zu. Guck dir mal synchronized an ... Luckies Tutorial ist auch lesenswert.

AlexII 4. Mai 2016 12:53

AW: Thread: Anwendung startet nicht, wieso?
 
Zitat:

Zitat von Neutral General (Beitrag 1337459)
Du darfst nicht aus dem Thread heraus auf visuelle Komponenten zugreifen.
Das geht in die Hose.

Ok... hab's entfernt uns es startet trotzdem nicht.

Neutral General 4. Mai 2016 12:58

AW: Thread: Anwendung startet nicht, wieso?
 
Zitat:

Zitat von AlexII (Beitrag 1337461)
Zitat:

Zitat von Neutral General (Beitrag 1337459)
Du darfst nicht aus dem Thread heraus auf visuelle Komponenten zugreifen.
Das geht in die Hose.

Ok... hab's entfernt uns es startet trotzdem nicht.

Dann kanns nicht am Thread liegen.
Ist das der komplette Quelltext? Hast du was in der dpr verändert?

Und was genau heißt "es startet nicht"? Hast du mal Breakpoints im FormCreate gemacht oder ggf. sogar in der dpr?
Guck mal wo du genau rausfliegst bzw. hängen bleibst.

AlexII 4. Mai 2016 13:02

AW: Thread: Anwendung startet nicht, wieso?
 
Kann es vllt an Lazarus liegen? Der Code ist komplett.

Mit nicht Starten meine ich, dass die exe nicht ausgeführt wird.

Neutral General 4. Mai 2016 13:05

AW: Thread: Anwendung startet nicht, wieso?
 
Startest du aus Lazarus heraus?
Wenn nicht, dann mach es mal.

Und wenn du es in Lazarus startest:
Was passiert nachdem du auf den Startbutton klickst?
Startet das Programm kurz und beendet sich einen Moment später direkt wieder oder startet das Programm aber es passiert nichts?

In beiden fällen können aber wie gesagt Breakpoints nicht schaden.

AlexII 4. Mai 2016 13:12

AW: Thread: Anwendung startet nicht, wieso?
 
Jah... passiert halt nix, der Play-Button(F9) wird kurz inaktiv und sofort wieder aktiv. Ich probiere es mal mit Delphi.

Neutral General 4. Mai 2016 13:21

AW: Thread: Anwendung startet nicht, wieso?
 
Starte Lazarus/Delphi mal neu und probier es nochmal.
Und wie ich schon zum 3. Mal sage: Setz mal ein paar Breakpoints.
Oder kommentier ein paar der wenigen Zeilen aus und schau an welcher Zeile es liegt.

p80286 4. Mai 2016 13:50

AW: Thread: Anwendung startet nicht, wieso?
 
Welcher "Play-Button"?
Da gibt es 2 Label und das war's.
Und wenn ein Thread irgendetwas Tut, dann sollte er eine Message an das Form senden wenn er dort eine Änderung veranlassen will!

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:53 Uhr.
Seite 1 von 2  1 2      

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