Results 1 to 3 of 3

Thread: Form opslaan als jpg image

  1. #1
    Senior Member
    Join Date
    Sep 2004
    Location
    BELGIE(Vilvoorde)
    Posts
    601

    Question Form opslaan als jpg image

    Windows 8.1 met CodeTyphon 5.5 (64 bit).

    Heb een werkende procedure die opslaat in BMP.
    Ik zou heel graag de 'form' opslaan als JPG.
    Tevens zou er in de filename ook de datum + time moeten staan.
    Zoals: Bingo 2018/10/20 15:20.bmp
    of Bingo 2018/10/20 15:20.jpg
    Daar ik geen programmeur ben is het niet zo eenvoudig !
    Het totale programma heb ik kunnen bekomen via NL-Delphi, jaren geleden...

    Code:
    uses
     {$IFNDEF WINDOWS} lMessages, Mesages, jpeg, {$ENDIF}
      Windows,
      LCLIntf, LCLType, LCLProc,
      SysUtils, Classes, Graphics,
      Controls, Forms, Dialogs, Grids, ExtCtrls,
      Buttons, Menus, Printers, PrintersDlgs, Types;
    Code:
      .....
    //----- SCHERMAFDRUK ------------------------------------------//
    procedure TFormMAIN.MenuItemOPSLAANClick(Sender: TObject);
    var
      varBMPmyBitMap : TBitMap;
      varHScaleFactor: Single;
      varVScaleFactor: Single;
      varRct: TRect;
    begin
      varHScaleFactor:= Printer.XDPI/Screen.PixelsPerInch;
      varVScaleFactor:= Printer.YDPI/Screen.PixelsPerInch;
      varBMPmyBitMap := TBitMap.Create;
      try
        varBMPmyBitMap.LoadFromDevice(Canvas.Handle);
        varRct:= Rect(0, 0, trunc(varBMPmyBitMap.Width*varHScaleFactor),
             trunc(varBMPmyBitMap.Height * varVScaleFactor));
        Printer.Orientation:= poLandscape;
        If QuestionDlg ('KEUZE !','Een schermafdruk opslaan?'+#13+
        '',mtConfirmation,[mrYes,'JA', mrNo, 'NEEN'],'') = mrYes then
        begin
          // Dadelijk opslaan in map van de EXE.
          varBMPmyBitMap.SaveToFile('BINGO'+'.bmp');
         end;
      finally
        varBMPmyBitMap.Free;
        varBMPmyBitMap:=NIL;
      end;
    end;

  2. #2
    Seghele,

    Ik begrijp niet wat de printer doet in de MenuItemOPSLAANClick, dus die heb ik zelf even uit de routine gehaald.
    Ook kan in Windows voor filenamen niet de '/' en de ':' worden gebruikt. Ik heb die door '-' en '.' vervangen.

    Zo krijg ik de volgende code:
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      varBMPmyBitMap : TBitMap;
      varRct: TRect;
      JpegImage: TJpegImage;                                         // <<<<
      strDatumTijd : String;                                         // <<<<
    begin
      varBMPmyBitMap := TBitMap.Create;
      try
        varBMPmyBitMap.LoadFromDevice(Canvas.Handle);
        varRct:= Rect(0, 0, trunc(varBMPmyBitMap.Width),
             trunc(varBMPmyBitMap.Height));
        If QuestionDlg ('KEUZE !','Een schermafdruk opslaan?'+#13+
        '',mtConfirmation,[mrYes,'JA', mrNo, 'NEEN'],'') = mrYes then
        begin
          strDatumTijd := FormatDateTime('yyyy-mm-dd hh.mm', now);   // <<<<
          // Dadelijk opslaan in map van de EXE.
          varBMPmyBitMap.SaveToFile('BINGO '+strDatumTijd+'.bmp');
          JpegImage := TJpegImage.Create;                            // <<<<
          JpegImage.Assign(varBMPmyBitMap);                          // <<<<
          JpegImage.SaveToFile('BINGO '+strDatumTijd+'.jpg');        // <<<<
         end;
      finally
        varBMPmyBitMap.Free;
        varBMPmyBitMap:=NIL;
        JpegImage.Free;                                              // <<<<
        JpegImage := NIL;                                            // <<<<
      end;
    end;
    Ik heb dit niet helemaal zelf verzonnen.
    Door te zoeken op "save bitmap as jpg" vond ik op daniweb de code om een bitmap als jpg op te slaan.

    Succes en plezier!

  3. #3
    Senior Member
    Join Date
    Sep 2004
    Location
    BELGIE(Vilvoorde)
    Posts
    601

    Thumbs up

    MaartenW,
    Oprechte dank voor de code.
    Het werkt prima.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •