Registriert seit: 17. Nov 2005
Ort: Hamburg
1.077 Beiträge
Delphi XE2 Professional
|
AW: Screenshots erstellen
30. Nov 2023, 00:10
HardCopys von Formularen mache ich immer aus dem Programm selbst heraus:
Delphi-Quellcode:
procedure HardCopy(sJpegFile : String; fm : TForm);
Var
FJpeg : TJpegImage;
begin
try
if SysUtils.FileExists(sJpegFile) then SysUtils.DeleteFile(sJpegFile);
if fm.WindowState = wsMinimized then fm.WindowState := wsNormal;
fm.Show;
fm.Refresh;
FJpeg := TJpegImage.Create;
try
try
FJpeg.Assign(fm.GetFormImage);
fJPeg.SaveToFile(sJpegFile);
except
on e : Exception do begin
MessageDlg(e. Message,mtError,[mbOk],0);
end;
end;
except
// Fehler werden ignoriert, da sie nicht behoben werden können.
end;
finally
FJpeg.Free;
end;
end;
Die Routine sollte sich mit wenig Aufwand auf BMP umbauen lassen.
Aufruf: HardCopy('Dateiname.jpg', Form1);
Oder (sinngemäß) sowas in der Art:
Delphi-Quellcode:
var
i : Integer;
s : String;
begin
for i := 0 to Screen.FormCount - 1 do begin
s := Format('c:\temp\%s.jpg',[Screen.Forms[i].Name]);
HardCopy(s, Screen.Forms[i]);
end;
end;
Die älter Version des Help-Workshop, die für die .hlp-Dateien war und als Quelltext RTF-Dateien verlangte, konnte nur .bmp-Dateien verarbeiten.
Der HTML-Help-Workshop (hcw.exe) für die .chm-Dateien, kann alles verarbeiten, was man so in HTML-Dateien "verwursten" kann, da da (zumindest in den älteren Windowsversionen) die Hilfe über eine eingebettete Version des Internetexplorers angezeigt wurde. Von daher sind JPG-Dateien absolut ok.
Keine Ahnung, wie das aktuell läuft. (ok: Unter Windows 10 sieht es genauso aus wie unter NT, XP, ... )
Zu
Zitat:
HardCopys von Formularen mache ich immer aus dem Programm selbst heraus:
Also in jedes Programm diese Prozedur integrieren?
Sorry, aber da finde ich es schon praktischer, einfach nur Zum Beispiel AltGr+B zu drücken.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
|
|
Zitat
|