summaryrefslogtreecommitdiff
path: root/epostunit.pas
diff options
context:
space:
mode:
Diffstat (limited to 'epostunit.pas')
-rw-r--r--epostunit.pas74
1 files 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 wert<maxDichte do begin
- if i>0 then gibAus(intToStr(i)+' '+floatToStr(wert)+' '+floatToStr(schritt)+' '+floatToStr(beschriftungsschritte[i].bis),1);
- if ((i<length(beschriftungsschritte)-1) and (wert>beschriftungsschritte[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 wert<maxDichte do begin
+ if i>0 then gibAus(intToStr(i)+' '+floatToStr(wert)+' '+floatToStr(schritt)+' '+floatToStr(beschriftungsschritte[i].bis),1);
+ if ((i<length(beschriftungsschritte)-1) and (wert>beschriftungsschritte[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<wert do tmp:=(round(tmp/schritt)+1)*schritt;
+ wert:=tmp;
+ gibAus(intToStr(i)+' '+floatToStr(wert)+' '+floatToStr(schritt)+' '+floatToStr(beschriftungsschritte[i].bis),1);
+ end;
+ setLength(beschriftungen,length(beschriftungen)+1);
+ beschriftungen[length(beschriftungen)-1]:=tBeschriftung.create;
+ beschriftungen[length(beschriftungen)-1].bBreite:=breite;
+ beschriftungen[length(beschriftungen)-1].bHoehe:=hoehe;
+ beschriftungen[length(beschriftungen)-1].rahmen:=rahmen;
+ beschriftungen[length(beschriftungen)-1].fontRend:=fontRenderer;
+ beschriftungen[length(beschriftungen)-1].position:=(wert-minDichte)/(maxDichte-minDichte);
+ beschriftungen[length(beschriftungen)-1].inhalt:=floatToStr(wert);
+ if not beschriftungsschritte[i].linear then
schritt:=power(10,floor(ln(wert)/ln(10)-beschriftungsschritte[i].schritte))*beschriftungsschritte[i].faktor;
- tmp:=round(beschriftungsschritte[i-1].bis/schritt)*schritt;
- while tmp<wert do tmp:=(round(tmp/schritt)+1)*schritt;
- wert:=tmp;
- gibAus(intToStr(i)+' '+floatToStr(wert)+' '+floatToStr(schritt)+' '+floatToStr(beschriftungsschritte[i].bis),1);
- end;
- setLength(beschriftungen,length(beschriftungen)+1);
- beschriftungen[length(beschriftungen)-1]:=tBeschriftung.create;
- beschriftungen[length(beschriftungen)-1].bBreite:=breite;
- beschriftungen[length(beschriftungen)-1].bHoehe:=hoehe;
- beschriftungen[length(beschriftungen)-1].rahmen:=rahmen;
- beschriftungen[length(beschriftungen)-1].fontRend:=fontRenderer;
- beschriftungen[length(beschriftungen)-1].position:=(wert-minDichte)/(maxDichte-minDichte);
- beschriftungen[length(beschriftungen)-1].inhalt:=floatToStr(wert);
- if not beschriftungsschritte[i].linear then
- schritt:=power(10,floor(ln(wert)/ln(10)-beschriftungsschritte[i].schritte))*beschriftungsschritte[i].faktor;
- wert:=(round(wert/schritt)+1)*schritt;
+ wert:=(round(wert/schritt)+1)*schritt;
+ end;
end;
if lineareFarbe then