AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Thread execute wird nicht ausgeführt

Ein Thema von Lord_stelzer · begonnen am 16. Jul 2009 · letzter Beitrag vom 16. Jul 2009
 
Lord_stelzer

Registriert seit: 24. Okt 2006
Ort: Hannover
13 Beiträge
 
#1

Thread execute wird nicht ausgeführt

  Alt 16. Jul 2009, 14:00
Halli Hallo,
Ich möchte einen Clienten schreiben der Dauerhaft versucht auf einen Server zu connecten und dann evtl. auch was hinzuschicken.
Um Das Programm damit nicht langsamer zu amchen habe ich diesen Teil in einen Thread gepackt.
Weil ich mit Threads noch kine Erfahrungen gemacht habe habeich ein neues Programm erstellt um das ganze übersichtlich zu haben und es besser zu verstehen. Nun Wird aber Execute im Thread garnicht ausgeführt.
Könnt ihr mir vielleicht sagen wo mein Fehler steckt?

Main-Unit:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Unit2, ExtCtrls, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient;

type
  TForm1 = class(TForm)
    Button1: TButton;
    IdTCPClient1: TIdTCPClient;
    procedure FormCreate(Sender: TObject);
  private
    Main : TMain;
  public
    Time:string;
  end;

var
  Form1: TForm1;

implementation
{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Main := TMain.Create(tpnormal);
end;

end.
Thread-Unit:
Delphi-Quellcode:
unit Unit2;

interface

uses
  Classes, ExtCtrls, WinSock, SysUtils, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient;

type
  TMain = class(TThread)
  IdTCPClient: TIdTCPClient;
  Timer1: TTimer;
  private

  protected
    procedure Execute; override;
    procedure Update;
  public
   constructor Create(ThreadPriority: TThreadPriority);
  end;

implementation
uses Unit1;

{ Wichtig: Methoden und Eigenschaften von Objekten in visuellen Komponenten dürfen
  nur in einer Methode namens Synchronize aufgerufen werden, z.B.

      Synchronize(UpdateCaption);

  und UpdateCaption könnte folgendermaßen aussehen:

    procedure Main.UpdateCaption;
    begin
      Form1.Caption := 'Aktualisiert in einem Thread';
    end; }


{ Main }

constructor TMain.Create(ThreadPriority: TThreadPriority);
Begin
inherited Create(false);
Priority:=ThreadPriority;
end;

procedure TMain.Execute;
begin
Timer1.Create(nil);
IdTCPClient.Create(nil);
with IdTCPClient do
Begin
ASCIIFilter:=false;
MaxLineLength:=16384;
ReadTimeOut:=0;
RecvBufferSize:=32768;
SendBufferSize:=32768;
end;
with Timer1 do
Begin
enabled:=true;
Interval:=1000;
end;
  try
  IdTCPClient.Connect(100);
  except
  end;

Synchronize(Update);
end;

procedure TMain.Update;
begin
  Form1.caption := '00:00:00';
end;

end.
also das Synchronize wird schon garnicht mehr ausgeführt...
Ich bin den Quellcode auch schon mit F7 durchgegangen aber ohne Fehler...
Danke für jede Antwort
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:58 Uhr.
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 by Thomas Breitkreuz