From 49c5922efef66d4b2a3bcc897f47d5b454ba4caa Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Sun, 27 Feb 2022 09:33:04 +0100 Subject: Legende: option für keine Beschriftung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- epostunit.pas | 74 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 40 insertions(+), 34 deletions(-) diff --git a/epostunit.pas b/epostunit.pas index dee94bc..8ba0af0 100644 --- a/epostunit.pas +++ b/epostunit.pas @@ -10054,6 +10054,10 @@ begin rahmen:=true; continue; end; + if istDasBefehl('keine Beschriftung',s,bekannteBefehle,false) then begin + setLength(beschriftungsschritte,0); + continue; + end; if istDasBefehl('Beschriftungen:',s,bekannteBefehle,false) then begin setLength(beschriftungsschritte,1); beschriftungsschritte[0].schritte:=0; @@ -10118,43 +10122,45 @@ begin exit; end; - fontRenderer:=tFontRenderer.create(schriftgroesze); + if length(beschriftungsschritte)>0 then begin + fontRenderer:=tFontRenderer.create(schriftgroesze); - gibAus(floatToStr(minDichte)+' '+floatToStr(maxDichte),1); - for i:=0 to length(beschriftungsschritte)-1 do - gibAus(intToStr(i)+' '+floatToStr(beschriftungsschritte[i].bis)+' '+floatToStr(beschriftungsschritte[i].faktor)+' '+intToStr(beschriftungsschritte[i].schritte)+' '+intToStr(byte(beschriftungsschritte[i].linear)),1); + gibAus(floatToStr(minDichte)+' '+floatToStr(maxDichte),1); + for i:=0 to length(beschriftungsschritte)-1 do + gibAus(intToStr(i)+' '+floatToStr(beschriftungsschritte[i].bis)+' '+floatToStr(beschriftungsschritte[i].faktor)+' '+intToStr(beschriftungsschritte[i].schritte)+' '+intToStr(byte(beschriftungsschritte[i].linear)),1); - i:=0; - wert:=minDichte; - schritt:=-1; - while wert0 then gibAus(intToStr(i)+' '+floatToStr(wert)+' '+floatToStr(schritt)+' '+floatToStr(beschriftungsschritte[i].bis),1); - if ((ibeschriftungsschritte[i].bis)) or (i=0) then begin - repeat - inc(i); - until (i>=length(beschriftungsschritte)-1) or (beschriftungsschritte[i].bis>=wert); - if beschriftungsschritte[i].linear then begin - schritt:=(beschriftungsschritte[i].bis-beschriftungsschritte[i-1].bis)/beschriftungsschritte[i].schritte; - schritt:=power(10,round(ln(schritt)/ln(10)))*beschriftungsschritte[i].faktor; - end - else + i:=0; + wert:=minDichte; + schritt:=-1; + while wert0 then gibAus(intToStr(i)+' '+floatToStr(wert)+' '+floatToStr(schritt)+' '+floatToStr(beschriftungsschritte[i].bis),1); + if ((ibeschriftungsschritte[i].bis)) or (i=0) then begin + repeat + inc(i); + until (i>=length(beschriftungsschritte)-1) or (beschriftungsschritte[i].bis>=wert); + if beschriftungsschritte[i].linear then begin + schritt:=(beschriftungsschritte[i].bis-beschriftungsschritte[i-1].bis)/beschriftungsschritte[i].schritte; + schritt:=power(10,round(ln(schritt)/ln(10)))*beschriftungsschritte[i].faktor; + end + else + schritt:=power(10,floor(ln(wert)/ln(10)-beschriftungsschritte[i].schritte))*beschriftungsschritte[i].faktor; + tmp:=round(beschriftungsschritte[i-1].bis/schritt)*schritt; + while tmp