summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2016-03-08 11:15:05 +0100
committerErich Eckner <git@eckner.net>2016-03-08 15:47:01 +0100
commit63997bb9543eaeea60552cae9fd55964f4ed7682 (patch)
tree90bde894ab771e368ce6c6a019b181b23dd0002b
parentcb694b029790243d93885293349cde99430506e7 (diff)
downloadepost-63997bb9543eaeea60552cae9fd55964f4ed7682.tar.xz
gemeinsamer Vorfahr von tKontur und tWerte
-rw-r--r--epost.lpr4
-rw-r--r--epost.lps118
-rw-r--r--epostunit.pas154
3 files changed, 143 insertions, 133 deletions
diff --git a/epost.lpr b/epost.lpr
index 987ed21..98cd281 100644
--- a/epost.lpr
+++ b/epost.lpr
@@ -443,7 +443,7 @@ begin
end;
if startetMit('lösche Kontur ',s) then begin
while s<>'' do begin
- j:=findeKontur(erstesArgument(s),nil,@Konturen,false);
+ j:=findeKontur(erstesArgument(s),nil,@Wertes,@Konturen,false);
if j<0 then begin
aufraeumen;
halt(1);
@@ -461,7 +461,7 @@ begin
halt(1);
end;
if startetMit('Kontur',s) then begin
- i:=findeKontur(s,inf,@Konturen,true);
+ i:=findeKontur(s,inf,@Wertes,@Konturen,true);
if (i>=0) and Konturen[i].Init(syntaxtest,inf,@wertes,maxthreads) then continue;
aufraeumen;
halt(1);
diff --git a/epost.lps b/epost.lps
index 1ece3d3..1b4359b 100644
--- a/epost.lps
+++ b/epost.lps
@@ -7,8 +7,8 @@
<Unit0>
<Filename Value="epost.lpr"/>
<IsPartOfProject Value="True"/>
- <TopLine Value="105"/>
- <CursorPos Y="271"/>
+ <TopLine Value="56"/>
+ <CursorPos X="46" Y="73"/>
<FoldState Value=" T0iXW39123111221]65151[84313[4421[Q4121[85]as"/>
<UsageCount Value="202"/>
<Loaded Value="True"/>
@@ -25,9 +25,9 @@
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
- <TopLine Value="3909"/>
- <CursorPos X="42" Y="3931"/>
- <FoldState Value=" T0@4k{V0G1C1@"/>
+ <TopLine Value="6438"/>
+ <CursorPos Y="6478"/>
+ <FoldState Value=" T0\0m$0C1k"/>
<UsageCount Value="201"/>
<Loaded Value="True"/>
</Unit2>
@@ -41,17 +41,16 @@
<Unit4>
<Filename Value="werteunit.pas"/>
<IsPartOfProject Value="True"/>
- <EditorIndex Value="2"/>
+ <EditorIndex Value="4"/>
<TopLine Value="348"/>
<CursorPos Y="619"/>
- <FoldState Value=" T0pekl051X141O"/>
<UsageCount Value="200"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
<Filename Value="typenunit.pas"/>
<IsPartOfProject Value="True"/>
- <EditorIndex Value="3"/>
+ <EditorIndex Value="5"/>
<TopLine Value="560"/>
<CursorPos Y="600"/>
<UsageCount Value="200"/>
@@ -63,7 +62,7 @@
<EditorIndex Value="-1"/>
<TopLine Value="162"/>
<CursorPos X="56" Y="177"/>
- <UsageCount Value="51"/>
+ <UsageCount Value="60"/>
</Unit6>
<Unit7>
<Filename Value="../units/fftunit.inc"/>
@@ -71,41 +70,42 @@
<EditorIndex Value="-1"/>
<TopLine Value="10"/>
<CursorPos X="22" Y="10"/>
- <UsageCount Value="48"/>
+ <UsageCount Value="57"/>
</Unit7>
<Unit8>
<Filename Value="../fpGUI/src/corelib/render/software/agg_scanline_storage_aa.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="1612"/>
<CursorPos X="2" Y="1675"/>
- <UsageCount Value="1"/>
+ <UsageCount Value="10"/>
</Unit8>
<Unit9>
<Filename Value="../units/mystringlistunit.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="313"/>
<CursorPos Y="435"/>
- <UsageCount Value="13"/>
+ <UsageCount Value="12"/>
</Unit9>
<Unit10>
<Filename Value="../units/lowlevelunit.pas"/>
- <EditorIndex Value="-1"/>
- <TopLine Value="17"/>
- <CursorPos X="3" Y="37"/>
- <UsageCount Value="23"/>
+ <EditorIndex Value="3"/>
+ <CursorPos Y="20"/>
+ <UsageCount Value="27"/>
+ <Loaded Value="True"/>
</Unit10>
<Unit11>
<Filename Value="../units/randomunit.pas"/>
<EditorIndex Value="-1"/>
- <UsageCount Value="1"/>
+ <UsageCount Value="10"/>
</Unit11>
<Unit12>
<Filename Value="../units/matheunit.pas"/>
- <EditorIndex Value="-1"/>
- <TopLine Value="544"/>
- <CursorPos X="53" Y="567"/>
- <FoldState Value=" T3q50{m012A"/>
- <UsageCount Value="13"/>
+ <EditorIndex Value="2"/>
+ <TopLine Value="460"/>
+ <CursorPos X="47" Y="482"/>
+ <FoldState Value=" T3v2041$"/>
+ <UsageCount Value="17"/>
+ <Loaded Value="True"/>
</Unit12>
<Unit13>
<Filename Value="../units/systemunit.pas"/>
@@ -119,149 +119,149 @@
<EditorIndex Value="-1"/>
<TopLine Value="807"/>
<CursorPos Y="818"/>
- <UsageCount Value="4"/>
+ <UsageCount Value="3"/>
</Unit14>
<Unit15>
<Filename Value="../units/protokollunit.pas"/>
<EditorIndex Value="-1"/>
<TopLine Value="82"/>
<CursorPos X="15" Y="30"/>
- <UsageCount Value="4"/>
+ <UsageCount Value="3"/>
</Unit15>
<Unit16>
<Filename Value="/usr/lib/fpc/src/rtl/inc/objpash.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="182"/>
<CursorPos X="21" Y="202"/>
- <UsageCount Value="6"/>
+ <UsageCount Value="5"/>
</Unit16>
<Unit17>
<Filename Value="/usr/lib/fpc/src/rtl/unix/bunxovlh.inc"/>
<EditorIndex Value="-1"/>
<TopLine Value="61"/>
<CursorPos X="10" Y="99"/>
- <UsageCount Value="9"/>
+ <UsageCount Value="8"/>
</Unit17>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="epostunit.pas"/>
- <Caret Line="6180" Column="21" TopLine="6162"/>
+ <Caret Line="887" Column="19" TopLine="854"/>
</Position1>
<Position2>
<Filename Value="epostunit.pas"/>
- <Caret Line="6178" Column="15" TopLine="6070"/>
+ <Caret Line="982" Column="34" TopLine="963"/>
</Position2>
<Position3>
- <Filename Value="typenunit.pas"/>
- <Caret Line="49" Column="24" TopLine="26"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="72" Column="32" TopLine="52"/>
</Position3>
<Position4>
- <Filename Value="typenunit.pas"/>
- <Caret Line="101" Column="45" TopLine="68"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="5100" Column="32" TopLine="5068"/>
</Position4>
<Position5>
- <Filename Value="werteunit.pas"/>
- <Caret Line="646" Column="7" TopLine="627"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="5353" Column="56" TopLine="5341"/>
</Position5>
<Position6>
- <Filename Value="werteunit.pas"/>
- <Caret Line="633" Column="26" TopLine="602"/>
+ <Filename Value="epostunit.pas"/>
+ <Caret Line="1443" Column="49" TopLine="1412"/>
</Position6>
<Position7>
<Filename Value="epostunit.pas"/>
- <Caret Line="1371" Column="86" TopLine="1343"/>
+ <Caret Line="1442" Column="21" TopLine="1422"/>
</Position7>
<Position8>
<Filename Value="epostunit.pas"/>
- <Caret Line="1373" Column="19" TopLine="1340"/>
+ <Caret Line="1445" Column="61" TopLine="1423"/>
</Position8>
<Position9>
<Filename Value="epostunit.pas"/>
- <Caret Line="3547" Column="10" TopLine="3594"/>
+ <Caret Line="72" Column="32" TopLine="52"/>
</Position9>
<Position10>
<Filename Value="epostunit.pas"/>
- <Caret Line="140" Column="25" TopLine="122"/>
+ <Caret Line="5108" Column="32" TopLine="5076"/>
</Position10>
<Position11>
<Filename Value="epostunit.pas"/>
- <Caret Line="2856" Column="60" TopLine="2846"/>
+ <Caret Line="5365" Column="27" TopLine="5310"/>
</Position11>
<Position12>
<Filename Value="epostunit.pas"/>
- <Caret Line="78" Column="43" TopLine="58"/>
</Position12>
<Position13>
<Filename Value="epostunit.pas"/>
- <Caret Line="1385" Column="80" TopLine="1361"/>
+ <Caret Line="382" Column="24" TopLine="349"/>
</Position13>
<Position14>
<Filename Value="epostunit.pas"/>
- <Caret Line="923" TopLine="904"/>
+ <Caret Line="387" Column="27" TopLine="354"/>
</Position14>
<Position15>
<Filename Value="epostunit.pas"/>
- <Caret Line="934" TopLine="914"/>
+ <Caret Line="394" Column="79" TopLine="361"/>
</Position15>
<Position16>
<Filename Value="epostunit.pas"/>
- <Caret Line="1153" TopLine="1133"/>
+ <Caret Line="3405" Column="18" TopLine="3391"/>
</Position16>
<Position17>
<Filename Value="epostunit.pas"/>
- <Caret Line="1169" TopLine="1149"/>
+ <Caret Line="3236" Column="15" TopLine="3216"/>
</Position17>
<Position18>
<Filename Value="epostunit.pas"/>
- <Caret Line="1382" Column="64" TopLine="1353"/>
+ <Caret Line="3281" Column="25" TopLine="3249"/>
</Position18>
<Position19>
<Filename Value="epostunit.pas"/>
- <Caret Line="1576" Column="20" TopLine="1544"/>
+ <Caret Line="3404" Column="51" TopLine="3372"/>
</Position19>
<Position20>
<Filename Value="epostunit.pas"/>
- <Caret Line="3026" TopLine="2805"/>
+ <Caret Line="3405" Column="41" TopLine="3373"/>
</Position20>
<Position21>
<Filename Value="epostunit.pas"/>
+ <Caret Line="3406" Column="89" TopLine="3374"/>
</Position21>
<Position22>
<Filename Value="epostunit.pas"/>
- <Caret Line="78" Column="43" TopLine="45"/>
+ <Caret Line="3559" Column="84" TopLine="3548"/>
</Position22>
<Position23>
<Filename Value="epostunit.pas"/>
- <Caret Line="1424" TopLine="1398"/>
+ <Caret Line="6481" TopLine="6441"/>
</Position23>
<Position24>
<Filename Value="epostunit.pas"/>
- <Caret Line="1426" Column="38" TopLine="1412"/>
+ <Caret Line="5368" TopLine="5352"/>
</Position24>
<Position25>
<Filename Value="epostunit.pas"/>
- <Caret Line="140" Column="25" TopLine="122"/>
+ <Caret Line="3559" Column="15" TopLine="3540"/>
</Position25>
<Position26>
<Filename Value="epostunit.pas"/>
- <Caret Line="3055" Column="28" TopLine="3035"/>
+ <Caret Line="117" Column="23" TopLine="99"/>
</Position26>
<Position27>
<Filename Value="epostunit.pas"/>
- <Caret Line="151" Column="24" TopLine="132"/>
+ <Caret Line="1627" Column="26" TopLine="1609"/>
</Position27>
<Position28>
<Filename Value="epostunit.pas"/>
- <Caret Line="2376" Column="22" TopLine="2344"/>
+ <Caret Line="3225" Column="51" TopLine="3220"/>
</Position28>
<Position29>
<Filename Value="epostunit.pas"/>
- <Caret Line="2377" Column="29" TopLine="2345"/>
+ <Caret Line="3226" Column="29" TopLine="3208"/>
</Position29>
<Position30>
<Filename Value="epostunit.pas"/>
- <Caret Line="3055" Column="23" TopLine="3023"/>
+ <Caret Line="3564" Column="22" TopLine="3548"/>
</Position30>
</JumpHistory>
</ProjectSession>
diff --git a/epostunit.pas b/epostunit.pas
index e52f7cc..cf34038 100644
--- a/epostunit.pas
+++ b/epostunit.pas
@@ -42,7 +42,19 @@ type
pTLiKo = ^tLiKo;
pTWerteArray = ^tWerteArray;
tWerteArray = array of tWerte;
- tKontur = class(tObject)
+ tKontur = class;
+ tKonturenArray = array of tKontur;
+ pTKonturenArray = ^tKonturenArray;
+
+ tDatenVorfahr = class(tObject)
+ bezeichner: string;
+ Konturen: pTKonturenArray;
+ wertes: pTWerteArray;
+ constructor create(Kont: pTKonturenArray; wert: pTWerteArray);
+ function callBackGetValue(s: string): extended;
+ end;
+
+ tKontur = class(tDatenVorfahr)
private
function rxmin: extended;
function rxmax: extended;
@@ -50,10 +62,10 @@ type
function rtmax: extended;
function sortiere_nach_y(mt: longint): boolean; overload;
function sortiere_nach_y(mt,von,bis: longint): boolean; overload;
+ function exprtofloat(st: boolean; s: string; kvs: tKnownValues): extended;
public
farbe: tRGB;
orte: tExtPointArray;
- bezeichner: string;
function init(st: boolean; var f: tMyStringlist; w: pTWerteArray; mt: longint): boolean;
function liesVonDatei(st: boolean; s: string; xmi,xma,tmi,tma: extended): boolean;
function erzeugeAusWerten(st: boolean; s: string; w: pTWerteArray; mt: longint; _xmin,_xmax,_tmin,_tmax: string): boolean;
@@ -61,13 +73,11 @@ type
property xmax: extended read rxmax;
property tmin: extended read rtmin;
property tmax: extended read rtmax;
- constructor create;
+ constructor create(Kont: pTKonturenArray; wert: pTWerteArray);
destructor destroy; override;
end;
- tKonturenArray = array of tKontur;
- pTKonturenArray = ^tKonturenArray;
tLeseThread = class;
- tWerte = class(tObject)
+ tWerte = class(tDatenVorfahr)
{
Diese Klasse ist die benutzerseitige Variante von tLLWerte und benutzt
letztere. Sie übernimmt auch die Parallelisierung.
@@ -100,7 +110,6 @@ type
procedure wMinw(miw: extended);
function rMaxw: extended;
procedure wMaxw(maw: extended);
- function callBackGetValue(s: string): extended;
function xscale: extended;
function tscale: extended;
function dichtenParameterErkannt(st: boolean; s: string; threads,xmin,xmax,tmin,tmax: longint): boolean;
@@ -114,9 +123,6 @@ type
dWerte: tLLWerteDouble;
sWerte: tLLWerteSingle;
Genauigkeit: tGenauigkeit;
- bezeichner: string;
- Konturen: pTKonturenArray;
- wertes: pTWerteArray;
constructor create(Kont: pTKonturenArray; wert: pTWerteArray); overload;
constructor create(original: tWerte; xmin,xmax: longint); overload;
destructor destroy; override;
@@ -343,7 +349,7 @@ function findePalette(out Palette: pTPalette; name: string): boolean;
function erzeugeLegende(st: boolean; var f: tMyStringlist; datei: string; Qu: tWerte; minDichte,maxDichte: extended; nb: tTransformation; pal: pTPalette): boolean;
function strToFftDo(out fftDo: tFFTDatenordnung; s: string): boolean;
function findeWerte(s: String; f: tMyStringlist; pws: pTWerteArray; Kont: pTKonturenArray; darfErstellen: boolean): integer;
-function findeKontur(s: String; f: tMyStringlist; pks: pTKonturenArray; darfErstellen: boolean): integer;
+function findeKontur(s: String; f: tMyStringlist; pws: pTWerteArray; pks: pTKonturenArray; darfErstellen: boolean): integer;
function externerBefehl(st: boolean; s: string): boolean;
procedure warte_auf_externeBefehle;
procedure beendeExterneBefehleWennFertig;
@@ -357,22 +363,71 @@ implementation
uses math, systemunit;
+// tDatenVorfahr ***************************************************************
+
+constructor tDatenVorfahr.create(Kont: pTKonturenArray; wert: pTWerteArray);
+begin
+ inherited create;
+ Konturen:=Kont;
+ wertes:=wert;
+ bezeichner:='';
+end;
+
+function tDatenVorfahr.callBackGetValue(s: string): extended;
+var
+ i: longint;
+begin
+ result:=nan;
+ if startetMit('Kontur[',s) or startetMit('Konturen[',s) then begin
+ if pos('].',s)=0 then
+ fehler('Syntaxfehler, '']'' fehlt!');
+ i:=findeKontur(erstesArgument(s,'].'),nil,Wertes,Konturen,false);
+ if i<0 then
+ fehler('Finde Kontur nicht!');
+ if s='xmin' then result:=Konturen^[i].xmin
+ else if s='xmax' then result:=Konturen^[i].xmax
+ else if s='tmin' then result:=Konturen^[i].tmin
+ else if s='tmax' then result:=Konturen^[i].tmax
+ else if s='Breite' then result:=Konturen^[i].xmax-Konturen^[i].xmin
+ else if s='Hoehe' then result:=Konturen^[i].tmax-Konturen^[i].tmin
+ else fehler('Kenne Bezeichner '''+s+''' nicht als Eigenschaft einer Kontur!');
+ exit;
+ end;
+ if startetMit('Wert[',s) or startetMit('Werte[',s) or startetMit('Wertes[',s) then begin
+ if pos('].',s)=0 then
+ fehler('Syntaxfehler, '']'' fehlt!');
+ i:=findeWerte(erstesArgument(s,'].'),nil,wertes,Konturen,false);
+ if i<0 then
+ fehler('Finde Werte nicht!');
+ if (s='xmin') or (s='xstart') then result:=wertes^[i].Transformationen.xstart
+ else if (s='xmax') or (s='xstop') then result:=wertes^[i].Transformationen.xstop
+ else if (s='tmin') or (s='tstart') then result:=wertes^[i].Transformationen.tstart
+ else if (s='tmax') or (s='tstop') then result:=wertes^[i].Transformationen.tstop
+ else if (s='wmin') or (s='minw') then result:=wertes^[i]._minw
+ else if (s='wmax') or (s='maxw') then result:=wertes^[i]._maxw
+ else if s='np' then result:=wertes^[i]._np
+ else if (s='beta') or (s='β') then result:=wertes^[i]._beta
+ else if s='Breite' then result:=wertes^[i].Transformationen.xstart-wertes^[i].Transformationen.xstop
+ else if s='Hoehe' then result:=wertes^[i].Transformationen.tstart-wertes^[i].Transformationen.tstop
+ else fehler('Kenne Bezeichner '''+s+''' nicht als Eigenschaft von Werten!');
+ exit;
+ end;
+ fehler('Ich kenne den Bezeichner '''+s+''' nicht!');
+end;
+
// tWerte **********************************************************************
constructor tWerte.create(Kont: pTKonturenArray; wert: pTWerteArray);
var
ps: tExtrainfos;
begin
- inherited create;
+ inherited create(Kont,wert);
ps:=tExtrainfos.create;
Genauigkeit:=gSingle;
leseThread:=nil;
sWerte:=tLLWerteSingle.create(ps);
dWerte:=tLLWerteDouble.create(ps);
eWerte:=tLLWerteExtended.create(ps);
- Konturen:=Kont;
- wertes:=wert;
- bezeichner:='';
end;
constructor tWerte.create(original: tWerte; xmin,xmax: longint);
@@ -382,12 +437,11 @@ var
pDo: pTLLWerteDouble;
pEx: pTLLWerteExtended;
begin
- inherited create;
+ inherited create(original.Konturen,original.wertes);
original.warteAufBeendigungDesLeseThreads;
ps:=tExtrainfos.create;
leseThread:=nil;
Genauigkeit:=original.Genauigkeit;
- Konturen:=original.Konturen;
case Genauigkeit of
gSingle: begin
pSi:=@(original.sWerte);
@@ -411,7 +465,6 @@ begin
if original.bezeichner='' then bezeichner:=''
else bezeichner:=original.bezeichner+'''';
Transformationen:=original.Transformationen;
- wertes:=original.wertes;
end;
destructor tWerte.destroy;
@@ -3334,7 +3387,7 @@ begin
if startetMit('Kontur:',s) then begin
while length(s)>0 do begin
setlength(verwKonturen,length(verwKonturen)+1);
- verwKonturen[length(verwKonturen)-1]:=findeKontur(erstesArgument(s),nil,Konturen,false);
+ verwKonturen[length(verwKonturen)-1]:=findeKontur(erstesArgument(s),nil,Wertes,Konturen,false);
if (verwKonturen[length(verwKonturen)-1]<0) or (verwKonturen[length(verwKonturen)-1]>=length(Konturen^)) then begin
gibAus('Die Kontur gibt es nicht!',3);
aufraeumen;
@@ -3866,54 +3919,6 @@ begin // bearbeitet nur den Hauptteil (außer erster und mittlerer Zeile/Spalte)
gibAus('Alle FFT2dNBThreads fertig!',1);
end;
-function tWerte.callBackGetValue(s: string): extended;
-var
- i: longint;
-begin
- result:=nan;
- if startetMit('Kontur[',s) or startetMit('Konturen[',s) then begin
- if pos('].',s)=0 then begin
- gibAus('Syntaxfehler, '']'' fehlt!',3);
- exit;
- end;
- i:=findeKontur(erstesArgument(s,'].'),nil,Konturen,false);
- if i<0 then begin
- gibAus('Finde Kontur nicht!',3);
- exit;
- end;
- if s='xmin' then result:=Konturen^[i].xmin
- else if s='xmax' then result:=Konturen^[i].xmax
- else if s='tmin' then result:=Konturen^[i].tmin
- else if s='tmax' then result:=Konturen^[i].tmax
- else if s='Breite' then result:=Konturen^[i].xmax-Konturen^[i].xmin
- else if s='Hoehe' then result:=Konturen^[i].tmax-Konturen^[i].tmin
- else gibAus('Kenne Bezeichner '''+s+''' nicht als Eigenschaft einer Kontur!',3);
- exit;
- end;
- if startetMit('Wert[',s) or startetMit('Werte[',s) or startetMit('Wertes[',s) then begin
- if pos('].',s)=0 then begin
- gibAus('Syntaxfehler, '']'' fehlt!',3);
- exit;
- end;
- i:=findeWerte(erstesArgument(s,'].'),nil,wertes,Konturen,false);
- if i<0 then begin
- gibAus('Finde Werte nicht!',3);
- exit;
- end;
- if s='xmin' then result:=wertes^[i].Transformationen.xstart
- else if s='xmax' then result:=wertes^[i].Transformationen.xstop
- else if s='tmin' then result:=wertes^[i].Transformationen.tstart
- else if s='tmax' then result:=wertes^[i].Transformationen.xstop
- else if (s='wmin') or (s='minw') then result:=wertes^[i]._minw
- else if (s='wmax') or (s='maxw') then result:=wertes^[i]._maxw
- else if s='Breite' then result:=wertes^[i].Transformationen.xstart-wertes^[i].Transformationen.xstop
- else if s='Hoehe' then result:=wertes^[i].Transformationen.tstart-wertes^[i].Transformationen.tstop
- else gibAus('Kenne Bezeichner '''+s+''' nicht als Eigenschaft von Werten!',3);
- exit;
- end;
- gibAus('Ich kenne den Bezeichner '''+s+''' nicht!',3);
-end;
-
function tWerte.exprtofloat(st: boolean; s: string): extended;
begin
case genauigkeit of
@@ -4908,9 +4913,9 @@ end;
// tKontur *********************************************************************
-constructor tKontur.create;
+constructor tKontur.create(Kont: pTKonturenArray; wert: pTWerteArray);
begin
- inherited create;
+ inherited create(Kont,wert);
farbe.rgbRed:=$00;
farbe.rgbGreen:=$00;
farbe.rgbBlue:=$00;
@@ -4976,6 +4981,11 @@ begin
result:=max(result,orte[i]['y']);
end;
+function tKontur.exprtofloat(st: boolean; s: string; kvs: tKnownValues): extended;
+begin
+ result:=matheunit.exprtofloat(st,s,kvs,@callBackGetValue);
+end;
+
function tKontur.init(st: boolean; var f: tMyStringlist; w: pTWerteArray; mt: longint): boolean;
var
s,xmi,xma,tmi,tma: string;
@@ -5014,7 +5024,7 @@ begin
gibAus('Diese Kontur hat schon Werte!',3);
exit;
end;
- if not liesVonDatei(st,s,strtofloat(xmi),strtofloat(xma),strtofloat(tmi),strtofloat(tma)) then exit;
+ if not liesVonDatei(st,s,exprtofloat(st,xmi,nil),exprtofloat(st,xma,nil),exprtofloat(st,tmi,nil),exprtofloat(st,tma,nil)) then exit;
continue;
end;
if startetMit('Werte:',s) then begin
@@ -5990,7 +6000,7 @@ begin
result:=length(pws^)-1;
end;
-function findeKontur(s: String; f: tMyStringlist; pks: pTKonturenArray; darfErstellen: boolean): integer;
+function findeKontur(s: String; f: tMyStringlist; pws: pTWerteArray; pks: pTKonturenArray; darfErstellen: boolean): integer;
var
i: integer;
istZahl: boolean;
@@ -6021,7 +6031,7 @@ begin
end;
setlength(pks^,length(pks^)+1);
- pks^[length(pks^)-1]:=tKontur.create;
+ pks^[length(pks^)-1]:=tKontur.create(pks,pws);
pks^[length(pks^)-1].bezeichner:=s;
i:=f.count-1;