summaryrefslogtreecommitdiff
path: root/epostunit.pas
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2016-02-04 16:29:43 +0100
committerErich Eckner <git@eckner.net>2016-02-04 16:29:43 +0100
commiteb7f5e4cb41192b046e208c9c336fa274c24bffd (patch)
treeabd9c2b9e7efaca07155df141a1daad73bcf0e78 /epostunit.pas
parent7b784d17de7002aa656832944083b70f40b12350 (diff)
downloadepost-eb7f5e4cb41192b046e208c9c336fa274c24bffd.tar.xz
Tagesendstand
Diffstat (limited to 'epostunit.pas')
-rw-r--r--epostunit.pas91
1 files changed, 29 insertions, 62 deletions
diff --git a/epostunit.pas b/epostunit.pas
index 81bdaf7..144bfb7 100644
--- a/epostunit.pas
+++ b/epostunit.pas
@@ -420,6 +420,10 @@ begin
eWerte.params.free;
gibAus('Die Werteparameter sind verschieden instaziiert!!!',3);
end;
+ if dWerte.params<>sWerte.params then begin
+ dWerte.params.free;
+ gibAus('Die Werteparameter sind verschieden instaziiert!!!',3);
+ end;
sWerte.params.free;
eWerte.free;
dWerte.free;
@@ -1838,8 +1842,7 @@ var
i,xmin,xmax,tmin,tmax: longint;
quellen: tWerteArray;
s: string;
- Zeit,schritt: extended;
- horizontal: boolean;
+ Zeit: extended;
pSi: pTLLWerteSingle;
pDo: pTLLWerteDouble;
pEx: pTLLWerteExtended;
@@ -1855,8 +1858,11 @@ begin
tmin:=-1;
tmax:=-1;
Zeit:=now;
- schritt:=-1;
- horizontal:=false;
+ if not Transformationen.hatNachfolger then
+ Transformationen.free;
+ Transformationen:=tAgglomeration.create;
+ (Transformationen as tAgglomeration).schritt:=-1;
+ (Transformationen as tAgglomeration).horizontal:=false;
repeat
if not f.metaReadln(s,true) then begin
gibAus('Unerwartetes Dateiende!',3);
@@ -1864,36 +1870,36 @@ begin
end;
if s='Ende' then break;
if startetMit('xmin:',s) then begin
- xmin:=kont2disk('x',exprtofloat(st,s));
+ xmin:=quellen[0].kont2disk('x',exprtofloat(st,s));
continue;
end;
if startetMit('xmax:',s) then begin
- xmax:=kont2disk('x',exprtofloat(st,s));
+ xmax:=quellen[0].kont2disk('x',exprtofloat(st,s));
continue;
end;
if startetMit('tmin:',s) then begin
- tmin:=kont2disk('t',exprtofloat(st,s));
+ tmin:=quellen[0].kont2disk('t',exprtofloat(st,s));
continue;
end;
if startetMit('tmax:',s) then begin
- tmax:=kont2disk('t',exprtofloat(st,s));
+ tmax:=quellen[0].kont2disk('t',exprtofloat(st,s));
continue;
end;
if startetMit('Schritt:',s) then begin
- schritt:=exprtofloat(st,s);
+ (Transformationen as tAgglomeration).schritt:=exprtofloat(st,s);
continue;
end;
if s='horizontal' then begin
- horizontal:=true;
+ (Transformationen as tAgglomeration).horizontal:=true;
continue;
end;
if s='vertikal' then begin
- horizontal:=true;
+ (Transformationen as tAgglomeration).horizontal:=true;
continue;
end;
setlength(quellen,length(quellen)+1);
i:=findeWerte(erstesArgument(s),nil,wertes,Konturen,false);
- if i<0 then
+ if (i<0) or (wertes^[i]=self) then
exit;
quellen[length(quellen)-1]:=wertes^[i];
if length(quellen)=1 then begin
@@ -1934,17 +1940,12 @@ begin
if xmin<0 then
xmin:=0;
if xmax<0 then
- xmax:=quellen[0]._xsteps-1;
+ xmax:=quellen[0].Transformationen.xsteps-1;
if tmin<0 then
tmin:=0;
if tmax<0 then
- tmax:=quellen[0]._tsiz-1;
+ tmax:=quellen[0].Transformationen.tsiz-1;
- if not Transformationen.hatNachfolger then
- Transformationen.free;
- Transformationen:=tAgglomeration.create;
- (Transformationen as tAgglomeration).horizontal:=horizontal;
- (Transformationen as tAgglomeration).schritt:=schritt;
for i:=0 to length(quellen)-1 do
(Transformationen as tAgglomeration).addKomponente(
tKoordinatenAusschnitt.create(
@@ -1955,12 +1956,8 @@ begin
_xsteps:=Transformationen.xsteps;
_tsiz:=Transformationen.tsiz;
- _minW:=quellen[0]._minW;
- _maxW:=quellen[0]._maxW;
- for i:=1 to length(quellen)-1 do begin
- _minW:=min(_minW,quellen[i]._minW);
- _maxW:=max(_maxW,quellen[i]._maxW);
- end;
+ _minW:=Transformationen.wmin;
+ _maxW:=Transformationen.wmax;
_np:=quellen[0]._np;
_beta:=quellen[0]._beta;
@@ -1980,8 +1977,8 @@ begin
pSi,
xmin,xmax,
tmin,tmax,
- (1+xmax-xmin)*i*byte(horizontal),
- (1+tmax-tmin)*i*byte(not horizontal)
+ (1+xmax-xmin)*i*byte((Transformationen as tAgglomeration).horizontal),
+ (1+tmax-tmin)*i*byte(not (Transformationen as tAgglomeration).horizontal)
);
end;
gDouble: begin
@@ -1990,8 +1987,8 @@ begin
pDo,
xmin,xmax,
tmin,tmax,
- (1+xmax-xmin)*i*byte(horizontal),
- (1+tmax-tmin)*i*byte(not horizontal)
+ (1+xmax-xmin)*i*byte((Transformationen as tAgglomeration).horizontal),
+ (1+tmax-tmin)*i*byte(not (Transformationen as tAgglomeration).horizontal)
);
end;
gExtended: begin
@@ -2000,8 +1997,8 @@ begin
pEx,
xmin,xmax,
tmin,tmax,
- (1+xmax-xmin)*i*byte(horizontal),
- (1+tmax-tmin)*i*byte(not horizontal)
+ (1+xmax-xmin)*i*byte((Transformationen as tAgglomeration).horizontal),
+ (1+tmax-tmin)*i*byte(not (Transformationen as tAgglomeration).horizontal)
);
end;
end;
@@ -2655,22 +2652,7 @@ begin
(Transformationen as tAgglomeration).addKomponente(quelle.Transformationen);
(Transformationen as tAgglomeration).schritt:=(quelle.disk2kont('x',tmax)-quelle.disk2kont('x',tmin))*(1+1/(tmax-tmin));
end;
-(*
- Transformationen.xsteps:=_xsteps;
- Transformationen.tsiz:=_tsiz;
- if quelle._tsiz<>1 then begin
- Transformationen.xstart:=quelle.disk2kont('t',tmin); // quelle._tstart + tmin/(quelle._tsiz-1)*(quelle._tstop-quelle._tstart);
- Transformationen.xstop:= quelle.disk2kont('t',tmax); // quelle._tstart + tmax/(quelle._tsiz-1)*(quelle._tstop-quelle._tstart);
- Transformationen.tstart:=0;
- Transformationen.tstop:=quelle.disk2kontFak('t',_tsiz-1); // _tsiz/(quelle._tsiz-1)*(quelle._tstop-quelle._tstart);
- end
- else begin
- Transformationen.xstart:=quelle.disk2kont('x',tmin); // _xstart:=quelle._xstart + tmin/(quelle._xsteps-1)*(quelle._xstop-quelle._xstart);
- Transformationen.xstop:= quelle.disk2kont('x',tmax); // _xstop:= quelle._xstart + tmax/(quelle._xsteps-1)*(quelle._xstop-quelle._xstart);
- Transformationen.tstart:=0;
- Transformationen.tstop:=quelle.disk2kontFak('x',_tsiz-1); // _tstop:=_tsiz/(quelle._xsteps-1)*(quelle._xstop-quelle._xstart);
- end;
-*)
+
if not st then begin
tOf:=(_tsiz-Fenster.Breite) div 2;
eWerte.holeRam(3);
@@ -3422,21 +3404,6 @@ begin
setlength(Beschriftungen,0);
for i:=0 to length(Achsen)-1 do begin
-(* if Achsen[i].Lage in [lOben,lUnten] then
- begin
- maw:=xMax/(_xsteps-1)*(_xstop-_xstart)+_xstart;
- miw:=xMin/(_xsteps-1)*(_xstop-_xstart)+_xstart;
- end
- else
- begin
- maw:=tMax/(_tsiz-1)*(_tstop-_tstart)+_tstart;
- miw:=tMin/(_tsiz-1)*(_tstop-_tstart)+_tstart;
- end;
- schritt:=(maw-miw)/Achsen[i].Striche;
- j:=round(ln(schritt)/ln(10));
- schritt:=Achsen[i].faktor*power(10,j);
- wert:=ceil(miw/schritt)*schritt;
- while wert<=maw do *)
if Achsen[i].Lage in [lOben,lUnten] then begin
maw:=disk2kont('x',xMax);
miw:=disk2Kont('x',xMin);