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, ...
)