Hallo,
ich lade täglich von 12 verschiedenen Lieferanten die Artikeldateien in meine WaWi. Das dauert insgesamt ungefähr 10 Minuten, während denen man oft den Eindruck hat, das Programm wäre abgestürzt. Vor allem auch deshalb, weil sowohl ein anmiertes Gif als auch eine timergesteuerte Laufschrift of längere Zeit stehenbleiben. Hier im Forum hat man mir dazu geraten, das Gif über einen 2. Thread laufen zu lassen. Um das Problem auf den Kern zu reduzieren, habe ich mir ein kleines Testprogramm erstellt, das nur das Gif-Bild in einem 2.Thread starten und wieder stoppen soll. Doch das funktioniert nicht.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70:
| unit UHaupt;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, GifImage, ExtCtrls, StdCtrls;
type TFHaupt = class(TForm) Image1: TImage; Button1: TButton; Button2: TButton; Button3: TButton; procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); private public end; TTestThread = class(TThread) constructor Create (CreateSuspended : Boolean); protected procedure Execute; override; end;
var FHaupt: TFHaupt; Thread : TTestThread; NewImage:TImage; NewForm:TForm;
implementation
{$R *.dfm}
constructor TTestThread.Create (CreateSuspended : Boolean); begin inherited Create (CreateSuspended); NewImage:=TImage.Create(FHaupt); NewImage.Left:=10; NewImage.Top:=10; NewImage.Picture.LoadFromFile('laden.gif'); end;
procedure TTestThread.Execute; begin end;
procedure TFHaupt.Button2Click(Sender: TObject); begin Thread := TTestThread.Create(True); Thread.Resume; end;
procedure TFHaupt.Button3Click(Sender: TObject); begin Thread.Free; end;
end. |
Inzwischen habe ich Zweifel, ob mein Vorhaben überhaupt möglich ist. Allerdings habe ich noch nie mit Threads gearbeitet, so daß ich es auch für möglich halte, daß ich da was grundsätzliches falsch mache.
Vielleicht kann mir hier jemand auf dei Sprünge helfen.
Danke Ebi
Moderiert von
Narses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 30.08.2010 um 15:43