Ich habe versucht alles auf einen Ontimer zu setzten, und der ontimer procedure nur die jeweilige form mitzuteilen die verändert werden soll.
Ich schaue mir nun mal deinen code etwas genauer an.. bis jetzt kann ich damit nicht viel anfangen... warschienlich aus reiner unwissenheit
Nachtrag:
Der Timer und das Formualr werden in der selben Formklasse erzeugt.
hier mal der code:
Delphi-Quellcode:
Procedure TMain.GetConfig;
begin
SetLength(PopUpInfos,1);
PopUpInfos[0].timer:= TTimer.Create(nil);
PopUpInfos[0].Form:=TPopInfoForm.Create(nil);
PopUpInfos[0].Timer.interval:=20;
PopUpInfos[0].Timer.ontimer:=PopupInfoTimer;
TPopInfoForm(PopUpInfos[0].Form).Show;
PopUpInfos[0].Timer.enabled:=true;
End;
Procedure TMain.PopupInfoTimer(Sender:TObject);
var
count:integer;
begin
with TPopInfoForm(PopUpInfos[0].Form) do begin
PopUpInfos[0].Count:=PopUpInfos[0].Count+1;
TiCount.Caption:=IntToStr(PopUpInfos[0].count);
if PopUpInfos[0].Count < 27 then begin
alphablendvalue:= alphablendvalue+ 9;
Top:=Top-3;
Height:=Height+3;
end else if PopUpInfos[0].Count =28 then begin
PopUpInfos[0].Timer.interval:=2000;
alphablendvalue:=255;
end else if PopUpInfos[0].Count < 56 then begin
PopUpInfos[0].Timer.interval:=20;
Top:=Top+3;
Height:=Height-3;
alphablendvalue:= alphablendvalue-9;
end else if PopUpInfos[0].count = 56 then begin
PopUpInfos[0].Timer.enabled:=False;
AlphaBlendValue:=0;
PopUpInfos[0].Count:=0;
TPopInfoForm(PopUpInfos[0].Form).free;
PopUpInfos[0].Timer.enabled:=false;
PopUpInfos[0].Timer.free;
end;
end;
Hierbei soll der Index i moment 0 durch ne variable ersetzt werden.