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
Antwort Antwort
Lord_stelzer

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

Re: Thread execute wird nicht ausgeführt

  Alt 16. Jul 2009, 14:14
es geht weiter xD
habs erstmal geschafft, hat alles funktioniert nun kriege ich ne Zugriffsverletzung im Thread-Code
Ich bin den Code wieder mit F7 durchgegangen so finde ich meistens meine Fehler aber mit den Threads will das nicht... da meldet er beim Thread.Create den Fehler
Delphi-Quellcode:
unit Unit2;

interface

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

type
  TMain = class(TThread)
  IdTCPClient: TIdTCPClient;
  Timer1: TTimer;
  procedure Timer1Timer(Sender: TObject);
  private

  protected
    procedure Execute; override;
    procedure Update;
  public
    hour1, min1, sek1, sekunden1, stime:real;
    Port, time1:integer;
    Host, S, nTime:string;
   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 }

function SecondsToTime(wSeconds: Word): TDateTime;
var
  wHours, wMin: Word;
begin
  wHours := Trunc(wSeconds div 3600);
  wSeconds := wSeconds - (3600 * Trunc(wSeconds div 3600));
  wMin := Trunc(wSeconds div 60);
  wSeconds := wSeconds - (60 * Trunc(wSeconds div 60));
  Result := EncodeTime(wHours, wMin, wSeconds, 0);
end;

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

procedure TMain.Execute;
begin
Timer1 := TTimer.Create(nil);
{IdTCPClient:=TIdTCPClient.Create(nil);
with IdTCPClient do
Begin
ASCIIFilter:=false;
MaxLineLength:=16384;
ReadTimeOut:=0;
RecvBufferSize:=32768;
SendBufferSize:=32768;
end;}

with Timer1 do
Begin
Interval:=1000;
enabled:=true;
end;
Synchronize(Update);
end;

procedure TMain.Timer1Timer(Sender: TObject);

Begin
S := FormatDateTime('hh:nn:ss', Time);
hour1:=strtoint(copy(S, 1, 2));
min1:=strtoint(copy(S, 4, 2));
sek1:=strtoint(copy(S, 7, 2));
sekunden1:=hour1*3600+min1*60+sek1;
time1:=Trunc(sekunden1-sTime);
nTime:=timetostr(secondstotime(time1));



{  try
  IdTCPClient.Connect(100);
  except
  end; }

End;

procedure TMain.Update;
begin
  Form1.caption := nTime;
end;

end.
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:46 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-2025 by Thomas Breitkreuz