Einzelnen Beitrag anzeigen

Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Problem mit Struktur einer If then

  Alt 15. Sep 2007, 13:31
Du solltest auf jedenfall von dem Timer wegkommen. Der ist für solche Aufgaben ziemlich ungeeignet!!!
Okay, die simpelste Lösung wäre vielleicht, wenn du ein Application.processmessages einbaust, um der Anwendung zeit zu geben, ihre Systembefehle zu verarbeiten.

Delphi-Quellcode:
n:=Memo1.lines.count-1;

for i:=0 to n do
begin
  if i mod 5 = 0 then
    filename:=ExtractFilePath(Application.ExeName)+'HZImage.bmp'
  else
    filename:=ExtractFilePath(Application.ExeName)+'TempImage.bmp';
 
  JpegToBmp(Form1.Edit1.Text + Form1.Memo1.Lines[PicCount]);
  FadeIn(filename);
  sleep(2000);
  application.processmessages;
  Fadeout(filename);

end;
Probier das mal aus, wenn das nicht so funktioniert, wie du es haben willst, würde ich einen Thread vorschlagen.

Nochwas: Ich hab so ein bisschen das Gefühl, dass deine JpegToBmp Funktion aus einem JPG File ein Bitmap file macht und dann immer auf der Festplatte abspeichert. Du kannst auch direkt im Speicher das JPG zu einem Bitmap konvertieren, das geht a) schneller und b) hast du hinterher keine Überflüssigen Dateien auf deiner Platte:

Delphi-Quellcode:
//zu der uses deklaration im kopf kommt hinzu:
uses jpeg;

//[...]
function JPEGtoBMP(filename:string):tbitmap;
var jpeg:TJPEGImage;
    bmp:TBitmap;
begin
 jpeg:=TJPEGImage.Create;
 bmp:=TBitmap.Create;
 try
   jpeg.LoadFromFile(Filename);
   bmp.Assign(jpeg);
 finally
   freeandnil(jpeg);
 end;
result:=bmp;
end;
Aufrufen kannst du das ganze z.B. so:

Delphi-Quellcode:
 bmp:=JPEGtoBMP(Form1.Memo1.Lines[PicCount]);
//jetzt hast du in bmp direkt das in ein bmp konvertierte JPEG Bild im Speicher und kann damit basteln

Grüße
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat