/[projects]/dao/DelphiScanner/Main.pas
ViewVC logotype

Diff of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2660 by torben, Sun Aug 23 14:45:16 2015 UTC revision 2703 by torben, Fri Sep 4 09:36:19 2015 UTC
# Line 8  uses Line 8  uses
8    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
9    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
10    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,
11    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet,    Winspool, ShellApi, ClipBrd, Buttons, wininet,
12    UITypes    UITypes,
13      PakkeshopLabels,
14      StBarC,
15      Math, // DegToRad() bruges i PrintPakkeshopLabel
16      Utils
17    
18    ;    ;
19    
20  type  type
   TStrArray = array of string;  
21    TMainForm = class(TForm)    TMainForm = class(TForm)
22      StregkodeST: TStaticText;      StregkodeST: TStaticText;
23      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
# Line 49  type Line 52  type
52      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
53      ListBox1: TListBox;      ListBox1: TListBox;
54      Budlevering1: TMenuItem;      Budlevering1: TMenuItem;
55      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
56      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
57      Image1: TImage;      Image1: TImage;
58      ListBox2: TListBox;      ListBox2: TListBox;
59      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
60      UploadButton01: TButton;      BtnUploadLogfil: TButton;
61      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
62      Pakkeshoplevering1: TMenuItem;      Pakkeshoplevering1: TMenuItem;
63      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
64      PakkeshopNulstil: TButton;      btnNulstil: TButton;
65      Returpakkerfrapakkeshop1: TMenuItem;      Returpakkerfrapakkeshop1: TMenuItem;
66      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
67      chkAltidPrintLabel: TCheckBox;      chkAltidPrintLabel: TCheckBox;
68      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
69      N5: TMenuItem;      N5: TMenuItem;
70      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
71      Manual1: TMenuItem;      Manual1: TMenuItem;
# Line 88  type Line 91  type
91      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
92      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
93      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
94        menuIndlevering: TMenuItem;
95    
   
   function Explode(var a: TStrArray; Border, S: string): Integer;  
   function BarCodeValid (ACode: string): boolean;  
   function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String;  
   function TColorToHex(Color : TColor) : string;  
   function HexToTColor(sColor : string) : TColor;  
96    function getProddato() : TDate;    function getProddato() : TDate;
97    function getProddag() : String;    function getProddag() : String;
98    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
99    function GetCurrentPrinterHandle() : THandle;    function GetCurrentPrinterHandle() : THandle;
100    function SavePChar(p: PChar): PChar;    function SavePChar(p: PChar): PChar;
   function AdobeReaderExists(): Boolean;  
   function FileTime2DateTime(FileTime: TFileTime): TDateTime;  
   function split(input: string; schar: Char; s: Integer): string;  
   function CheckUrl(url:string):boolean;  
101    
102    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
103    procedure StartScreen();    procedure StartScreen();
# Line 134  type Line 128  type
128    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
129    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
130    procedure Budlevering1Click(Sender: TObject);    procedure Budlevering1Click(Sender: TObject);
131    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
132    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
133    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
134    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
135    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 143  type Line 137  type
137    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
138    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
139    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
140    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
141    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
142    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
143    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
144    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
145    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
146    procedure InitReturFraDao();    procedure InitReturFraDao();
# Line 158  type Line 152  type
152    
153    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
154    procedure chkAltidPrintLabelClick(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
155    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
156    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
157    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
158    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
159    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
160    procedure chkScanTjekkodeClick(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
# Line 181  type Line 174  type
174    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
175    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
176    procedure TjekkerUrls();    procedure TjekkerUrls();
177  // 20150310: start    procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
   procedure RoundCornerOf(Control: TWinControl);  
178    
179      procedure menuIndleveringClick(Sender: TObject);
180    
181      procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
182      procedure CheckPrintQue(tjektype : string);
183    
 // 20150310: slut  
184    
185    private    private
186      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder
# Line 193  type Line 188  type
188      SkrivLog : String;      SkrivLog : String;
189      Sted : String;      Sted : String;
190      StedNavn : String;      StedNavn : String;
191      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;
192  // 29150330: start  // 29150330: start
193      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
194  // 20150330: slut  // 20150330: slut
# Line 207  type Line 202  type
202      AlarmLyd : String;      AlarmLyd : String;
203      ScannetOkLyd : String;      ScannetOkLyd : String;
204      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
205  // 20150317: start  
206      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
207  // 20150317: slut  
208      PrinterNavn : String;      PrinterNavn : String;
209      TjekPrinter : String;      TjekPrinter : String;
210      XPosRute : integer;      XPosRute : integer;
# Line 248  type Line 243  type
243      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
244      TjekUrls : String;      TjekUrls : String;
245    
246            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      Barcode : TStBarcode;
247    
248    
249      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
250      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
# Line 266  type Line 262  type
262      { Public declarations }      { Public declarations }
263    end;    end;
264    
265          function GetPixelsPerInchX(): Integer;
266        function GetPixelsPerInchY(): Integer;
267    
268  var  var
269    MainForm: TMainForm;    MainForm: TMainForm;
270    
# Line 279  var Line 278  var
278  implementation  implementation
279  {$R *.dfm}  {$R *.dfm}
280    
 function TMainForm.TColorToHex(Color : TColor) : string;  
 begin  
    Result :=  
      IntToHex(GetRValue(Color), 2) +  
      IntToHex(GetGValue(Color), 2) +  
      IntToHex(GetBValue(Color), 2) ;  
 end;  
   
 function TMainForm.HexToTColor(sColor : string) : TColor;  
 begin  
    Result :=  
      RGB(  
        StrToInt('$'+Copy(sColor, 1, 2)),  
        StrToInt('$'+Copy(sColor, 3, 2)),  
        StrToInt('$'+Copy(sColor, 5, 2))  
      ) ;  
 end;  
281    
282  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
283  begin  begin
# Line 304  begin Line 286  begin
286      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
287  // 20150309: slut  // 20150309: slut
288    
289        Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
290    
291      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
292      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
293      begin      begin
# Line 346  begin Line 330  begin
330        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
331      end;      end;
332    
333      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
334    
335      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
336      begin      begin
# Line 400  begin Line 384  begin
384    
385      StartScreen();      StartScreen();
386      MainForm.Caption := Titel;      MainForm.Caption := Titel;
387      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
388      MainForm.Farve := Farve;      MainForm.Farve := Farve;
389      MainForm.Titel := Titel;      MainForm.Titel := Titel;
390      MainForm.Url := Url;      MainForm.Url := Url;
# Line 460  begin Line 444  begin
444          end          end
445          else          else
446          begin          begin
447            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
448          end;          end;
449          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
450        end        end
451        else        else
452        begin        begin
453          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
454          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
455        end;        end;
456      end;      end;
# Line 509  end; Line 493  end;
493    
494  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
495  begin  begin
 // 20150317: start  
 (*  
   if Automatiskvalg1.Checked then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
496  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
497  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
498       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
499       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
500       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
501  end;  end;
502    
503  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
# Line 546  begin Line 514  begin
514    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
515    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
516    
517    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
518    
519    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker1);
520    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker2);
521    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker3);
522    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker4);
523    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker5);
524    RoundCornerOf(PanelManglendePakker6);    TUtils.RoundCornerOf(PanelManglendePakker6);
525    
526    
527    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp
# Line 588  begin Line 556  begin
556      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');
557      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');
558      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
559    
560    
561        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
562        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
563    
564    
565    
566      LabelType := ReadInteger('Settings','LabelType',1);      LabelType := ReadInteger('Settings','LabelType',1);
567      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
568      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
# Line 625  begin Line 600  begin
600    
601      if (SkrivLog = '1') then      if (SkrivLog = '1') then
602      begin      begin
603        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);        logTekst := 'Program start (Version: ' + TUtils.Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
604        try        try
605          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
606          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
607          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
608          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
609          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
610          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 768  begin Line 743  begin
743      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
744      // *************************** //      // *************************** //
745    
746    {$IfDef STED_BK}
747        SpecialVersionSted := 'BK';
748    {$EndIf}
749    {$IfDef STED_DBK}
750        SpecialVersionSted := 'DBK';
751    {$EndIf}
752    {$IfDef STED_FD}
753        SpecialVersionSted := 'FD';
754    {$EndIf}
755    {$IfDef STED_NS}
756        SpecialVersionSted := 'NS';
757    {$EndIf}
758    
759    
760      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
761      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
762      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 783  begin Line 772  begin
772      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
773      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
774    
 // 20150313: start  
775      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
776      begin      begin
777         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 794  begin Line 782  begin
782         SpecialVersionSted := '03';         SpecialVersionSted := '03';
783         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
784      end;      end;
 // 20150313: slut  
785    
786      if SpecialVersionSted = 'BK' then      if SpecialVersionSted = 'BK' then
787      begin      begin
# Line 834  begin Line 821  begin
821        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
822        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
823        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
824          PanelValg7.Enabled := false;
825          PanelValg7.Font.Color := clInactiveCaption;
826    
827       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
828        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
829        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 870  begin Line 860  begin
860        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
861        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
862        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
863          PanelValg7.Enabled := false;
864          PanelValg7.Font.Color := clInactiveCaption;
865       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge
866    
867        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
# Line 965  begin Line 957  begin
957             RutenummerST.Caption := '';             RutenummerST.Caption := '';
958             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
959             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
960             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
961             exit;             exit;
962          end;          end;
963      end      end
# Line 1134  begin Line 1126  begin
1126      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
1127    
1128      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1129      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1130    
1131  end;  end;
1132    
# Line 1214  begin Line 1206  begin
1206    
1207      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1208      begin      begin
1209         PakkeshopNulstil.Click();         btnNulstil.Click();
1210         exit;         exit;
1211      end;      end;
1212    
1213      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1214      begin      begin
1215        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1216    
# Line 1543  begin Line 1535  begin
1535             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1536             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1537             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1538             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1539             Stregkode := '';             Stregkode := '';
1540             InitScreen();             InitScreen();
1541        end        end
# Line 1555  begin Line 1547  begin
1547             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1548             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1549             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1550             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1551             Stregkode := '';             Stregkode := '';
1552             InitScreen();             InitScreen();
1553        end        end
# Line 1586  begin Line 1578  begin
1578             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1579             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1580             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1581                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1582             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1583                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1584             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1585           end           end
1586          else          else
1587           begin           begin
# Line 1609  begin Line 1601  begin
1601    
1602      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then
1603      begin      begin
1604    
1605         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1606            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1607         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
# Line 1621  begin Line 1614  begin
1614            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1615            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1616            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1617               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1618               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1619              exit;              exit;
1620            end;            end;
1621            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1646  begin Line 1635  begin
1635              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1636              begin              begin
1637                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1638                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1639                MainForm.Color := clRed;                MainForm.Color := clRed;
1640              end;              end;
1641           end;           end;
1642            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then
1643            begin            begin
1644              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1645              if Storepakker1.Checked then              if Storepakker1.Checked then
1646              begin              begin
1647                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1661  begin Line 1650  begin
1650              begin              begin
1651                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1652              end;              end;
1653              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1654            end            end
1655            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1656            begin            begin
1657              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1658              if Storepakker1.Checked then              if Storepakker1.Checked then
1659              begin              begin
1660                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1674  begin Line 1663  begin
1663              begin              begin
1664                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1665              end;              end;
1666              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1667            end            end
1668            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1669            begin            begin
# Line 1685  begin Line 1674  begin
1674            end            end
1675            else            else
1676            begin            begin
1677              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1678            end;            end;
1679           if not PakkeshopNulstil.Visible then  
1680             if not btnNulstil.Visible then
1681            begin            begin
1682    
1683              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
# Line 1781  var Line 1769  var
1769    
1770    
1771  begin  begin
1772      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked or menuIndlevering.Checked then
1773      begin      begin
1774        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1775          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
# Line 1792  begin Line 1780  begin
1780            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1781            begin            begin
1782              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1783              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1784  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1785  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1786  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1787              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1788            end            end
1789            else     // kun idag            else     // kun idag
1790            begin            begin
# Line 1989  begin Line 1977  begin
1977      01 :      01 :
1978            begin;      // NS            begin;      // NS
1979              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1980              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1981              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1982              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1983              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1984              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2005  begin Line 1993  begin
1993              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1994              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
1995              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
1996              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1997              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1998              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1999              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2000              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2016  begin Line 2004  begin
2004              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2005             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
2006              begin              begin
2007                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2008              end              end
2009              else              else
2010              begin              begin
2011                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2012              end;              end;
2013              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2014              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2015              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2016              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2017              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2043  begin Line 2031  begin
2031              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2032              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
2033              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
2034              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
2035              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2036              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2037              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2038            end;            end;
# Line 2060  var Line 2048  var
2048    URLStr : String;    URLStr : String;
2049    pakkestorrelse : String;    pakkestorrelse : String;
2050    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2051    
2052      PakkeshopLabel: TPakkeshopLabel;
2053  begin  begin
2054    if radioStorPakke.Checked then    if radioStorPakke.Checked then
2055    begin    begin
# Line 2069  begin Line 2059  begin
2059    begin    begin
2060      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2061    end;    end;
2062    
2063    
2064    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
2065    begin    begin
2066       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2097  begin Line 2089  begin
2089    begin    begin
2090       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2091    end    end
2092      else if menuIndlevering.Checked then
2093      begin
2094        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2095      end
2096    else    else
2097    begin    begin
2098      exit;      exit;
# Line 2143  begin Line 2139  begin
2139          begin          begin
2140            PrintNyLabel := True;            PrintNyLabel := True;
2141          end;          end;
 // 20150310: start  
2142        end;        end;
 // 20150310: slut  
2143       end       end
2144        else if menuIndlevering.Checked then
2145        begin
2146    
2147    
2148    
2149    
2150         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2151         if (Kommentar = 'Ok') then
2152         begin
2153           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2154           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2155           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2156           Stregkode := PakkeshopLabel.Stregkode;
2157    
2158           PrintPakkeshopLabel( PakkeshopLabel );
2159    
2160         end;
2161    
2162    
2163        end
2164      else      else
2165       begin       begin
2166        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2179  begin Line 2193  begin
2193          PrintNyLabel := True;          PrintNyLabel := True;
2194        end;        end;
2195      end;      end;
2196    
2197    
2198      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2199      begin      begin
2200        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2271  begin Line 2287  begin
2287        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2288      end;      end;
2289    end;    end;
2290      if menuIndlevering.Checked then
2291      begin
2292        List1Msg := Stregkode;
2293      end;
2294    
2295    
2296    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2297    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2298    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2299  end;  end;
2300    
2301  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2302  begin  begin
2303    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2304    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2293  pakkeForkertSted : Integer; Line 2315  pakkeForkertSted : Integer;
2315    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2316  begin  begin
2317    if Budlevering1.Checked then    if Budlevering1.Checked then
2318       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2319    
2320    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2321    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2338  begin Line 2360  begin
2360    
2361          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2362          MainForm.Color := clRed;          MainForm.Color := clRed;
2363          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2364    
2365       end       end
2366       else       else
# Line 2349  begin Line 2371  begin
2371            PrintNyLabel := true;            PrintNyLabel := true;
2372            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2373            nyFarve := Farve;            nyFarve := Farve;
2374            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2375            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2376            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2377            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
# Line 2365  begin Line 2387  begin
2387            begin            begin
2388              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2389              MainForm.Color := clRed;              MainForm.Color := clRed;
2390              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2391            end;            end;
2392    
2393         end;         end;
# Line 2391  begin Line 2413  begin
2413            begin            begin
2414              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2415              MainForm.Color := clRed;              MainForm.Color := clRed;
2416              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2417            end;            end;
2418    
2419         end;         end;
# Line 2415  begin Line 2437  begin
2437                end;                end;
2438              end;              end;
2439        01 :  begin;        01 :  begin;
2440               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2441                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2442                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2443                begin                begin
# Line 2429  begin Line 2451  begin
2451                end;                end;
2452              end;              end;
2453        03 :  begin;        03 :  begin;
2454               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2455                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste                    // Ovenstående test er lidt speciel fordi der i programmet nogle steder er byttet rundt på rute og køreliste
2456                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')                    // Meningen er at der kun skal printes hvis der er forskel i kørelisterne eller ruterne - eller vi kommer fra test funktionen (Rutenr = 'Rutenr')
2457               begin               begin
# Line 2632  begin Line 2654  begin
2654    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2655    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2656    
2657          // Tjekker urls    try
2658          logTekst := 'Tjekker urls.';      // Tjekker urls
2659          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2660          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2661        SkrivScanningLogFil(logTekst);
2662    
         // Tjekker UrlNormal  
         if PanelValg1.Enabled = true then  
         begin  
           if CheckUrl(UrlNormal) then  
           begin  
             logTekst := 'UrlNormal accepteret: ' + UrlNormal;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlNormal svarer ikke: ' + UrlNormal;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               TjekUrls := '-';   // markerer at der var fejl  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2663    
         // Tjekker UrlReturDAO  
         if PanelValg2.Enabled = true then  
         begin  
           if CheckUrl(UrlReturDAO) then  
           begin  
             logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2664    
2665          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2666          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2667          begin      begin
2668            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2669            begin      end;
             logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2670    
2671          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2672          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2673          begin      begin
2674            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2675            begin      end;
             logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlBudlevering svarer ikke: ' + UrlBudlevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2676    
2677          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2678          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2679          begin      begin
2680            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2681            begin      end;
             logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshoplevering svarer ikke: ' + UrlPakkeshoplevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2682    
2683          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2684          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2685          begin      begin
2686            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2687            begin      end;
             logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturPakkeshop svarer ikke: ' + UrlReturPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2688    
2689          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2690          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2691          or (PanelValg4.Enabled = true) then      begin
2692          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2693            if CheckUrl(UrlManglendeScanninger) then      end;
           begin  
             logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlManglendeScanninger svarer ikke: ' + UrlManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2694    
2695          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2696          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2697          begin      begin
2698            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2699            begin      end;
             logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeScanninger svarer ikke: ' + UrlPakkeshopManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2700    
2701          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2702          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2703          begin      begin
2704            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2705            begin      end;
             logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeReturScanninger svarer ikke: ' + UrlPakkeshopManglendeReturScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2706    
2707          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2708          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2709          begin      begin
2710            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2711            begin      end;
             logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforsel svarer ikke: ' + UrlEKLoverforsel;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2712    
2713        // Tjekker UrlPakkeshopManglendeReturScanninger
2714        if PanelValg6.Enabled = true then
2715        begin
2716          TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2717        end;
2718    
2719          // Tjekker UrlEKLoverforselPakkeshop     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2720          if PanelValg5.Enabled = true then      if PanelValg7.Enabled = true then
2721          begin      begin
2722            if CheckUrl(UrlEKLoverforselPakkeshop) then        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2723            begin        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2724              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;      end;
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforselPakkeshop svarer ikke: ' + UrlEKLoverforselPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2725    
2726        // Tjekker UrlEKLoverforsel
2727        if PanelValg1.Enabled = true then
2728        begin
2729          TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2730        end;
2731    
         // Tjekker UrlFindPakketype  
         if CheckUrl(UrlFindPakketype) then  
         begin  
           logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;  
           SkrivScanningLogFil(logTekst);  
         end  
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlFindPakketype svarer ikke: ' + UrlFindPakketype;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2732    
2733          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforselPakkeshop
2734          if CheckUrl(UrlSendPrograminfo) then      if PanelValg5.Enabled = true then
2735          begin      begin
2736            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2737            SkrivScanningLogFil(logTekst);      end;
         end  
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2738    
         if urlFejl > 0 then  
         begin  
           TjekUrls := '-';   // markerer at der var fejl  
         end  
         else  
         begin  
           logTekst := 'urls er ok';  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
2739    
2740        // Tjekker UrlFindPakketype
2741        TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2742    
2743        // Tjekker UrlSendPrograminfo
2744        TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2745    
2746    
2747    
2748        logTekst := 'urls er ok';
2749        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2750        SkrivScanningLogFil(logTekst);
2751    
2752      Except
2753        TjekUrls := '-';   // markerer at der var fejl
2754    
2755      end;
2756  end;  end;
2757    
2758  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2759  var  const
2760     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2761  begin  begin
2762     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2763     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2764     Result := SystemTimeToDateTime(SystemTime) ;    begin
2765        logTekst := UrlNavn + ' accepteret: ' + Url;
2766        SkrivScanningLogFil(logTekst);
2767      end
2768      else
2769      begin
2770        inc(urlFejl);   // Optæller antal fejl
2771        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2772        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2773        if TjekUrls = '1' then
2774        begin
2775          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2776        end;
2777    
2778        SkrivScanningLogFil(logTekst);
2779    
2780        if TjekUrls = '1' then
2781        begin
2782          ShowMessage(logTekst);
2783          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2784          Application.Terminate;
2785    
2786          raise Exception.Create('UrlFejl');
2787    
2788        end;
2789      end;
2790    
2791  end;  end;
2792    
2793    
2794    
2795  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2796  var  var
2797    SR: TSearchRec;    SR: TSearchRec;
# Line 3038  begin Line 2808  begin
2808      repeat      repeat
2809        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2810        begin        begin
2811    
2812          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2813          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2814          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2815          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2816          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2817          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
# Line 3077  begin Line 2848  begin
2848    end;    end;
2849  end;  end;
2850    
2851  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2852  begin  begin
2853    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2854    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2855    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2856    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2857    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2858    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3099  begin Line 2870  begin
2870  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2871    if Farve <> '' then    if Farve <> '' then
2872    begin    begin
2873       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
2874  // 20150312: start  // 20150312: start
2875  (*  (*
2876    end    end
# Line 3173  end; Line 2944  end;
2944    
2945  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2946  begin  begin
 // 20150311: start  
 (*  
   if PanelValgA.Color = clBtnFace then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
2947  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2948  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2949       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
2950       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2951       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2952  // 20150311: slut  
2953    
2954    
2955  end;  end;
2956    
2957  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3231  begin Line 2989  begin
2989      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2990      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2991      MainForm.Color := clRed;      MainForm.Color := clRed;
2992      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2993    end    end
2994    else    else
2995    begin    begin
# Line 3299  begin Line 3057  begin
3057    end;    end;
3058  end;  end;
3059    
3060  {  
  VERY fast split function  
  this function returns part of a string based on  
  constant defineable delimiters, such as ";". So  
  SPLIT('this is a test ',' ',3) = 'is' or  
  SPLIT('data;another;yet;again;more;',';',4) = 'yet'  
   
  Split function shifts index integer by two to  
  be compatible with commonly used PD split function  
  gpl 2004 / Juhani Suhonen  
 }  
 function TMainForm.split(input: string; schar: Char; s: Integer): string;  
 var  
   c: array of Integer;  
   b, t: Integer;  
 begin  
   Dec(s, 2);  // for compatibility with very old & slow split function  
   t := 0;     // variable T needs to be initialized...  
   setlength(c, Length(input));  
   for b := 0 to pred(High(c)) do  
   begin  
     c[b + 1] := posex(schar, input, succ(c[b]));  
     // BREAK LOOP if posex looped (position before previous)  
     // or wanted position reached..  
     if (c[b + 1] < c[b]) or (s < t) then break  
     else  
       Inc(t);  
   end;  
   Result := Copy(input, succ(c[s]), pred(c[s + 1] - c[s]));  
 end;  
3061    
3062  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3063  const  const
# Line 3337  var Line 3066  var
3066   tekst, filversion : String;   tekst, filversion : String;
3067  begin  begin
3068    
3069    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
3070    tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';    tekst := 'Program til indscanning af pakker'+crlf+'Version '+filversion+crlf+crlf+'Udviklet af it afdelingen, DAO';
3071    
3072    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3359  begin Line 3088  begin
3088          end          end
3089          else          else
3090          begin          begin
3091            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3092          end;          end;
3093      end      end
3094      else      else
3095      begin      begin
3096        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3097      end;      end;
3098    end;    end;
3099    
# Line 3432  begin Line 3161  begin
3161    
3162    if FileExists(fileName) then    if FileExists(fileName) then
3163    begin    begin
3164      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3165      begin      begin
3166        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3167        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3456  begin Line 3185  begin
3185    
3186    if FileExists(fileName) then    if FileExists(fileName) then
3187    begin    begin
3188      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3189      begin      begin
3190        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3191        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3192      end      end
3193      else      else
3194      begin      begin
3195        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3196      end;      end;
3197    end    end
3198    else    else
# Line 3472  begin Line 3201  begin
3201    end;    end;
3202  end;  end;
3203    
3204    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3205    begin
3206      Scanningtype := '7';
3207      NulstilAutomatiskValg();
3208      InitIndleveringskode();
3209    end;
3210    
3211  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3212  begin  begin
3213    
# Line 3504  end; Line 3240  end;
3240  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3241  begin  begin
3242        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3243        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3244        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3245        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3246        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
# Line 3522  begin Line 3258  begin
3258        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3259        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3260        ListBox1.Visible := true;        ListBox1.Visible := true;
3261        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3262        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3263        InitLillePakke();        InitLillePakke();
3264        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3265        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3537  procedure TMainForm.InitReturFraDao(); Line 3273  procedure TMainForm.InitReturFraDao();
3273  begin  begin
3274        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3275        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3276        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3277        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3278        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3279        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
# Line 3556  begin Line 3292  begin
3292        ListBox1.Visible := true;        ListBox1.Visible := true;
3293        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3294        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3295        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3296        InitLillePakke();        InitLillePakke();
3297  end;  end;
3298    
# Line 3564  procedure TMainForm.InitReturFraKunde(); Line 3300  procedure TMainForm.InitReturFraKunde();
3300  begin  begin
3301        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3302        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3303        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3304        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3305        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3306        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
# Line 3582  begin Line 3318  begin
3318        ListBox1.Visible := true;        ListBox1.Visible := true;
3319        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3320        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3321        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3322        InitLillePakke();        InitLillePakke();
3323  end;  end;
3324    
# Line 3590  procedure TMainForm.InitDirektelevering( Line 3326  procedure TMainForm.InitDirektelevering(
3326  begin  begin
3327        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3328        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3329        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3330        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3331        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3332        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
# Line 3608  begin Line 3344  begin
3344        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3345        ListBox1.Visible := true;        ListBox1.Visible := true;
3346        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3347        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3348        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3349        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3350        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3351        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3352        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3353        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
# Line 3626  procedure TMainForm.InitPakkeshopleverin Line 3362  procedure TMainForm.InitPakkeshopleverin
3362  begin  begin
3363        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3364        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3365        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3366        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3367        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3368        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
# Line 3644  begin Line 3380  begin
3380        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3381        ListBox1.Visible := true;        ListBox1.Visible := true;
3382        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3383        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3384        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3385    
3386        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3387    
3388        InitLillePakke();        InitLillePakke();
3389        IndlesScanningLogFil();        IndlesScanningLogFil();
# Line 3663  procedure TMainForm.InitReturFraPakkesho Line 3399  procedure TMainForm.InitReturFraPakkesho
3399  begin  begin
3400        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3401        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3402        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3403        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3404        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3405        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
# Line 3681  begin Line 3417  begin
3417        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3418        ListBox1.Visible := true;        ListBox1.Visible := true;
3419        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3420        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3421        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3422        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3423        InitLillePakke();        InitLillePakke();
3424        IndlesScanningLogFil();        IndlesScanningLogFil();
3425        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3703  end; Line 3439  end;
3439    
3440  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3441  begin  begin
3442          menuIndlevering.Checked := true;
3443        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3444        Returpakkerfrapakkeshop1.Checked := true;  
3445        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3446        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3447        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3448        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
# Line 3727  begin Line 3464  begin
3464        ListBox1.Visible := true;        ListBox1.Visible := true;
3465        ListBox1.Items.Clear();        ListBox1.Items.Clear();
3466    
3467        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3468        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3469        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3470        InitLillePakke();        InitLillePakke();
3471        IndlesScanningLogFil();        IndlesScanningLogFil();
3472        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3767  begin Line 3504  begin
3504  // 20150310: slut  // 20150310: slut
3505  end;  end;
3506    
 /// <summary>  
 ///   This function reads the file resource of "FileName" and returns  
 ///   the version number as formatted text.</summary>  
 /// <example>  
 ///   Sto_GetFmtFileVersion() = '4.13.128.0'  
 ///   Sto_GetFmtFileVersion('', '%.2d-%.2d-%.2d') = '04-13-128'  
 /// </example>  
 /// <remarks>If "Fmt" is invalid, the function may raise an  
 ///   EConvertError exception.</remarks>  
 /// <param name="FileName">Full path to exe or dll. If an empty  
 ///   string is passed, the function uses the filename of the  
 ///   running exe or dll.</param>  
 /// <param name="Fmt">Format string, you can use at most four integer  
 ///   values.</param>  
 /// <returns>Formatted version number of file, '' if no version  
 ///   resource found.</returns>  
 function TMainForm.Sto_GetFmtFileVersion(const FileName: String = '';  
   const Fmt: String = '%d.%d.%d.%d'): String;  
 var  
   sFileName: String;  
   iBufferSize: DWORD;  
   iDummy: DWORD;  
   pBuffer: Pointer;  
   pFileInfo: Pointer;  
   iVer: array[1..4] of Word;  
   S : String;  
 begin  
   // set default value  
   Result := '';  
   // get filename of exe/dll if no filename is specified  
   sFileName := Trim(FileName);  
   if (sFileName = '') then  
     sFileName := GetModuleName(HInstance);  
   // get size of version info (0 if no version info exists)  
   iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy);  
   if (iBufferSize > 0) then  
   begin  
     GetMem(pBuffer, iBufferSize);  
     try  
     // get fixed file info (language independent)  
     GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer);  
     VerQueryValue(pBuffer, '\', pFileInfo, iDummy);  
     // read version blocks  
     iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     finally  
       FreeMem(pBuffer);  
     end;  
     // format result string  
     Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]);  
3507    
     // Hvorfor virker ovenstående ikke ???  
     S := '';  
     Str(iVer[1], Result);  
     S := S+Result+'.';  
     Str(iVer[2], Result);  
     S := S+Result+'.';  
     Str(iVer[3], Result);  
     S := S+Result+'.';  
     Str(iVer[4], Result);  
     S := S+Result+'';  
     Result := S;  
   end;  
 end;  
3508    
3509  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3510  begin  begin
# Line 3903  begin; Line 3575  begin;
3575    CheckCode();    CheckCode();
3576  end;  end;
3577    
3578  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3579  var  var
3580    WebSvar : String;    WebSvar : String;
3581    URLStr : String;    URLStr : String;
# Line 3913  var Line 3585  var
3585    status, kommentar : String;    status, kommentar : String;
3586    
3587  begin  begin
3588      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3589    
3590      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');
3591      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
# Line 3976  begin Line 3648  begin
3648        end;        end;
3649      end;      end;
3650    
3651      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3652    
3653      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
3654    
# Line 3993  begin Line 3665  begin
3665           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3666         end;         end;
3667         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3668         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3669      end;      end;
3670    
3671  end;  end;
# Line 4017  begin Line 3689  begin
3689    else    else
3690      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3691  }  }
3692    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3693    
3694    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3695    CheckCode();    CheckCode();
# Line 4025  end; Line 3697  end;
3697    
3698  end;  end;
3699    
 function TMainForm.BarCodeValid (ACode: string): boolean;  
 var  
    I: integer;  
    SumOdd, SumEven: integer;  
    ADigit, AChecksumDigit: integer;  
 begin  
    SumOdd := 0;  
    SumEven := 0;  
    for I := 1 to (Length (ACode) - 1) do begin  
       ADigit := StrToIntDef (ACode [I], 0);  
       if (I MOD 2 = 0) then begin  
          SumEven := SumEven + ADigit;  
       end else begin  
          SumOdd := SumOdd + ADigit;  
       end; {if}  
    end; {for}  
    AChecksumDigit := StrToIntDef (ACode [Length (ACode)], 0);  
    Result := ((SumOdd*3 + SumEven + AChecksumDigit) MOD 10 = 0);  
 end; {--BarCodeValid--}  
   
 { used for EAN 8/13 }  
 function TMainForm.CheckSumModulo10(const data:string):string;  
         var i,fak,sum : Integer;  
 begin  
         sum := 0;  
         fak := Length(data);  
         for i:=1 to Length(data) do  
         begin  
                 if (fak mod 2) = 0 then  
                         sum := sum + (StrToInt(data[i])*1)  
                 else  
                         sum := sum + (StrToInt(data[i])*3);  
                 dec(fak);  
         end;  
         if (sum mod 10) = 0 then  
                 result := data+'0'  
         else  
                 result := data+IntToStr(10-(sum mod 10));  
 end;  
3700    
3701  //  //
3702  // Bladhus ***  // Bladhus ***
# Line 4541  begin Line 4174  begin
4174    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4175  end;  end;
4176    
4177  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4178  begin  begin
4179      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4180      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4181  end;  end;
4182    
4183  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4184  const  const
4185    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4186    
# Line 4556  begin Line 4189  begin
4189      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4190  end;  end;
4191    
4192  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4193  begin  begin
4194      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4195      begin      begin
# Line 4565  begin Line 4198  begin
4198      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra download knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4199  end;  end;
4200    
4201  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
4202    // ToDo: PrintPakkeshopLabel()
4203    procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4204  var  var
4205    S2: string;    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4206      Angle: integer;
4207      gMode: integer;
4208      Dirigering: string;
4209    
4210    begin
4211        with Printer do
4212        begin
4213          BeginDoc();
4214    
4215    
4216          Canvas.Font.Size := 16;
4217          Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4218    
4219    
4220    
4221          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4222          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4223          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4224    
4225    
4226          Canvas.Font.Size := 9;
4227          Canvas.TextOut(110, 240, 'Pakkeshop:');
4228          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4229          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4230          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4231    
4232          Canvas.TextOut(350, 240, 'Afsender:');
4233          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4234          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4235          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4236    
4237          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4238          if ( PakkeshopLabel.Koreliste <> '') then
4239          begin
4240            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4241          end;
4242    
4243    
4244          Canvas.Font.Size := 12;
4245          Canvas.TextOut(15, 370, Dirigering);
4246    
4247    
4248    
4249    
4250    
4251          //Tegn adskillelses linier
4252          Canvas.Pen.Width := 2;
4253          //Øverste linie
4254          Canvas.MoveTo(20,80);
4255          Canvas.LineTo(600,80);
4256    
4257          // Midterste linie
4258          Canvas.MoveTo( 20, 240);
4259          Canvas.LineTo(600, 240);
4260    
4261          //Nederste linie
4262          Canvas.MoveTo( 20, 370);
4263          Canvas.LineTo(600, 370);
4264    
4265    
4266          //Tegn skrå streger over afsender
4267          Canvas.Pen.Width := 1;
4268          Canvas.MoveTo(600, 250);
4269          Canvas.LineTo(350, 360);
4270          Canvas.MoveTo(600, 360);
4271          Canvas.LineTo(350, 250);
4272    
4273    
4274    
4275    
4276          // Resten af rutinen vedr genering og placering af Barcode
4277    
4278          BarCode.BarCodeType := bcCode128;
4279          BarCode.Code128Subset := csCodeC;
4280          BarCode.Code := PakkeshopLabel.Stregkode;
4281          BarCode.Validate(True);
4282    
4283          //Start X-formation
4284          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4285          GetWorldTransform(Canvas.Handle, XFormOld);
4286    
4287          Angle := 270;
4288          XForm.eM11 := Cos(DegToRad(Angle));
4289          XForm.eM12 := Sin(DegToRad(Angle));
4290          XForm.eM21 := -Sin(DegToRad(Angle));
4291          XForm.eM22 := Cos(DegToRad(Angle));
4292          XForm.eDx := 0;
4293          XForm.eDy := 0;
4294    
4295          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4296          SetWorldTransform(Canvas.Handle, XForm);
4297    
4298          // PaintToCanvasSize arbejder i Inches
4299          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4300          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4301    
4302          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4303    
4304    
4305          SetWorldTransform(Canvas.Handle, XFormOld);
4306          SetGraphicsMode(Canvas.Handle, gMode);
4307    
4308          EndDoc();
4309        end;
4310    
4311    
4312    end;
4313    
4314    function GetPixelsPerInchX(): Integer;
4315  begin  begin
4316    Result  := 0;    Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
   S2 := S + Border;  
   repeat  
     SetLength(A, Length(A) + 1);  
     a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);  
     Delete(S2, 1,Length(a[Result] + Border));  
     Inc(Result);  
   until S2 = '';  
4317  end;  end;
4318    
4319    function GetPixelsPerInchY(): Integer;
4320    begin
4321      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
4322    end;
4323    
4324    
4325  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4326  var  var
4327    WebSvar : String;    WebSvar : String;
# Line 4614  var Line 4357  var
4357        end;        end;
4358    
4359    
4360      if (Scanningtype = '6') then  
4361        if (Scanningtype = '7') then
4362         begin
4363          URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4364         end
4365        else if (Scanningtype = '6') then
4366       begin       begin
4367        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4368       end       end
4369      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4370       begin       begin
4371        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4372       end       end
4373      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4374       begin       begin
# Line 4744  var Line 4492  var
4492  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;
4493                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4494                    begin                    begin
4495                      stregkoderMedTjekkodeArray[linienr] := split(stregkode, ' ', 2);  // Fjerner lige en evt. fremtidig dato fra feltet                      stregkoderMedTjekkodeArray[linienr] := TUtils.split(stregkode, ' ', 2);  // Fjerner lige en evt. fremtidig dato fra feltet
4496                    end                    end
4497                    else                    else
4498                    begin                    begin
# Line 4934  var Line 4682  var
4682     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4683     imorgenYmd : string;     imorgenYmd : string;
4684     logFilnavn : string;     logFilnavn : string;
4685      error : Integer;     //error : Integer;
4686    
4687  begin  begin
4688    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5026  begin Line 4774  begin
4774          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4775          S := buffer;          S := buffer;
4776          SetLength(A,0);          SetLength(A,0);
4777          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4778          if (length(A) < 2) then          if (length(A) < 2) then
4779          begin          begin
4780            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4781          end;          end;
4782            if (length(A) > 1) then            if (length(A) > 1) then
4783            begin            begin
# Line 5103  begin Line 4851  begin
4851          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4852          S := buffer;          S := buffer;
4853          SetLength(A,0);          SetLength(A,0);
4854          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4855          if (length(A) < 3) then          if (length(A) < 3) then
4856          begin          begin
4857            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4858          end;          end;
4859          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4860          begin          begin
# Line 5203  begin Line 4951  begin
4951    //ShowMessage('Ændring ikke tilladt');    //ShowMessage('Ændring ikke tilladt');
4952    // Her skal komme en 'rød skærm' alarm    // Her skal komme en 'rød skærm' alarm
4953    PlaySound(PWideChar(AlarmLyd));    PlaySound(PWideChar(AlarmLyd));
   
   ListBox1.Items.Insert(0, strMessage);  
4954    MainForm.Color := clRed;    MainForm.Color := clRed;
4955    
4956    
4957    RuteNummerST.Caption := '';    RuteNummerST.Caption := '';
4958    BoghandlerNavnST.Caption := '';    BoghandlerNavnST.Caption := '';
4959    KommentarST.Caption := strMessage;    btnNulstil.Visible := true;
4960    PakkeshopNulstil.Visible := true;  
4961      if (strMessage <> '') then
4962      begin
4963        ListBox1.Items.Insert(0, strMessage);
4964        KommentarST.Caption := strMessage;
4965      end;
4966    
4967  end;  end;
4968    
4969  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
# Line 5301  begin Line 5055  begin
5055    end;    end;
5056  end;  end;
5057    
5058  function TMainForm.AdobeReaderExists: Boolean;  
5059  var  
5060    AReg: TRegistry;  
5061  begin  
5062    result:= false;  
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
 end;  
5063    
5064  procedure TMainForm.CheckPrintQue(tjektype : string);  procedure TMainForm.CheckPrintQue(tjektype : string);
5065  type  type
# Line 5416  begin Line 5164  begin
5164    end;    end;
5165  end;  end;
5166    
 function TMainForm.CheckUrl(url:string):boolean;  
 var  
   hSession, hfile, hRequest: hInternet;  
   dwindex,dwcodelen :dword;  
   dwcode:array[1..20] of char;  
   res : pchar;  
 begin  
   if pos('http://',lowercase(url))=0 then  
     url := 'http://'+url;  
   Result := false;  
   hSession := InternetOpen('InetURL:/1.0',  
                             INTERNET_OPEN_TYPE_PRECONFIG,  
                             nil,  
                             nil,  
                             0);  
   if assigned(hsession) then  
   begin  
     hfile := InternetOpenUrl(hsession,  
                              pchar(url),  
                              nil,  
                              0,  
                              INTERNET_FLAG_RELOAD,  
                              0);  
     dwIndex := 0;  
     dwCodeLen := 10;  
     HttpQueryInfo(hfile,  
                   HTTP_QUERY_STATUS_CODE,  
                   @dwcode,  
                   dwcodeLen,  
                   dwIndex);  
     res := pchar(@dwcode);  
     result:= (res ='200') or (res ='302');  
     if assigned(hfile) then  
       InternetCloseHandle(hfile);  
     InternetCloseHandle(hsession);  
   end;  
   
 end;  
   
 // 20150310: start  
 procedure TMainForm.RoundCornerOf(Control: TWinControl);  
 var  
    R: TRect;  
    Rgn: HRGN;  
 begin  
    with Control do  
    begin  
      R := ClientRect;  
 //     rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20) ;  
      rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 25, 25) ;  
 //     rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 30, 30) ;  
      Perform(EM_GETRECT, 0, lParam(@r)) ;  
      InflateRect(r, - 4, - 4) ;  
      Perform(EM_SETRECTNP, 0, lParam(@r)) ;  
      SetWindowRgn(Handle, rgn, True) ;  
      Invalidate;  
    end;  
 end;  
 // 20150310: slut  
5167    
5168  end.  end.
5169    

Legend:
Removed from v.2660  
changed lines
  Added in v.2703

  ViewVC Help
Powered by ViewVC 1.1.20