diff options
Diffstat (limited to 'raetselunit.pas')
-rw-r--r-- | raetselunit.pas | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/raetselunit.pas b/raetselunit.pas index ad4a43a..6898c6c 100644 --- a/raetselunit.pas +++ b/raetselunit.pas @@ -611,12 +611,12 @@ begin farbWahlFlaeche.width:=zeichenFlaeche.width; zeichenFlaecheNeuKreieren; besitzer.height:=besitzerHoehe; - besitzer.width:= - max(max( - besitzerBreite, - sudokuCB.left+sudokuCB.width+spacing), - spinEdits[length(spinEdits)-1].left+spinEdits[length(spinEdits)-1].width+spacing - ); + besitzer.width:=besitzerBreite; + if assigned(sudokuCB) then + besitzer.width:=max(besitzer.width,sudokuCB.left+sudokuCB.width+spacing); + if length(spinEdits)>0 then + if assigned(spinEdits[length(spinEdits)-1]) then + besitzer.width:=max(besitzer.width,spinEdits[length(spinEdits)-1].left+spinEdits[length(spinEdits)-1].width+spacing); progressBar1.width:=besitzer.width; zeichnen; end; @@ -625,18 +625,24 @@ function tFelderRaetsel.besitzerHoehe: longint; var i: longint; begin - result:=max(inherited besitzerHoehe,diagonalenCB.top+diagonalenCB.height+spacing); + result:=inherited besitzerHoehe; + if assigned(diagonalenCB) then + result:=max(result,diagonalenCB.top+diagonalenCB.height+spacing); for i:=0 to length(spinEdits)-1 do - result:=max(result,spinEdits[i].top+spinEdits[i].height+spacing); + if assigned(spinEdits[i]) then + result:=max(result,spinEdits[i].top+spinEdits[i].height+spacing); end; function tFelderRaetsel.besitzerBreite: longint; var i: longint; begin - result:=max(inherited besitzerBreite,diagonalenCB.left+diagonalenCB.width+spacing);; + result:=inherited besitzerBreite; + if assigned(diagonalenCB) then + result:=max(result,diagonalenCB.left+diagonalenCB.width+spacing); for i:=0 to length(spinEdits)-1 do - result:=max(result,spinEdits[i].left+spinEdits[i].width+spacing); + if assigned(spinEdits[i]) then + result:=max(result,spinEdits[i].left+spinEdits[i].width+spacing); end; procedure tFelderRaetsel.schreibeZentriert(x,y,i: longint); @@ -674,6 +680,8 @@ procedure tFelderRaetsel.zeichnen; var i: longint; begin + if not assigned(sudokuCB) then + exit; zeichenFlaeche.canvas.brush.color:=$ffffff; zeichenFlaeche.canvas.rectangle(-10,-10,zeichenFlaeche.width+10,zeichenFlaeche.height+10); zeichenFlaeche.canvas.pen.width:=3-2*byte(sudokuCB.checked); |