diff options
author | Erich Eckner <git@eckner.net> | 2016-02-04 16:29:43 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2016-02-04 16:29:43 +0100 |
commit | eb7f5e4cb41192b046e208c9c336fa274c24bffd (patch) | |
tree | abd9c2b9e7efaca07155df141a1daad73bcf0e78 /epostunit.pas | |
parent | 7b784d17de7002aa656832944083b70f40b12350 (diff) | |
download | epost-eb7f5e4cb41192b046e208c9c336fa274c24bffd.tar.xz |
Tagesendstand
Diffstat (limited to 'epostunit.pas')
-rw-r--r-- | epostunit.pas | 91 |
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); |