Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.508 Beiträge
 
Delphi 7 Professional
 
#18

AW: Screenshots erstellen

  Alt 29. Nov 2023, 23:56
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, ... )
  Mit Zitat antworten Zitat