Schönen Abend,
ich habe ein Problem mit der Strukturierung meines Programms, derzeit löse ich das Problem mit einer if Kontrollabfrage, leider führt dies zu unschönen nebenerscheinungen.
Hier erstmal der Code:
Delphi-Quellcode:
//Timer
procedure TForm3.Timer1Timer(Sender: TObject);
begin
if PicCount >= Form1.Memo1.Lines.Count-1 then
begin
PicCount := 0;
end
else
begin
Inc(PicCount);
if (PicCount mod 5) = 0 then
begin
//ShowMessage(IntToStr(PicCount mod 5));
Fadeout(ExtractFilePath(Application.ExeName)+'TempImage.bmp');
FadeIn(ExtractFilePath(Application.ExeName)+'HZImage.bmp');
sleep(2000);
Fadeout(ExtractFilePath(Application.ExeName)+'HZImage.bmp');
end
else
begin
Fadeout(ExtractFilePath(Application.ExeName)+'TempImage.bmp');
JpegToBmp(Form1.Edit1.Text + Form1.Memo1.Lines[PicCount]);
FadeIn(ExtractFilePath(Application.ExeName)+'TempImage.bmp');
end;
end;
end;
Kurze Erklärung:
Ich habe ein Image das heisst TempImage und eins das heisst HZImage, beides sind Bitmaps.
Das Tempimage wird bei jedem Aufruf mit einem Kovertierten JPG dessen Pfad vorher aus einem Memo gelesen wird überschrieben.
Das HZImage ist ein Statisches Bitmap.
Ich möchte gerne das das HZImage nach jedem 5 Bild automatisch eingeblendet wird, das Problem ist das ich die Bilder mit Fadein und Fadeout rein uns raus Fade.
PicCount ist eine Variable die die Zeilenzahl des Memos mit den Bilderpfaden enthält und wird zum hochzählen der Bilder verwendet.
Mein Problem ist jetzt das ich beim ersten durchlauf schonmal ein Fadeout mache da ich das im 2ten durchlauf benötige damit das Image auch ausgefadet wird, das führt dazu das ich erst einen Scharzen Bildschrim habe und dann auf einmal ein Bild ausfaden sehe das auf einmal da ist.
Weiters führt das zu dem Problem das bei Bild 5 Das Bild ausgefadet werden muss, anschliessend das HZImage wieder eingefadet werden muss und dann aber sofort wieder raus da im nächsten durchlauf je das HZImage nicht beartet wird und sonst im Hintergrund stehen bleibt, was leider wieder dazu führt das das HZImage nur kurz angezeigt wird und anschliessend die restliche Timerzeit ein Schwarzer Screen da ist.
Ich hoffe es war verständlich erklärt.
Vielleicht könnte mir jemand helfen eine bessere Lösung zu finden in der das Programm und die ein und Ausblendungen sauber funktionieren, aber mir fehlt die Kreativität.
Danke schon im voraus!