From bf31481db80acd7fc90541655a8a7b81fbd8124d Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 8 Apr 2020 12:19:19 +0200 Subject: Bilder exportierbar --- raetsel.lpi | 9 +++-- raetsel.lps | 120 +++++++++++++++++++++++++++----------------------------- raetselunit.pas | 43 ++++++++++++++++---- unit1.lfm | 6 +-- 4 files changed, 101 insertions(+), 77 deletions(-) diff --git a/raetsel.lpi b/raetsel.lpi index 2fc1f94..b896fbb 100644 --- a/raetsel.lpi +++ b/raetsel.lpi @@ -1,7 +1,7 @@ - + @@ -162,9 +162,10 @@ - - - + + + + diff --git a/raetsel.lps b/raetsel.lps index b73d731..09d01c0 100644 --- a/raetsel.lps +++ b/raetsel.lps @@ -9,7 +9,7 @@ - + @@ -18,9 +18,8 @@ - - - + + @@ -33,56 +32,54 @@ - + - - - + + + - - - + - + - + - + - + - + @@ -93,7 +90,7 @@ - + @@ -101,7 +98,7 @@ - + @@ -109,13 +106,12 @@ - + - - + @@ -123,38 +119,38 @@ - + - + - + - + - + - + @@ -164,122 +160,120 @@ - + - + - - + + - + - - + - + - + - - + - + - + - + - + - + - + - + - + - + - - + + - + + - - + + - - + - - + + - - + + - + - + - + - + - + diff --git a/raetselunit.pas b/raetselunit.pas index 6898c6c..b61358d 100644 --- a/raetselunit.pas +++ b/raetselunit.pas @@ -39,7 +39,8 @@ type zeichenFlaeche: tImage; erzeugeBtn, speichernBtn, - ladenBtn: tButtonWithArrowKeys; + ladenBtn, + druckenBtn: tButtonWithArrowKeys; zufallSE: tSpinEdit; progressBar1: tProgressBar; aktuelleFarbe: tColor; @@ -54,6 +55,7 @@ type procedure erzeugeOnClick(sender: tObject); procedure speichernOnClick(sender: tObject); procedure ladenOnClick(sender: tObject); + procedure druckenOnClick(sender: tObject); procedure farbWahlFlaecheBemalen; procedure loeschen; dynamic; abstract; procedure leeren; dynamic; abstract; @@ -70,7 +72,7 @@ type onSetCaption: tOnSetCaption; constructor create(aOwner: tForm); destructor destroy; override; - procedure zeichnen; dynamic; abstract; + procedure zeichnen(cursor: boolean = true); dynamic; abstract; end; tFelderRaetsel = class(tRaetsel) @@ -106,7 +108,7 @@ type public constructor create(aOwner: tForm; anzInhTypen: longint; alphabetFunktion: tAlphabetFunktion); destructor destroy; override; - procedure zeichnen; override; + procedure zeichnen(cursor: boolean = true); override; end; {$DEFINE interface} @@ -130,7 +132,7 @@ const implementation uses - math, dialogs, lclintf; + math, dialogs, lclintf, extDlgs; {$DEFINE alphabetFunktion} function zahlenAlphabetFunktion(i: longint): string; @@ -232,6 +234,13 @@ begin ladenBtn.caption:='Laden!'; ladenBtn.onClick:=@ladenOnClick; ladenBtn.onKeyDown:=@onKeyDown; + druckenBtn:=tButtonWithArrowKeys.create(besitzer); + druckenBtn.parent:=besitzer; + druckenBtn.left:=ladenBtn.left+ladenBtn.width+spacing; + druckenBtn.top:=spacing; + druckenBtn.caption:='Drucken!'; + druckenBtn.onClick:=@druckenOnClick; + druckenBtn.onKeyDown:=@onKeyDown; zufallSE:=tSpinEdit.create(besitzer); zufallSE.parent:=besitzer; zufallSE.top:=erzeugeBtn.top+erzeugeBtn.height+spacing; @@ -265,7 +274,7 @@ begin result:= max( zeichenFlaeche.width+zeichenFlaeche.left, - ladenBtn.width+ladenBtn.left + druckenBtn.width+druckenBtn.left )+spacing; end; @@ -368,6 +377,26 @@ begin openDialog1.free; end; +procedure tRaetsel.druckenOnClick(sender: tObject); +var + safePictureDialog1: tSavePictureDialog; + img: tImage; +begin + safePictureDialog1:=TSavePictureDialog.create(besitzer); + if safePictureDialog1.execute then begin + img:=zeichenFlaeche; + zeichenFlaeche:=tImage.create(img.parent); + zeichenFlaeche.width:=img.width; + zeichenFlaeche.height:=img.height; + zeichnen(false); + zeichenFlaeche.picture.saveToFile(safePictureDialog1.fileName); + zeichenFlaeche.free; + zeichenFlaeche:=img; + img:=nil; + end; + safePictureDialog1.free; +end; + procedure tRaetsel.farbWahlFlaecheBemalen; var i: integer; @@ -676,7 +705,7 @@ begin end; end; -procedure tFelderRaetsel.zeichnen; +procedure tFelderRaetsel.zeichnen(cursor: boolean = true); var i: longint; begin @@ -712,7 +741,7 @@ begin end; zeichenFlaeche.canvas.pen.width:=3; zeichenFlaeche.canvas.pen.color:=$8080ff; - if (cursorPosition>=0) and (dim>0) then begin + if (cursorPosition>=0) and (dim>0) and cursor then begin zeichenFlaeche.canvas.brush.color:= $ffffff - $181818 * byte( diagonalenCB.checked and ( diff --git a/unit1.lfm b/unit1.lfm index c16f297..3c5f1cc 100644 --- a/unit1.lfm +++ b/unit1.lfm @@ -1,12 +1,12 @@ object Form1: TForm1 - Left = 740 + Left = 719 Height = 313 - Top = 407 + Top = 449 Width = 426 BorderStyle = bsSingle Caption = 'Rätsel' OnCreate = FormCreate OnDestroy = FormDestroy OnShow = FormShow - LCLVersion = '1.8.4.0' + LCLVersion = '2.0.6.0' end -- cgit v1.2.3-70-g09d2