summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2015-11-25 15:57:15 +0100
committerErich Eckner <git@eckner.net>2015-11-25 15:57:15 +0100
commit9348a2c95e863391818d0dd6d8a44e5d38e3b75c (patch)
tree6e68e6a1b1dc63c062b0eb0f19365fc27faabb35
parent99d177bae2bb50c19637df212c97fc3a2c4f5f10 (diff)
downloadjenah-master.tar.xz
läuft jetztHEADmaster
-rw-r--r--bus_da.icobin766 -> 894 bytes
-rw-r--r--filterunit.pas352
-rw-r--r--jenah.lpi21
-rw-r--r--jenah.lpr4
-rw-r--r--jenah.lps360
-rw-r--r--jenah.resbin1700 -> 2268 bytes
-rw-r--r--normal.icobin766 -> 894 bytes
-rw-r--r--optionen.txt4
-rw-r--r--unbekannt.icobin766 -> 894 bytes
-rw-r--r--unit1.lfm144
-rw-r--r--unit1.pas226
11 files changed, 539 insertions, 572 deletions
diff --git a/bus_da.ico b/bus_da.ico
index 7ca1dfa..4509270 100644
--- a/bus_da.ico
+++ b/bus_da.ico
Binary files differ
diff --git a/filterunit.pas b/filterunit.pas
index e030bcb..fb1e54f 100644
--- a/filterunit.pas
+++ b/filterunit.pas
@@ -8,209 +8,207 @@ uses
Classes, SysUtils;
type
+
tAbfahrt = record
- haltestellenId: integer;
- Linie,Ziel,Richtung: String;
- sAn,sAb,iAn,iAb: TDatetime;
- end;
+ haltestellenId: integer;
+ linie,ziel,richtung: string;
+ sAn,sAb,iAn,iAb: tDateTime;
+ end;
+
tFilterKriterium = (fkZeit,fkLinie,fkHaltestelle);
- tBoolOperation = (boPush1,boPop1,boPush2,boPop2,
- boNot,boAnd,boOr,
- boSet,boPropablySet,boClr,
- boTrust,boMistrust,
- boDrop,boCopy);
+
+ tBoolOperation =
+ (boPush1,boPop1,boPush2,boPop2,
+ boNot,boAnd,boOr,
+ boSet,boPropablySet,boClr,
+ boTrust,boMistrust,
+ boDrop,boCopy);
+
tFilter = class
- Kriterien: array of TFilterKriterium;
- Vergleiche: array of string;
- Verknuepfung: array of TBoolOperation;
- function Regel_erfuellt(Abf: TAbfahrt; Genuegsamkeit: byte): boolean;
- constructor create(var f: textfile);
- destructor destroy;
- end;
-
-function extract_time(source: string): tdatetime;
-function extract_advtime(source: string): tdatetime;
+ kriterien: array of tFilterKriterium;
+ vergleiche: array of string;
+ verknuepfung: array of tBoolOperation;
+ function regelErfuellt(abf: tAbfahrt; genuegsamkeit: byte): boolean;
+ constructor create(var f: textfile);
+ destructor destroy; override;
+ end;
+
+function extractTime(source: string): tDateTime;
function extract(verifyer,source: string): string; overload;
-function extract(verifyer,source: string; var Tag: string): string; overload;
+function extract(verifyer,source: string; out tag: string): string; overload;
implementation
-uses math;
+uses math, lowlevelUnit;
-function tFilter.Regel_erfuellt(abf: TAbfahrt; genuegsamkeit: Byte): boolean;
-var i: longint;
- stack1,stack2,reg: array of byte;
+function tFilter.regelErfuellt(abf: tAbfahrt; genuegsamkeit: byte): boolean;
+var
+ i: longint;
+ stack1,stack2,reg: array of byte;
begin
- setlength(stack1,0);
- setlength(stack2,0);
- setlength(reg,min(length(Kriterien),length(Vergleiche)));
- for I:=0 to length(Reg)-1 do begin
- case Kriterien[I] of
- fkZeit: Reg[I]:=max(Byte(Abf.sAb - now < strtotime(Vergleiche[I])),
- 2*Byte(Abf.iAb - now < strtotime(Vergleiche[I])));
- fkLinie: Reg[I]:=2*Byte(strtoint(Abf.Linie) = strtoint(Vergleiche[I]));
- fkHaltestelle: Reg[I]:=2*Byte(Abf.haltestellenId = strtoint(Vergleiche[I]));
- end{of Case};
- end;
- for I:=0 to length(Verknuepfung)-1 do
- case Verknuepfung[I] of
- boNot: Reg[length(Reg)-1]:=2-Reg[length(Reg)-1];
- boPush1: begin
- setlength(Stack1,length(Stack1)+1);
- Stack1[length(Stack1)-1]:=Reg[length(Reg)-1];
- setlength(Reg,length(Reg)-1);
- end;
- boPop1: begin
- setlength(Reg,length(Reg)+1);
- Reg[length(Reg)-1]:=Stack1[length(Stack1)-1];
- setlength(Stack1,length(Stack1)-1);
- end;
- boPush2: begin
- setlength(Stack2,length(Stack2)+1);
- Stack2[length(Stack2)-1]:=Reg[length(Reg)-1];
- setlength(Reg,length(Reg)-1);
- end;
- boPop2: begin
- setlength(Reg,length(Reg)+1);
- Reg[length(Reg)-1]:=Stack1[length(Stack2)-1];
- setlength(Stack2,length(Stack2)-1);
- end;
- boAnd: begin
- Reg[length(Reg)-2]:=min(Reg[length(Reg)-1],Reg[length(Reg)-2]);
- setlength(Reg,length(Reg)-1);
- end;
- boOr: begin
- Reg[length(Reg)-2]:=max(Reg[length(Reg)-1],Reg[length(Reg)-2]);
- setlength(Reg,length(Reg)-1);
- end;
- boSet: Reg[length(Reg)-1]:=2;
- boPropablySet: Reg[length(Reg)-1]:=1;
- boClr: Reg[length(Reg)-1]:=0;
- boDrop: setlength(Reg,length(Reg)-1);
- boTrust: Reg[length(Reg)-1]:=2*Byte(Reg[length(Reg)-1]<>0);
- boMistrust: Reg[length(Reg)-1]:=2*Byte(Reg[length(Reg)-1]=2);
- boCopy: begin
- setlength(Reg,length(Reg)+1);
- Reg[length(Reg)-1]:=Reg[length(Reg)-2];
- end;
- end{of case};
- Result:=Reg[0]>=Genuegsamkeit;
- setlength(Reg,0);
- setlength(Stack1,0);
- setlength(Stack2,0);
+ setlength(stack1,0);
+ setlength(stack2,0);
+ setlength(reg,min(length(kriterien),length(vergleiche)));
+ for i:=0 to length(reg)-1 do
+ case kriterien[i] of
+ fkZeit: reg[i]:=max(byte(abf.sAb - now < strtotime(vergleiche[i])),
+ 2*byte(abf.iAb - now < strtotime(vergleiche[i])));
+ fkLinie: reg[i]:=2*byte(strtoint(abf.Linie) = strtoint(vergleiche[i]));
+ fkHaltestelle: reg[i]:=2*byte(abf.haltestellenId = strtoint(vergleiche[i]));
+ end{of Case};
+ for i:=0 to length(verknuepfung)-1 do
+ case verknuepfung[i] of
+ boNot: reg[length(reg)-1]:=2-reg[length(reg)-1];
+ boPush1: begin
+ setlength(stack1,length(stack1)+1);
+ stack1[length(stack1)-1]:=reg[length(reg)-1];
+ setlength(reg,length(reg)-1);
+ end;
+ boPop1: begin
+ setlength(reg,length(reg)+1);
+ reg[length(reg)-1]:=stack1[length(stack1)-1];
+ setlength(stack1,length(stack1)-1);
+ end;
+ boPush2: begin
+ setlength(stack2,length(stack2)+1);
+ stack2[length(stack2)-1]:=reg[length(reg)-1];
+ setlength(reg,length(reg)-1);
+ end;
+ boPop2: begin
+ setlength(reg,length(reg)+1);
+ reg[length(reg)-1]:=stack1[length(stack2)-1];
+ setlength(stack2,length(stack2)-1);
+ end;
+ boAnd: begin
+ reg[length(reg)-2]:=min(reg[length(reg)-1],reg[length(reg)-2]);
+ setlength(reg,length(reg)-1);
+ end;
+ boOr: begin
+ reg[length(reg)-2]:=max(reg[length(reg)-1],reg[length(reg)-2]);
+ setlength(reg,length(reg)-1);
+ end;
+ boSet: reg[length(reg)-1]:=2;
+ boPropablySet: reg[length(reg)-1]:=1;
+ boClr: reg[length(reg)-1]:=0;
+ boDrop: setlength(reg,length(reg)-1);
+ boTrust: reg[length(reg)-1]:=2*byte(reg[length(reg)-1]<>0);
+ boMistrust: reg[length(reg)-1]:=2*byte(reg[length(reg)-1]=2);
+ boCopy: begin
+ setlength(reg,length(reg)+1);
+ reg[length(reg)-1]:=reg[length(reg)-2];
+ end;
+ end{of case};
+ result:=reg[0]>=genuegsamkeit;
+ setlength(reg,0);
+ setlength(stack1,0);
+ setlength(stack2,0);
end;
-constructor TFilter.create(var f: textfile);
-var s: string;
- i: byte;
+constructor tFilter.create(var f: textfile);
+var
+ s: string;
+ i: byte;
begin
- inherited create;
- setlength(Kriterien,0);
- setlength(Vergleiche,0);
- setlength(Verknuepfung,0);
- i:=0;
-
- while not eof(f) do begin
- readln(f,s);
- if s=':filter' then exit;
- if (length(s)=0) or (s[1]='#') then continue;
- if s=':filter:' then begin
- if i<>0 then
- raise Exception.create('Ich habe zu häufig '':filter:''!');
- inc(i);
- continue;
- end;
- case i of
- 0: begin
- setlength(Kriterien,length(Kriterien)+1);
- case s[1] of
- 't': Kriterien[length(Kriterien)-1]:=fkZeit;
- 'l': Kriterien[length(Kriterien)-1]:=fkLinie;
- 'h': Kriterien[length(Kriterien)-1]:=fkHaltestelle;
- else raise Exception.create('Ich kenne Kriterium '''+s[1]+''' nicht!');
- end{of Case};
- delete(s,1,1);
- setlength(Vergleiche,length(Vergleiche)+1);
- Vergleiche[length(Vergleiche)-1]:=s;
- end;
- 1: begin
- setlength(Verknuepfung,length(Verknuepfung)+1);
- case s[1] of
- '-': Verknuepfung[length(Verknuepfung)-1]:=boNot;
- '&': Verknuepfung[length(Verknuepfung)-1]:=boAnd;
- '|': Verknuepfung[length(Verknuepfung)-1]:=boOr;
- '0': Verknuepfung[length(Verknuepfung)-1]:=boClr;
- '1': Verknuepfung[length(Verknuepfung)-1]:=boPropablySet;
- '2': Verknuepfung[length(Verknuepfung)-1]:=boSet;
- 'v': Verknuepfung[length(Verknuepfung)-1]:=boPush1;
- '^': Verknuepfung[length(Verknuepfung)-1]:=boPop1;
- '<': Verknuepfung[length(Verknuepfung)-1]:=boPush2;
- '>': Verknuepfung[length(Verknuepfung)-1]:=boPop2;
- '*': Verknuepfung[length(Verknuepfung)-1]:=boDrop;
- '~': Verknuepfung[length(Verknuepfung)-1]:=boCopy;
- 'T': Verknuepfung[length(Verknuepfung)-1]:=boTrust;
- 'M': Verknuepfung[length(Verknuepfung)-1]:=boMistrust;
- else raise Exception.create('Ich kenne Verknüpfung '''+s[1]+''' nicht!');
- end{of Case};
- end;
- end{of Case};
- end;
- raise Exception.create('Unerwartetes Dateiende!');
-end;
-
-destructor TFilter.destroy;
-var i: longint;
-begin
- for i:=0 to length(Vergleiche)-1 do
- Vergleiche[i]:='';
- setlength(Kriterien,0);
- setlength(Vergleiche,0);
- setlength(Verknuepfung,0);
- inherited destroy;
+ inherited create;
+ setlength(kriterien,0);
+ setlength(vergleiche,0);
+ setlength(verknuepfung,0);
+ i:=0;
+
+ while not eof(f) do begin
+ readln(f,s);
+ if s=':filter' then exit;
+ if (length(s)=0) or (s[1]='#') then continue;
+ if s=':filter:' then begin
+ if i<>0 then
+ raise exception.create('Ich habe zu häufig '':filter:''!');
+ inc(i);
+ continue;
+ end;
+ case i of
+ 0: begin
+ setlength(kriterien,length(kriterien)+1);
+ case s[1] of
+ 't': kriterien[length(kriterien)-1]:=fkZeit;
+ 'l': kriterien[length(kriterien)-1]:=fkLinie;
+ 'h': kriterien[length(kriterien)-1]:=fkHaltestelle;
+ else raise Exception.create('Ich kenne Kriterium '''+s[1]+''' nicht!');
+ end{of Case};
+ delete(s,1,1);
+ setlength(vergleiche,length(vergleiche)+1);
+ vergleiche[length(vergleiche)-1]:=s;
+ end;
+ 1: begin
+ setlength(verknuepfung,length(verknuepfung)+1);
+ case s[1] of
+ '-': verknuepfung[length(verknuepfung)-1]:=boNot;
+ '&': verknuepfung[length(verknuepfung)-1]:=boAnd;
+ '|': verknuepfung[length(verknuepfung)-1]:=boOr;
+ '0': verknuepfung[length(verknuepfung)-1]:=boClr;
+ '1': verknuepfung[length(verknuepfung)-1]:=boPropablySet;
+ '2': verknuepfung[length(verknuepfung)-1]:=boSet;
+ 'v': verknuepfung[length(verknuepfung)-1]:=boPush1;
+ '^': verknuepfung[length(verknuepfung)-1]:=boPop1;
+ '<': verknuepfung[length(verknuepfung)-1]:=boPush2;
+ '>': verknuepfung[length(verknuepfung)-1]:=boPop2;
+ '*': verknuepfung[length(verknuepfung)-1]:=boDrop;
+ '~': verknuepfung[length(verknuepfung)-1]:=boCopy;
+ 'T': verknuepfung[length(verknuepfung)-1]:=boTrust;
+ 'M': verknuepfung[length(verknuepfung)-1]:=boMistrust;
+ else raise exception.create('Ich kenne Verknüpfung '''+s[1]+''' nicht!');
+ end{of Case};
+ end;
+ end{of Case};
+ end;
+ raise exception.create('Unerwartetes Dateiende!');
end;
-function extract_time(source: string): tdatetime;
-var s: string;
+destructor tFilter.destroy;
+var
+ i: longint;
begin
- s:=copy(source,1,pos('-',source)-1);
- delete(source,1,pos('-',source));
- s:=copy(source,1,pos('-',source)-1)+'.'+s;
- delete(source,1,pos('-',source));
- s:=copy(source,1,pos('T',source)-1)+'.'+s;
- delete(source,1,pos('T',source));
- s:=s+' '+source;
- result:=strtodatetime(s);
+ for i:=0 to length(vergleiche)-1 do
+ vergleiche[i]:='';
+ setlength(kriterien,0);
+ setlength(vergleiche,0);
+ setlength(verknuepfung,0);
+ inherited destroy;
end;
-function extract_advtime(source: string): tdatetime;
+function extractTime(source: string): tDateTime;
+var
+ ja,mo,ta,st,mi,se: word;
begin
- delete(source,1,pos('"',source));
- source:=copy(source,1,pos('"',source)-1);
- result:=extract_time(source);
+ ja:=strtoint(erstesArgument(source,'-'));
+ mo:=strtoint(erstesArgument(source,'-'));
+ ta:=strtoint(erstesArgument(source,'T'));
+ st:=strtoint(erstesArgument(source,':'));
+ mi:=strtoint(erstesArgument(source,':'));
+ se:=strtoint(source);
+ result:=encodeDate(ja,mo,ta)+encodeTime(st,mi,se,0);
end;
function extract(verifyer,source: string): string; overload;
begin
- result:='';
- if (pos('<'+verifyer+'>',source)>0) or
- (pos('<'+verifyer+' ',source)>0) then
- begin
- delete(source,1,pos('<'+verifyer,source)+length('<'+verifyer)-1);
- delete(source,1,pos('>',source));
- result:=copy(source,1,pos('</'+verifyer+'>',source)-1);
+ result:='';
+ if (pos('<'+verifyer+'>',source)>0) or
+ (pos('<'+verifyer+' ',source)>0) then begin
+ delete(source,1,pos('<'+verifyer,source)+length('<'+verifyer)-1);
+ delete(source,1,pos('>',source));
+ result:=copy(source,1,pos('</'+verifyer+'>',source)-1);
end;
end;
-function extract(verifyer,source: string; var Tag: string): string; overload;
+function extract(verifyer,source: string; out tag: string): string; overload;
begin
- result:='';
- if (pos('<'+verifyer+'>',source)>0) or
- (pos('<'+verifyer+' ',source)>0) then
- begin
- delete(source,1,pos('<'+verifyer,source)+length('<'+verifyer)-1);
- Tag:=copy(source,2,pos('>',source)-2);
- delete(source,1,pos('>',source));
- result:=copy(source,1,pos('</'+verifyer+'>',source)-1);
+ result:='';
+ tag:='';
+ if (pos('<'+verifyer+'>',source)>0) or
+ (pos('<'+verifyer+' ',source)>0) then begin
+ delete(source,1,pos('<'+verifyer,source)+length('<'+verifyer)-1);
+ tag:=copy(source,2,pos('>',source)-2);
+ delete(source,1,pos('>',source));
+ result:=copy(source,1,pos('</'+verifyer+'>',source)-1);
end;
end;
diff --git a/jenah.lpi b/jenah.lpi
index 4c0f222..b456aae 100644
--- a/jenah.lpi
+++ b/jenah.lpi
@@ -28,19 +28,15 @@
<FormatVersion Value="1"/>
</local>
</RunParams>
- <RequiredPackages Count="2">
+ <RequiredPackages Count="1">
<Item1>
- <PackageName Value="lnetvisual"/>
- </Item1>
- <Item2>
<PackageName Value="LCL"/>
- </Item2>
+ </Item1>
</RequiredPackages>
- <Units Count="3">
+ <Units Count="4">
<Unit0>
<Filename Value="jenah.lpr"/>
<IsPartOfProject Value="True"/>
- <UnitName Value="jenah"/>
</Unit0>
<Unit1>
<Filename Value="unit1.pas"/>
@@ -53,8 +49,11 @@
<Unit2>
<Filename Value="filterunit.pas"/>
<IsPartOfProject Value="True"/>
- <UnitName Value="filterunit"/>
</Unit2>
+ <Unit3>
+ <Filename Value="jenahunit.pas"/>
+ <IsPartOfProject Value="True"/>
+ </Unit3>
</Units>
</ProjectOptions>
<CompilerOptions>
@@ -74,12 +73,6 @@
</Win32>
</Options>
</Linking>
- <Other>
- <CompilerMessages>
- <MsgFileName Value=""/>
- </CompilerMessages>
- <CompilerPath Value="$(CompPath)"/>
- </Other>
</CompilerOptions>
<Debugging>
<Exceptions Count="3">
diff --git a/jenah.lpr b/jenah.lpr
index c078881..0ba2fb6 100644
--- a/jenah.lpr
+++ b/jenah.lpr
@@ -3,11 +3,9 @@ program jenah;
{$mode objfpc}{$H+}
uses
- {$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
- {$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
- Forms, Unit1, lnetvisual, filterunit
+ Forms, Unit1, filterunit, jenahunit
{ you can add units after this };
{$R *.res}
diff --git a/jenah.lps b/jenah.lps
index b7e8de6..293778a 100644
--- a/jenah.lps
+++ b/jenah.lps
@@ -1,172 +1,188 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<CONFIG>
- <ProjectSession>
- <PathDelim Value="\"/>
- <Version Value="9"/>
- <BuildModes Active="Default"/>
- <Units Count="3">
- <Unit0>
- <Filename Value="jenah.lpr"/>
- <IsPartOfProject Value="True"/>
- <UnitName Value="jenah"/>
- <WindowIndex Value="0"/>
- <TopLine Value="1"/>
- <CursorPos X="1" Y="1"/>
- <UsageCount Value="23"/>
- </Unit0>
- <Unit1>
- <Filename Value="unit1.pas"/>
- <IsPartOfProject Value="True"/>
- <ComponentName Value="Form1"/>
- <HasResources Value="True"/>
- <ResourceBaseClass Value="Form"/>
- <UnitName Value="Unit1"/>
- <EditorIndex Value="0"/>
- <WindowIndex Value="0"/>
- <TopLine Value="85"/>
- <CursorPos X="22" Y="103"/>
- <UsageCount Value="23"/>
- <Loaded Value="True"/>
- <LoadedDesigner Value="True"/>
- </Unit1>
- <Unit2>
- <Filename Value="filterunit.pas"/>
- <IsPartOfProject Value="True"/>
- <UnitName Value="filterunit"/>
- <IsVisibleTab Value="True"/>
- <EditorIndex Value="1"/>
- <WindowIndex Value="0"/>
- <TopLine Value="107"/>
- <CursorPos X="39" Y="123"/>
- <UsageCount Value="23"/>
- <Loaded Value="True"/>
- </Unit2>
- </Units>
- <General>
- <ActiveWindowIndexAtStart Value="0"/>
- </General>
- <JumpHistory Count="30" HistoryIndex="29">
- <Position1>
- <Filename Value="unit1.pas"/>
- <Caret Line="68" Column="122" TopLine="43"/>
- </Position1>
- <Position2>
- <Filename Value="unit1.pas"/>
- <Caret Line="154" Column="19" TopLine="129"/>
- </Position2>
- <Position3>
- <Filename Value="unit1.pas"/>
- <Caret Line="156" Column="18" TopLine="131"/>
- </Position3>
- <Position4>
- <Filename Value="unit1.pas"/>
- <Caret Line="159" Column="19" TopLine="134"/>
- </Position4>
- <Position5>
- <Filename Value="unit1.pas"/>
- <Caret Line="163" Column="19" TopLine="138"/>
- </Position5>
- <Position6>
- <Filename Value="unit1.pas"/>
- <Caret Line="164" Column="19" TopLine="139"/>
- </Position6>
- <Position7>
- <Filename Value="unit1.pas"/>
- <Caret Line="168" Column="19" TopLine="143"/>
- </Position7>
- <Position8>
- <Filename Value="unit1.pas"/>
- <Caret Line="170" Column="57" TopLine="145"/>
- </Position8>
- <Position9>
- <Filename Value="unit1.pas"/>
- <Caret Line="171" Column="75" TopLine="146"/>
- </Position9>
- <Position10>
- <Filename Value="unit1.pas"/>
- <Caret Line="174" Column="19" TopLine="149"/>
- </Position10>
- <Position11>
- <Filename Value="unit1.pas"/>
- <Caret Line="69" Column="27" TopLine="54"/>
- </Position11>
- <Position12>
- <Filename Value="unit1.pas"/>
- <Caret Line="138" Column="1" TopLine="129"/>
- </Position12>
- <Position13>
- <Filename Value="unit1.pas"/>
- <Caret Line="29" Column="1" TopLine="14"/>
- </Position13>
- <Position14>
- <Filename Value="unit1.pas"/>
- <Caret Line="181" Column="1" TopLine="152"/>
- </Position14>
- <Position15>
- <Filename Value="unit1.pas"/>
- <Caret Line="140" Column="5" TopLine="125"/>
- </Position15>
- <Position16>
- <Filename Value="unit1.pas"/>
- <Caret Line="47" Column="21" TopLine="31"/>
- </Position16>
- <Position17>
- <Filename Value="unit1.pas"/>
- <Caret Line="117" Column="7" TopLine="102"/>
- </Position17>
- <Position18>
- <Filename Value="unit1.pas"/>
- <Caret Line="186" Column="13" TopLine="171"/>
- </Position18>
- <Position19>
- <Filename Value="unit1.pas"/>
- <Caret Line="188" Column="13" TopLine="173"/>
- </Position19>
- <Position20>
- <Filename Value="unit1.pas"/>
- <Caret Line="251" Column="35" TopLine="239"/>
- </Position20>
- <Position21>
- <Filename Value="unit1.pas"/>
- <Caret Line="102" Column="24" TopLine="87"/>
- </Position21>
- <Position22>
- <Filename Value="unit1.pas"/>
- <Caret Line="1" Column="1" TopLine="1"/>
- </Position22>
- <Position23>
- <Filename Value="unit1.pas"/>
- <Caret Line="45" Column="17" TopLine="22"/>
- </Position23>
- <Position24>
- <Filename Value="unit1.pas"/>
- <Caret Line="63" Column="113" TopLine="48"/>
- </Position24>
- <Position25>
- <Filename Value="unit1.pas"/>
- <Caret Line="107" Column="54" TopLine="90"/>
- </Position25>
- <Position26>
- <Filename Value="unit1.pas"/>
- <Caret Line="105" Column="39" TopLine="90"/>
- </Position26>
- <Position27>
- <Filename Value="unit1.pas"/>
- <Caret Line="104" Column="39" TopLine="89"/>
- </Position27>
- <Position28>
- <Filename Value="unit1.pas"/>
- <Caret Line="103" Column="39" TopLine="88"/>
- </Position28>
- <Position29>
- <Filename Value="unit1.pas"/>
- <Caret Line="102" Column="39" TopLine="87"/>
- </Position29>
- <Position30>
- <Filename Value="unit1.pas"/>
- <Caret Line="101" Column="39" TopLine="86"/>
- </Position30>
- </JumpHistory>
- </ProjectSession>
- <EditorMacros Count="0"/>
-</CONFIG>
+<?xml version="1.0" encoding="UTF-8"?>
+<CONFIG>
+ <ProjectSession>
+ <PathDelim Value="\"/>
+ <Version Value="9"/>
+ <BuildModes Active="Default"/>
+ <Units Count="7">
+ <Unit0>
+ <Filename Value="jenah.lpr"/>
+ <IsPartOfProject Value="True"/>
+ <EditorIndex Value="-1"/>
+ <CursorPos Y="7"/>
+ <UsageCount Value="34"/>
+ </Unit0>
+ <Unit1>
+ <Filename Value="unit1.pas"/>
+ <IsPartOfProject Value="True"/>
+ <ComponentName Value="Form1"/>
+ <HasResources Value="True"/>
+ <ResourceBaseClass Value="Form"/>
+ <UnitName Value="Unit1"/>
+ <IsVisibleTab Value="True"/>
+ <TopLine Value="66"/>
+ <CursorPos X="70" Y="99"/>
+ <UsageCount Value="34"/>
+ <Loaded Value="True"/>
+ <LoadedDesigner Value="True"/>
+ </Unit1>
+ <Unit2>
+ <Filename Value="filterunit.pas"/>
+ <IsPartOfProject Value="True"/>
+ <EditorIndex Value="3"/>
+ <TopLine Value="29"/>
+ <CursorPos X="32" Y="52"/>
+ <UsageCount Value="34"/>
+ <Loaded Value="True"/>
+ </Unit2>
+ <Unit3>
+ <Filename Value="..\..\..\..\..\usr\share\lazarus\lcl\include\control.inc"/>
+ <EditorIndex Value="-1"/>
+ <TopLine Value="3645"/>
+ <CursorPos Y="3667"/>
+ <UsageCount Value="9"/>
+ </Unit3>
+ <Unit4>
+ <Filename Value="unit1.lfm"/>
+ <EditorIndex Value="-1"/>
+ <CursorPos Y="29"/>
+ <UsageCount Value="9"/>
+ <DefaultSyntaxHighlighter Value="LFM"/>
+ </Unit4>
+ <Unit5>
+ <Filename Value="jenahunit.pas"/>
+ <IsPartOfProject Value="True"/>
+ <EditorIndex Value="2"/>
+ <TopLine Value="65"/>
+ <CursorPos Y="89"/>
+ <UsageCount Value="31"/>
+ <Loaded Value="True"/>
+ </Unit5>
+ <Unit6>
+ <Filename Value="optionen.txt"/>
+ <EditorIndex Value="1"/>
+ <CursorPos X="2" Y="14"/>
+ <UsageCount Value="12"/>
+ <Loaded Value="True"/>
+ <DefaultSyntaxHighlighter Value="None"/>
+ </Unit6>
+ </Units>
+ <JumpHistory Count="30" HistoryIndex="29">
+ <Position1>
+ <Filename Value="filterunit.pas"/>
+ <Caret Line="193" TopLine="175"/>
+ </Position1>
+ <Position2>
+ <Filename Value="filterunit.pas"/>
+ <Caret Line="37" TopLine="36"/>
+ </Position2>
+ <Position3>
+ <Filename Value="filterunit.pas"/>
+ </Position3>
+ <Position4>
+ <Filename Value="filterunit.pas"/>
+ <Caret Line="61" Column="24" TopLine="25"/>
+ </Position4>
+ <Position5>
+ <Filename Value="filterunit.pas"/>
+ </Position5>
+ <Position6>
+ <Filename Value="filterunit.pas"/>
+ <Caret Line="57" Column="40" TopLine="21"/>
+ </Position6>
+ <Position7>
+ <Filename Value="filterunit.pas"/>
+ </Position7>
+ <Position8>
+ <Filename Value="filterunit.pas"/>
+ <Caret Line="103" Column="16" TopLine="68"/>
+ </Position8>
+ <Position9>
+ <Filename Value="filterunit.pas"/>
+ </Position9>
+ <Position10>
+ <Filename Value="filterunit.pas"/>
+ <Caret Line="104" Column="19" TopLine="69"/>
+ </Position10>
+ <Position11>
+ <Filename Value="filterunit.pas"/>
+ <Caret Line="105" Column="19" TopLine="49"/>
+ </Position11>
+ <Position12>
+ <Filename Value="filterunit.pas"/>
+ </Position12>
+ <Position13>
+ <Filename Value="jenahunit.pas"/>
+ <Caret Line="49" Column="26" TopLine="88"/>
+ </Position13>
+ <Position14>
+ <Filename Value="jenahunit.pas"/>
+ <Caret Line="23" Column="25"/>
+ </Position14>
+ <Position15>
+ <Filename Value="jenahunit.pas"/>
+ <Caret Line="55" TopLine="27"/>
+ </Position15>
+ <Position16>
+ <Filename Value="jenahunit.pas"/>
+ <Caret Line="71" TopLine="48"/>
+ </Position16>
+ <Position17>
+ <Filename Value="jenahunit.pas"/>
+ <Caret Line="83" Column="110" TopLine="57"/>
+ </Position17>
+ <Position18>
+ <Filename Value="jenahunit.pas"/>
+ <Caret Line="89" Column="103" TopLine="67"/>
+ </Position18>
+ <Position19>
+ <Filename Value="jenahunit.pas"/>
+ <Caret Line="123" Column="14" TopLine="123"/>
+ </Position19>
+ <Position20>
+ <Filename Value="unit1.pas"/>
+ <Caret Line="91" Column="40" TopLine="52"/>
+ </Position20>
+ <Position21>
+ <Filename Value="jenahunit.pas"/>
+ <Caret Line="165" TopLine="134"/>
+ </Position21>
+ <Position22>
+ <Filename Value="jenahunit.pas"/>
+ <Caret Line="199" Column="29" TopLine="160"/>
+ </Position22>
+ <Position23>
+ <Filename Value="filterunit.pas"/>
+ <Caret Line="96" Column="45" TopLine="59"/>
+ </Position23>
+ <Position24>
+ <Filename Value="unit1.pas"/>
+ <Caret Line="89" Column="27" TopLine="57"/>
+ </Position24>
+ <Position25>
+ <Filename Value="unit1.pas"/>
+ <Caret Line="90" Column="84" TopLine="57"/>
+ </Position25>
+ <Position26>
+ <Filename Value="unit1.pas"/>
+ <Caret Line="91" Column="84" TopLine="58"/>
+ </Position26>
+ <Position27>
+ <Filename Value="unit1.pas"/>
+ <Caret Line="92" Column="84" TopLine="59"/>
+ </Position27>
+ <Position28>
+ <Filename Value="unit1.pas"/>
+ <Caret Line="99" Column="84" TopLine="61"/>
+ </Position28>
+ <Position29>
+ <Filename Value="unit1.pas"/>
+ <Caret Line="90" TopLine="61"/>
+ </Position29>
+ <Position30>
+ <Filename Value="unit1.pas"/>
+ <Caret Line="97" Column="77" TopLine="55"/>
+ </Position30>
+ </JumpHistory>
+ </ProjectSession>
+</CONFIG>
diff --git a/jenah.res b/jenah.res
index 3bfffa0..955b8f8 100644
--- a/jenah.res
+++ b/jenah.res
Binary files differ
diff --git a/normal.ico b/normal.ico
index cb6b9a3..55b71e3 100644
--- a/normal.ico
+++ b/normal.ico
Binary files differ
diff --git a/optionen.txt b/optionen.txt
index 7ed028a..ced6824 100644
--- a/optionen.txt
+++ b/optionen.txt
@@ -8,8 +8,10 @@ t00:02:30
:filter:
-
&
-&
+v
|
+^
+&
T
:filter
diff --git a/unbekannt.ico b/unbekannt.ico
index c92ec9e..69dd092 100644
--- a/unbekannt.ico
+++ b/unbekannt.ico
Binary files differ
diff --git a/unit1.lfm b/unit1.lfm
index d7926f7..9a952d5 100644
--- a/unit1.lfm
+++ b/unit1.lfm
@@ -1,15 +1,17 @@
object Form1: TForm1
- Left = 362
+ Left = 2320
Height = 576
- Top = 176
+ Top = 163
Width = 779
Caption = 'Form1'
ClientHeight = 576
ClientWidth = 779
+ OnClose = FormClose
OnCreate = FormCreate
OnDestroy = FormDestroy
OnResize = FormResize
- LCLVersion = '1.2.2.0'
+ OnShow = FormShow
+ LCLVersion = '1.4.4.0'
object Memo1: TMemo
Left = 0
Height = 490
@@ -20,32 +22,124 @@ object Form1: TForm1
)
TabOrder = 0
end
+ object unbekanntIcon: TImage
+ Left = 56
+ Height = 18
+ Top = 8
+ Width = 18
+ Picture.Data = {
+ 055449636F6E7E03000000000100010010100000010018006803000016000000
+ 2800000010000000200000000100180000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 000000000000000000004D4D4D4D4D4D4D4D4D4D4D4D00000000000000000000
+ 00000000000000000000000000000000000000000000000000004D4D4D000000
+ 0000004D4D4D0000000000000000000000000000000000000000000000000000
+ 000000000000000000000000004D4D4D4D4D4D00000000000000000000000000
+ 00000000000000000000000000000000000000000000000000000000004D4D4D
+ 4D4D4D4D4D4D0000000000000000000000000000000000000000000000000000
+ 000000000000000000004D4D4D0000000000004D4D4D00000000000000000000
+ 00000000000000000000000000000000000000000000000000004D4D4D000000
+ 0000000000004D4D4D4D4D4D0000000000000000000000000000000000000000
+ 000000000000000000004D4D4D0000000000000000000000000000004D4D4D00
+ 00000000000000000000000000000000000000000000000000000000004D4D4D
+ 4D4D4D4D4D4D0000000000004D4D4D0000000000000000000000000000000000
+ 000000000000000000000000000000000000000000004D4D4D0000000000004D
+ 4D4D000000000000000000000000000000000000000000000000000000000000
+ 0000000000004D4D4D0000000000004D4D4D0000000000000000000000000000
+ 000000000000000000000000000000000000000000004D4D4D0000000000004D
+ 4D4D0000000000000000000000000000000000004D4D4D4D4D4D4D4D4D000000
+ 0000004D4D4D0000000000000000004D4D4D0000000000000000000000000000
+ 000000004D4D4D0000000000004D4D4D4D4D4D0000000000000000000000004D
+ 4D4D0000000000000000000000000000000000004D4D4D000000000000000000
+ 0000000000000000000000004D4D4D0000000000000000000000000000000000
+ 000000000000004D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D00000000
+ 0000000000000000FE3F0000FC3F0000FC3F0000FE7F0000FE3F0000FC3F0000
+ FC0F0000FC070000FE070000FFC30000FFC30000FFC30000F1830000F0030000
+ F0070000F80F0000
+ }
+ Visible = False
+ end
+ object busDaIcon: TImage
+ Left = 84
+ Height = 18
+ Top = 8
+ Width = 18
+ Picture.Data = {
+ 055449636F6E7E03000000000100010010100000010018006803000016000000
+ 2800000010000000200000000100180000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+ 0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000000000FF0000FF0000
+ FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000B70000FF00
+ 00FF0000BF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+ 0000FF0000FF0000FF0000B80000FF0000FF0000B80000FF0000FF0000FF0000
+ FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000B80000FF00
+ 00FF0000B80000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+ 0000FF0000FF0000FF0000B80000FF0000FF0000B80000FF0000FF0000FF0000
+ FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000B80000FF00
+ 00FF0000B80000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF
+ 0000FF0000FF0000FF0000BC0000FF0000FF0000BC0000FF0000FF4040788080
+ 388080384040780000FF4040788080388080384040780000FF40405480803880
+ 80384040540000FF0000FF808038FFFF00FFFF008080380000FF808038FFFF00
+ FFFF008080380000FF808038FFFF00FFFF008080380000FF0000FF808038FFFF
+ 00FFFF008080380000FF808038FFFF00FFFF008080380000FF808038FFFF00FF
+ FF008080380000FF0000FF808038FFFF00FFFF008080380000FF808038FFFF00
+ FFFF008080380000FF808038FFFF00FFFF008080380000FF0000FF808038FFFF
+ 00FFFF008080380000FF808038FFFF00FFFF008080380000FF808038FFFF00FF
+ FF008080380000FF0000FF4040788080388080384040780000FF404078808038
+ 8080384040780000FF4040788080388080384040780000FF0000FF0000FF0000
+ FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF0000FF00
+ 00FF0000FF0000FF93F9000011F1000000010000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000080010000
+ }
+ Visible = False
+ end
+ object normalIcon: TImage
+ Left = 112
+ Height = 18
+ Top = 8
+ Width = 18
+ Picture.Data = {
+ 055449636F6E7E03000000000100010010100000010018006803000016000000
+ 2800000010000000200000000100180000000000000000000000000000000000
+ 0000000000000000000000000000000000008000000000007800007800007800
+ 0078000078000078000000000080000000000000000000000000000000000000
+ 0000830500780000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00780000830500
+ 000000000000000000000000000000780000780000FFFF00FFFE00FFFF00FFFF
+ 00FFFF00FFFF00FFFE00FFFF0078000078000000000000000080000083050078
+ 0000FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00FFFF00
+ 780000830500800000000000780000FFFF00FFFF00780000780000FFFF00FFFF
+ 00FFFF00FFFF00780000780000FFFF00FFFF00780000000000780000FFFF00FF
+ FE00FFFF00780000780000FFFF00FFFF00FFFF00FFFF00780000780000FFFF00
+ FFFE00FFFF00780000780000FFFF00FFFF00FFFF00780000780000FFFF00FFFF
+ 00FFFF00FFFF00780000780000FFFF00FFFF00FFFF00780000780000FFFF00FF
+ FF00FFFF00780000780000780000780000780000780000780000780000FFFF00
+ FFFF00FFFF00780000780000FFFF00FFFF00FFFF007800007800007800007800
+ 00780000780000780000780000FFFF00FFFF00FFFF00780000780000FFFF00FF
+ FF00FFFF00780000780000FFFF00FFFF00FFFF00FFFF00780000780000FFFF00
+ FFFF00FFFF00780000780000FFFF00FFFE00FFFF00780000780000FFFF00FFFF
+ 00FFFF00FFFF00780000780000FFFF00FFFE00FFFF00780000000000780000FF
+ FF00FFFF00780000780000FFFF00FFFF00FFFF00FFFF00780000780000FFFF00
+ FFFF00780000000000800000830500780000FFFF00FFFF00FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF00FFFF00FFFF0078000083050080000000000000000078
+ 0000780000FFFF00FFFE00FFFF00FFFF00FFFF00FFFF00FFFE00FFFF00780000
+ 780000000000000000000000000000000000830500780000FFFF00FFFF00FFFF
+ 00FFFF00FFFF00FFFF0078000083050000000000000000000000000000000000
+ 0000800000000000780000780000780000780000780000780000000000800000
+ 0000000000000000F81F0000F00F0000E0070000C00300008001000000000000
+ 000000000000000000000000000000000000000080010000C0030000E0070000
+ F00F0000F81F0000
+ }
+ Visible = False
+ end
object TrayIcon1: TTrayIcon
OnDblClick = TrayIcon1DblClick
OnMouseDown = TrayIcon1MouseDown
left = 8
top = 8
end
- object LHTTPClientComponent1: TLHTTPClientComponent
- Tag = -1
- Host = 'fpl.jenah.de'
- OnDoneInput = LHTTPClientComponent1DoneInput
- OnInput = LHTTPClientComponent1Input
- Timeout = 0
- left = 120
- top = 8
- end
- object Starttimer: TTimer
- Tag = -3
- Interval = 50
- OnTimer = StarttimerTimer
- left = 48
- top = 8
- end
- object Timer1: TTimer
- Interval = 30000
- OnTimer = Timer1Timer
- left = 83
- top = 8
- end
end
diff --git a/unit1.pas b/unit1.pas
index 50e6baa..941fe5f 100644
--- a/unit1.pas
+++ b/unit1.pas
@@ -5,41 +5,33 @@ unit Unit1;
interface
uses
- Classes, SysUtils, FileUtil, lNetComponents, Forms, Controls, Graphics,
- Dialogs, ExtCtrls, StdCtrls, lhttp, filterunit, math;
+ Classes, SysUtils, FileUtil, Forms, Controls, Graphics,
+ Dialogs, ExtCtrls, StdCtrls, jenahunit;
type
{ TForm1 }
TForm1 = class(TForm)
- LHTTPClientComponent1: TLHTTPClientComponent;
+ unbekanntIcon: TImage;
+ busDaIcon: TImage;
+ normalIcon: TImage;
Memo1: TMemo;
- Starttimer: TTimer;
- Timer1: TTimer;
TrayIcon1: TTrayIcon;
+ procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormResize(Sender: TObject);
- procedure LHTTPClientComponent1DoneInput(ASocket: TLHTTPClientSocket);
- function LHTTPClientComponent1Input(ASocket: TLHTTPClientSocket;
- ABuffer: pchar; ASize: integer): integer;
- procedure StarttimerTimer(Sender: TObject);
- procedure Timer1Timer(Sender: TObject);
+ procedure FormShow(Sender: TObject);
procedure TrayIcon1DblClick(Sender: TObject);
procedure TrayIcon1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ private declarations }
- procedure parseOptionFile;
- procedure Station_waehlen;
- procedure Zeiten_holen;
+ procedure abfahrtenAnzeigen(sender: tObject);
public
{ public declarations }
- mastnr: array of longint;
- Stat,buff: string;
- Anzeige: array of tAbfahrt;
- Filter_s: array of tFilter;
+ jenahThread: tJenahThread;
lastButton: tMouseButton;
end;
@@ -52,27 +44,13 @@ implementation
{ TForm1 }
-procedure TForm1.Station_waehlen;
-begin
- LHTTPClientComponent1.URI:='http://fpl.jenah.de/bontip-ifgi/php/getStation.php?action=getMastNo&q='+stat+'&q2=';
- LHTTPClientComponent1.SendRequest;
-end;
-
-procedure TForm1.Zeiten_holen;
-begin
- LHTTPClientComponent1.Tag:=0;
- LHTTPClientComponent1.URI:='http://fpl.jenah.de/bontip-ifgi/php/proxy.php?vsz=120&azbid='+inttostr(mastnr[Starttimer.tag-1]);
- LHTTPClientComponent1.SendRequest;
-end;
-
procedure TForm1.TrayIcon1DblClick(Sender: TObject);
begin
case lastButton of
- mbLeft: begin
- if form1.visible then Form1.Hide
- else Form1.Show;
- end;
- mbRight: Application.Terminate;
+ mbLeft:
+ form1.visible:=not form1.visible;
+ mbRight:
+ form1.close;
end{of case};
end;
@@ -82,49 +60,27 @@ begin
lastButton:=Button;
end;
-procedure TForm1.parseOptionFile;
-var f: textfile;
- s: string;
+procedure TForm1.FormCreate(Sender: TObject);
begin
- assignfile(f,extractfilepath(application.exename)+'optionen.txt');
- reset(f);
- while not eof(f) do begin
- readln(f,s);
- if (length(s)=0) or (s[1]='#') then continue;
- if pos('haltestelle:',s)=1 then begin
- delete(s,1,length('haltestelle:'));
- stat:=s;
- continue;
- end;
- if pos('filter:',s)=1 then begin
- setlength(Filter_s,length(Filter_s)+1);
- Filter_s[length(Filter_s)-1]:=TFilter.create(f);
- continue;
- end;
- raise Exception.create('Verstehe '''+s+''' nicht!');
- end;
- closefile(f);
+ lastButton:=mbLeft;
+ trayIcon1.icon:=unbekanntIcon.picture.icon;
+ trayIcon1.show;
+ jenahThread:=tJenahThread.create;
+ jenahThread.abfahrtenAnzeigen:=@abfahrtenAnzeigen;
+ jenahThread.parseOptionFile(extractfilepath(application.exename)+'optionen.txt');
+ jenahThread.suspended:=false;
end;
-procedure TForm1.FormCreate(Sender: TObject);
+procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
- buff:='';
- setlength(Filter_s,0);
- setlength(mastnr,0);
- lastButton:=mbLeft;
- TrayIcon1.Icon.LoadFromFile(extractfilepath(application.exename)+'unbekannt.ico');
- TrayIcon1.Show;
- Application.ProcessMessages;
- parseOptionFile;
+ jenahThread.beenden:=true;
end;
procedure TForm1.FormDestroy(Sender: TObject);
-var i: longint;
begin
- for i:=0 to length(Filter_s)-1 do
- Filter_s[i].destroy;
- setlength(Filter_s,0);
- setlength(mastnr,0);
+ while not jenahThread.beendet do
+ sleep(10);
+ jenahThread.free;
end;
procedure TForm1.FormResize(Sender: TObject);
@@ -133,121 +89,31 @@ begin
memo1.height:=form1.clientheight-memo1.top;
end;
-procedure TForm1.LHTTPClientComponent1DoneInput(ASocket: TLHTTPClientSocket);
-var s,t,meth,zeit: string;
- i: integer;
-begin
- s:=buff;
- buff:='';
- meth:=extract('method',S);
- if meth = 'getMastNo' then
- begin
- setlength(Anzeige,0);
- s:=extract('result',s);
- setlength(mastnr,strtoint(extract('stopcount',s)));
- for i:=0 to length(mastnr)-1 do
- begin
- mastnr[i]:=strtoint(extract('stopno',extract('stop',s)));
- delete(s,1,pos('</stop>',s));
- end;
- Starttimer.Tag:=1;
- Starttimer.enabled:=true;
- exit;
- end;
- if meth='' then
- begin
- s:=extract('AZBNachricht',s);
- while pos('<AZBFahrplanlage',s)>0 do
- begin
- t:=extract('AZBFahrplanlage',s,zeit);
- delete(s,1,pos('</AZBFahrplanlage>',s)+length('</AZBFahrplanlage>')-1);
- setlength(Anzeige,length(Anzeige)+1);
- meth:=extract('AZBID',t);
- delete(meth,1,length(meth)-4);
- Anzeige[length(Anzeige)-1].HaltestellenId:=strtoint(meth);
- Anzeige[length(Anzeige)-1].Linie:=extract('LinienText',t);
- Anzeige[length(Anzeige)-1].Ziel:=extract('ZielHst',t);
- Anzeige[length(Anzeige)-1].Richtung:=extract('RichtungsText',t);
- Anzeige[length(Anzeige)-1].sAn:=extract_time(extract('AnkunftszeitAZBPlan',t));
- Anzeige[length(Anzeige)-1].iAn:=extract_time(extract('AnkunftszeitAZBPrognose',t));
- Anzeige[length(Anzeige)-1].sAb:=extract_time(extract('AbfahrtszeitAZBPlan',t));
- Anzeige[length(Anzeige)-1].iAb:=extract_time(extract('AbfahrtszeitAZBPrognose',t));
- end;
- Starttimer.Enabled:=true;
- exit;
- end;
- Memo1.lines.add(meth);
- Memo1.lines.add(S);
-end;
-
-function TForm1.LHTTPClientComponent1Input(ASocket: TLHTTPClientSocket;
- ABuffer: pchar; ASize: integer): integer;
-begin
- buff:=buff+copy(ABuffer,1,ASize);
- result:=ASize;
-end;
+const __erstesMal: boolean = true;
-procedure TForm1.StarttimerTimer(Sender: TObject);
-var I: Integer;
- Hinweis: string;
+procedure TForm1.FormShow(Sender: TObject);
begin
- Starttimer.enabled:=false;
- if Starttimer.tag = -3 then begin
- Form1.visible:=false;
- Starttimer.tag:=-1;
- parseOptionFile;
- end;
- if Starttimer.tag = -1 then begin
- Station_waehlen;
- exit
- end;
- if Starttimer.Tag = 0 then begin
- Starttimer.Tag := -1;
- Form1.Visible:=false;
- exit;
- end;
- if Starttimer.Tag >= 1 then begin
- Zeiten_holen;
- if Starttimer.Tag>=length(mastnr) then Starttimer.Tag := -2
- else Starttimer.Tag := Starttimer.Tag + 1;
- exit;
- end;
- if Starttimer.Tag = -2 then begin
- Memo1.lines.clear;
- Hinweis:='';
- for I:=0 to length(Anzeige)-1 do begin
- if (length(Filter_s)<=0) or
- (Filter_s[0].regel_erfuellt(Anzeige[I],2)) then
- Hinweis:=Hinweis+#$0D#$0A+Anzeige[I].Linie+'('+inttostr(Anzeige[I].HaltestellenID)+'): '+timetostr(Anzeige[I].iAb);
- if (length(Filter_s)<=0) or
- (Filter_s[min(1,length(Filter_s)-1)].regel_erfuellt(Anzeige[I],1)) then begin
- Memo1.lines.add(inttostr(Anzeige[I].HaltestellenId)+': <'+
- Anzeige[I].Linie+'> '''+
- Anzeige[I].Richtung+''' nach '''+
- Anzeige[I].Ziel+''': '+
- timetostr(Anzeige[I].iAn)+' ('+
- timetostr(Anzeige[I].sAn)+') -> '+
- timetostr(Anzeige[I].iAb)+' ('+
- timetostr(Anzeige[I].sAb)+')');
- end;
- end;
- if length(Hinweis)>0 then begin
- delete(Hinweis,1,2);
- TrayIcon1.Hint:=Hinweis;
- TrayIcon1.Icon.LoadFromFile(extractfilepath(application.exename)+'bus_da.ico');
- end
- else begin
- TrayIcon1.Hint:='Busauskunft - kein Bus in Sicht!'#0;
- TrayIcon1.Icon.LoadFromFile(extractfilepath(application.exename)+'normal.ico');
- end;
- exit;
- end;
+ if __erstesMal then begin
+ __erstesMal:=false;
+ form1.visible:=false;
+ end;
+ form1.left:=
+ screen.monitors[0].left + (screen.monitors[0].width -form1.width ) div 2;
+ form1.top:=
+ screen.monitors[0].top + (screen.monitors[0].height-form1.height) div 2;
end;
-procedure TForm1.Timer1Timer(Sender: TObject);
+procedure tForm1.abfahrtenAnzeigen(sender: tObject);
begin
- starttimer.Tag:=-1;
- starttimer.enabled:=true;
+ memo1.lines.text:=jenahThread.memoZeilen;
+ if jenahThread.bahnKommt then begin
+ trayIcon1.icon:=busDaIcon.picture.icon;
+ trayIcon1.hint:=jenahThread.hinweis;
+ end
+ else begin
+ trayIcon1.icon:=normalIcon.picture.icon;
+ trayIcon1.hint:='zur Zeit keine Abfahrt';
+ end;
end;
end.