hallo,
bitte entschuldigt erstmal, das ich hier so viel Code poste, bin aber grad ein wenig verwirrt und hoffe so Licht ins Dunkel zu bringen.
Also ich hatte folgenden Code:
Code:
procedure Tfmain.LaptoptoPC;
begin
showmovie(true);
// mache hier eine synchronisation von mehreren Datenbanken
showmovie(false);
end;
Wobei showmovie dieser Code ist:
Code:
begin
if show= true then begin
for i:= 0 to fmain.ControlCount-1 do
fmain.Controls[i].Visible:= false;
with fmain.Animate do begin
visible:= true;
active:= true;
end;
end ;
else begin
for i:= 0 to fmain.controlCount-1 do
fmain.Controls[i].Visible:= true;
with fmain.Animate do begin
visible:= false;
active:= false;
end;
end;
end;
Alles was dieser Code macht ist, dass waehrend die Synchronisation laeuft, ein Film gezeigt wird, der Film ist das fliegende Paier zwischen 2 Ordnern.
Natuerlich lief der Film nicht richtig fluessig und auch ein Application.processmessages hat mich nicht weitergebracht.
Deswegen will ich es nun mit einem Thread loesen und hoffe so, mein problem zu loesen.
Bin leider totaler Newbie und habe nun mal folgenden Code, der aber leider nicht funktioniert, es kommt zwar keine Fehlermeldung, aber es wird auch nichts gemacht. braeuchte jetzt ein paar Hilfen, was ich falsch mache, was ich beachten muss usw.
Habe jetzt mal folgenden Code:
Code:
begin
th:= showmovie_thread.Create(true);
// datenbanksynchonisation
th.Terminate;
end;
Und hier der code der Thread-
Unit:
Code:
unit thread;
interface
uses
Classes,umain;
type
showmovie_thread = class(TThread)
private
{ Private-Deklarationen }
protected
procedure Execute; override;
procedure showmovie;
end;
implementation
procedure showmovie_thread.Execute;
begin
Synchronize(showmovie);
end;
procedure showmovie_thread.showmovie;
var i: integer;
begin
//if show= true then begin
for i:= 0 to fmain.ControlCount-1 do
fmain.Controls[i].Visible:= false;
with fmain.Animate do begin
visible:= true;
active:= true;
end;
//end ;
{ else begin
for i:= 0 to fmain.controlCount-1 do
fmain.Controls[i].Visible:= true;
with fmain.Animate do begin
visible:= false;
active:= false;
end;
end;}
end;
end.
wie ihr seht habe ich es auch nicht hinbekommen, die alte showmovie prozedur so zu uebernehmen(mit true/false), da ich die Variable nicht uebergeben konnte,falls da auch noch jemand eine Idee hat waere das spitze.
Vielen, vielen Dank fuer eure Hilfe
lkz633
PS: Ich verlange wirklich keinen fertigen Code und habe selbstverstaendlich auch die Suche/
OH benutzt, bitte verdammt mich nicht