hi ! ich schreibe ein Programm, das regelmäßig überptüft, ob ein Bitmap in der Zwischenablage liegt und diese dann sofort als JPEG/GIF/PNG oder BMP speichert. ich benutze diese Methode : (es soll ein Bild gespeichert werden, sobald man auf "Druck" drückt.
Delphi-Quellcode:
procedure TMainfrm.Timer1Timer(Sender: TObject);
Var Bildname : String;
begin
Bildname := IntToStr(i);
// Dem Programm genügend Zeit lassen...
Timer1.Enabled := False;
// Nun folgen die If-Blöcke :
// Wenn ein Bitmap im ClipBoard liegt dann......
if Clipboard.HasFormat(CF_BITMAP) then begin
// ...erhöhe i um den Wert 1 und schreibe den Wert in eine Ini File
inc(i);
// Ini File wird geladen
with TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Settings/data.ini') do
try
WriteInteger('Bildanzahl','Anzahl',i);
finally
//Ini wird freigegeben
Free;
if JPEGRadio.Checked = True then SaveAsJpeg(Bildname + '.jpg',TrackBar1.Position)
else if BMPRadio.Checked = True then SaveAsBmp (Bildname + '.bmp')
else if PNGRadio.Checked = True then SaveAsPNG (Bildname + '.png')
else if GIFRadio.Checked = True then SaveAsGif (Bildname + '.GIF')
end
end;
sleep(200);
ClipBoard.Free;
Timer1.Enabled := True;
end;
wenn ich diesen Code jedoch verwende, werden pro sekunde ca. 30 Bilder erzeugt !!! und mein PC stürzt, wie sich jeder denken kann dabei fast ab !
Was mache ich falsch ?
Gibt es vielleicht noch einen anderen Weg, dies zu lösen ?
vielen Dank,
Euer Assun