/[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 2701 by torben, Thu Sep 3 15:22:09 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();
 // 20150310: start  
   procedure RoundCornerOf(Control: TWinControl);  
177    
178      procedure menuIndleveringClick(Sender: TObject);
179    
180      procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
181      procedure CheckPrintQue(tjektype : string);
182    
 // 20150310: slut  
183    
184    private    private
185      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 187  type
187      SkrivLog : String;      SkrivLog : String;
188      Sted : String;      Sted : String;
189      StedNavn : String;      StedNavn : String;
190      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;
191  // 29150330: start  // 29150330: start
192      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
193  // 20150330: slut  // 20150330: slut
# Line 207  type Line 201  type
201      AlarmLyd : String;      AlarmLyd : String;
202      ScannetOkLyd : String;      ScannetOkLyd : String;
203      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
204  // 20150317: start  
205      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
206  // 20150317: slut  
207      PrinterNavn : String;      PrinterNavn : String;
208      TjekPrinter : String;      TjekPrinter : String;
209      XPosRute : integer;      XPosRute : integer;
# Line 248  type Line 242  type
242      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
243      TjekUrls : String;      TjekUrls : String;
244    
245            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      Barcode : TStBarcode;
246    
247    
248      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 = '');
249      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 261  type
261      { Public declarations }      { Public declarations }
262    end;    end;
263    
264          function GetPixelsPerInchX(): Integer;
265        function GetPixelsPerInchY(): Integer;
266    
267  var  var
268    MainForm: TMainForm;    MainForm: TMainForm;
269    
# Line 279  var Line 277  var
277  implementation  implementation
278  {$R *.dfm}  {$R *.dfm}
279    
 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;  
280    
281  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
282  begin  begin
# Line 304  begin Line 285  begin
285      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
286  // 20150309: slut  // 20150309: slut
287    
288        Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
289    
290      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
291      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
292      begin      begin
# Line 346  begin Line 329  begin
329        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
330      end;      end;
331    
332      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
333    
334      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
335      begin      begin
# Line 400  begin Line 383  begin
383    
384      StartScreen();      StartScreen();
385      MainForm.Caption := Titel;      MainForm.Caption := Titel;
386      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
387      MainForm.Farve := Farve;      MainForm.Farve := Farve;
388      MainForm.Titel := Titel;      MainForm.Titel := Titel;
389      MainForm.Url := Url;      MainForm.Url := Url;
# Line 460  begin Line 443  begin
443          end          end
444          else          else
445          begin          begin
446            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
447          end;          end;
448          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
449        end        end
450        else        else
451        begin        begin
452          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
453          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
454        end;        end;
455      end;      end;
# Line 509  end; Line 492  end;
492    
493  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
494  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;  
 *)  
495  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
496  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
497       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
498       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
499       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
500  end;  end;
501    
502  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
# Line 546  begin Line 513  begin
513    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
514    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
515    
516    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
517    
518    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker1);
519    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker2);
520    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker3);
521    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker4);
522    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker5);
523    RoundCornerOf(PanelManglendePakker6);    TUtils.RoundCornerOf(PanelManglendePakker6);
524    
525    
526    // 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 555  begin
555      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');
556      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');
557      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');
558    
559    
560        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
561        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
562    
563    
564    
565      LabelType := ReadInteger('Settings','LabelType',1);      LabelType := ReadInteger('Settings','LabelType',1);
566      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
567      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 599  begin
599    
600      if (SkrivLog = '1') then      if (SkrivLog = '1') then
601      begin      begin
602        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);
603        try        try
604          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
605          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
606          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
607          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
608          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
609          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 768  begin Line 742  begin
742      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
743      // *************************** //      // *************************** //
744    
745    {$IfDef STED_BK}
746        SpecialVersionSted := 'BK';
747    {$EndIf}
748    {$IfDef STED_DBK}
749        SpecialVersionSted := 'DBK';
750    {$EndIf}
751    {$IfDef STED_FD}
752        SpecialVersionSted := 'FD';
753    {$EndIf}
754    {$IfDef STED_NS}
755        SpecialVersionSted := 'NS';
756    {$EndIf}
757    
758    
759      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
760      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
761      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 783  begin Line 771  begin
771      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
772      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
773    
 // 20150313: start  
774      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
775      begin      begin
776         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 794  begin Line 781  begin
781         SpecialVersionSted := '03';         SpecialVersionSted := '03';
782         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
783      end;      end;
 // 20150313: slut  
784    
785      if SpecialVersionSted = 'BK' then      if SpecialVersionSted = 'BK' then
786      begin      begin
# Line 834  begin Line 820  begin
820        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
821        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
822        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
823          PanelValg7.Enabled := false;
824          PanelValg7.Font.Color := clInactiveCaption;
825    
826       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
827        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
828        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 870  begin Line 859  begin
859        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
860        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
861        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
862          PanelValg7.Enabled := false;
863          PanelValg7.Font.Color := clInactiveCaption;
864       // 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
865    
866        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
# Line 965  begin Line 956  begin
956             RutenummerST.Caption := '';             RutenummerST.Caption := '';
957             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
958             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
959             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
960             exit;             exit;
961          end;          end;
962      end      end
# Line 1134  begin Line 1125  begin
1125      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
1126    
1127      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1128      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1129    
1130  end;  end;
1131    
# Line 1214  begin Line 1205  begin
1205    
1206      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1207      begin      begin
1208         PakkeshopNulstil.Click();         btnNulstil.Click();
1209         exit;         exit;
1210      end;      end;
1211    
1212      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1213      begin      begin
1214        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1215    
# Line 1543  begin Line 1534  begin
1534             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1535             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1536             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1537             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1538             Stregkode := '';             Stregkode := '';
1539             InitScreen();             InitScreen();
1540        end        end
# Line 1555  begin Line 1546  begin
1546             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1547             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1548             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1549             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1550             Stregkode := '';             Stregkode := '';
1551             InitScreen();             InitScreen();
1552        end        end
# Line 1586  begin Line 1577  begin
1577             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1578             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1579             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1580                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1581             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1582                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1583             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1584           end           end
1585          else          else
1586           begin           begin
# Line 1609  begin Line 1600  begin
1600    
1601      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
1602      begin      begin
1603    
1604         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1605            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1606         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 1613  begin
1613            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1614            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1615            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1616               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1617               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1618              exit;              exit;
1619            end;            end;
1620            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1646  begin Line 1634  begin
1634              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1635              begin              begin
1636                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1637                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1638                MainForm.Color := clRed;                MainForm.Color := clRed;
1639              end;              end;
1640           end;           end;
1641            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
1642            begin            begin
1643              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1644              if Storepakker1.Checked then              if Storepakker1.Checked then
1645              begin              begin
1646                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1661  begin Line 1649  begin
1649              begin              begin
1650                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1651              end;              end;
1652              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1653            end            end
1654            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1655            begin            begin
1656              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1657              if Storepakker1.Checked then              if Storepakker1.Checked then
1658              begin              begin
1659                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1674  begin Line 1662  begin
1662              begin              begin
1663                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1664              end;              end;
1665              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1666            end            end
1667            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1668            begin            begin
# Line 1685  begin Line 1673  begin
1673            end            end
1674            else            else
1675            begin            begin
1676              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1677            end;            end;
1678           if not PakkeshopNulstil.Visible then  
1679             if not btnNulstil.Visible then
1680            begin            begin
1681    
1682              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
# Line 1781  var Line 1768  var
1768    
1769    
1770  begin  begin
1771      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
1772      begin      begin
1773        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1774          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
# Line 1792  begin Line 1779  begin
1779            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1780            begin            begin
1781              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1782              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1783  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1784  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1785  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1786              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1787            end            end
1788            else     // kun idag            else     // kun idag
1789            begin            begin
# Line 1989  begin Line 1976  begin
1976      01 :      01 :
1977            begin;      // NS            begin;      // NS
1978              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1979              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1980              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1981              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1982              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1983              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2005  begin Line 1992  begin
1992              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1993              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
1994              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
1995              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1996              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1997              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1998              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1999              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2016  begin Line 2003  begin
2003              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2004             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
2005              begin              begin
2006                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2007              end              end
2008              else              else
2009              begin              begin
2010                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2011              end;              end;
2012              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2013              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2014              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2015              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2016              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2043  begin Line 2030  begin
2030              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2031              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
2032              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
2033              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
2034              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2035              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2036              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2037            end;            end;
# Line 2060  var Line 2047  var
2047    URLStr : String;    URLStr : String;
2048    pakkestorrelse : String;    pakkestorrelse : String;
2049    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2050    
2051      PakkeshopLabel: TPakkeshopLabel;
2052  begin  begin
2053    if radioStorPakke.Checked then    if radioStorPakke.Checked then
2054    begin    begin
# Line 2069  begin Line 2058  begin
2058    begin    begin
2059      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2060    end;    end;
2061    
2062    
2063    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
2064    begin    begin
2065       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2097  begin Line 2088  begin
2088    begin    begin
2089       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2090    end    end
2091      else if menuIndlevering.Checked then
2092      begin
2093        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2094      end
2095    else    else
2096    begin    begin
2097      exit;      exit;
# Line 2143  begin Line 2138  begin
2138          begin          begin
2139            PrintNyLabel := True;            PrintNyLabel := True;
2140          end;          end;
 // 20150310: start  
2141        end;        end;
 // 20150310: slut  
2142       end       end
2143        else if menuIndlevering.Checked then
2144        begin
2145    
2146    
2147    
2148    
2149         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2150         if (Kommentar = 'Ok') then
2151         begin
2152           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2153           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2154           RuteNummer := PakkeshopLabel.Koreliste;
2155           Stregkode := PakkeshopLabel.Stregkode;
2156    
2157           PrintPakkeshopLabel( PakkeshopLabel );
2158    
2159         end;
2160    
2161    
2162        end
2163      else      else
2164       begin       begin
2165        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2179  begin Line 2192  begin
2192          PrintNyLabel := True;          PrintNyLabel := True;
2193        end;        end;
2194      end;      end;
2195    
2196    
2197      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2198      begin      begin
2199        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2271  begin Line 2286  begin
2286        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2287      end;      end;
2288    end;    end;
2289      if menuIndlevering.Checked then
2290      begin
2291        List1Msg := Stregkode;
2292      end;
2293    
2294    
2295    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2296    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2297    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2298  end;  end;
2299    
2300  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2301  begin  begin
2302    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2303    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2293  pakkeForkertSted : Integer; Line 2314  pakkeForkertSted : Integer;
2314    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2315  begin  begin
2316    if Budlevering1.Checked then    if Budlevering1.Checked then
2317       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2318    
2319    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2320    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2338  begin Line 2359  begin
2359    
2360          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2361          MainForm.Color := clRed;          MainForm.Color := clRed;
2362          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2363    
2364       end       end
2365       else       else
# Line 2349  begin Line 2370  begin
2370            PrintNyLabel := true;            PrintNyLabel := true;
2371            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2372            nyFarve := Farve;            nyFarve := Farve;
2373            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2374            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2375            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2376            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
# Line 2365  begin Line 2386  begin
2386            begin            begin
2387              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2388              MainForm.Color := clRed;              MainForm.Color := clRed;
2389              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2390            end;            end;
2391    
2392         end;         end;
# Line 2391  begin Line 2412  begin
2412            begin            begin
2413              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2414              MainForm.Color := clRed;              MainForm.Color := clRed;
2415              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2416            end;            end;
2417    
2418         end;         end;
# Line 2415  begin Line 2436  begin
2436                end;                end;
2437              end;              end;
2438        01 :  begin;        01 :  begin;
2439               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2440                    // 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
2441                    // 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')
2442                begin                begin
# Line 2429  begin Line 2450  begin
2450                end;                end;
2451              end;              end;
2452        03 :  begin;        03 :  begin;
2453               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2454                    // 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
2455                    // 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')
2456               begin               begin
# Line 2640  begin Line 2661  begin
2661          // Tjekker UrlNormal          // Tjekker UrlNormal
2662          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2663          begin          begin
2664            if CheckUrl(UrlNormal) then            if TUtils.CheckUrl(UrlNormal) then
2665            begin            begin
2666              logTekst := 'UrlNormal accepteret: ' + UrlNormal;              logTekst := 'UrlNormal accepteret: ' + UrlNormal;
2667              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2669  begin Line 2690  begin
2690          // Tjekker UrlReturDAO          // Tjekker UrlReturDAO
2691          if PanelValg2.Enabled = true then          if PanelValg2.Enabled = true then
2692          begin          begin
2693            if CheckUrl(UrlReturDAO) then            if TUtils.CheckUrl(UrlReturDAO) then
2694            begin            begin
2695              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;
2696              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2697  begin Line 2718  begin
2718          // Tjekker UrlReturBoghandler          // Tjekker UrlReturBoghandler
2719          if PanelValg3.Enabled = true then          if PanelValg3.Enabled = true then
2720          begin          begin
2721            if CheckUrl(UrlReturBoghandler) then            if TUtils.CheckUrl(UrlReturBoghandler) then
2722            begin            begin
2723              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;
2724              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2725  begin Line 2746  begin
2746          // Tjekker UrlBudlevering          // Tjekker UrlBudlevering
2747          if PanelValg4.Enabled = true then          if PanelValg4.Enabled = true then
2748          begin          begin
2749            if CheckUrl(UrlBudlevering) then            if TUtils.CheckUrl(UrlBudlevering) then
2750            begin            begin
2751              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;
2752              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2753  begin Line 2774  begin
2774          // Tjekker UrlPakkeshoplevering          // Tjekker UrlPakkeshoplevering
2775          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2776          begin          begin
2777            if CheckUrl(UrlPakkeshoplevering) then            if TUtils.CheckUrl(UrlPakkeshoplevering) then
2778            begin            begin
2779              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;
2780              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2781  begin Line 2802  begin
2802          // Tjekker UrlReturPakkeshop          // Tjekker UrlReturPakkeshop
2803          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2804          begin          begin
2805            if CheckUrl(UrlReturPakkeshop) then            if TUtils.CheckUrl(UrlReturPakkeshop) then
2806            begin            begin
2807              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;
2808              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2810  begin Line 2831  begin
2831          if (PanelValg1.Enabled = true)          if (PanelValg1.Enabled = true)
2832          or (PanelValg4.Enabled = true) then          or (PanelValg4.Enabled = true) then
2833          begin          begin
2834            if CheckUrl(UrlManglendeScanninger) then            if TUtils.CheckUrl(UrlManglendeScanninger) then
2835            begin            begin
2836              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;
2837              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2838  begin Line 2859  begin
2859          // Tjekker UrlPakkeshopManglendeScanninger          // Tjekker UrlPakkeshopManglendeScanninger
2860          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2861          begin          begin
2862            if CheckUrl(UrlPakkeshopManglendeScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeScanninger) then
2863            begin            begin
2864              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;
2865              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2866  begin Line 2887  begin
2887          // Tjekker UrlPakkeshopManglendeReturScanninger          // Tjekker UrlPakkeshopManglendeReturScanninger
2888          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2889          begin          begin
2890            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeReturScanninger) then
2891            begin            begin
2892              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;
2893              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2891  begin Line 2912  begin
2912            end;            end;
2913          end;          end;
2914    
2915           // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2916            if PanelValg7.Enabled = true then
2917            begin
2918              if TUtils.CheckUrl(UrlIndleveringsPakke) then
2919              begin
2920                logTekst := 'UrlIndleveringsPakke accepteret: ' + UrlIndleveringsPakke;
2921                SkrivScanningLogFil(logTekst);
2922              end
2923              else
2924              begin
2925                inc(urlFejl);   // Optæller antal fejl
2926                logTekst := 'UrlIndleveringsPakke svarer ikke: ' + UrlIndleveringsPakke;
2927                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2928                if TjekUrls = '1' then
2929                begin
2930                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2931                end;
2932                SkrivScanningLogFil(logTekst);
2933                if TjekUrls = '1' then
2934                begin
2935                  ShowMessage(logTekst);
2936                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2937                  Application.Terminate;
2938                  exit;
2939                end;
2940              end;
2941    
2942              if TUtils.CheckUrl(UrlIndleveringsPakkeManglendeScanninger) then
2943              begin
2944                logTekst := 'UrlIndleveringsPakkeManglendeScanninger accepteret: ' + UrlIndleveringsPakkeManglendeScanninger;
2945                SkrivScanningLogFil(logTekst);
2946              end
2947              else
2948              begin
2949                inc(urlFejl);   // Optæller antal fejl
2950                logTekst := 'UrlIndleveringsPakkeManglendeScanninger svarer ikke: ' + UrlIndleveringsPakkeManglendeScanninger;
2951                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2952                if TjekUrls = '1' then
2953                begin
2954                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2955                end;
2956                SkrivScanningLogFil(logTekst);
2957                if TjekUrls = '1' then
2958                begin
2959                  ShowMessage(logTekst);
2960                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2961                  Application.Terminate;
2962                  exit;
2963                end;
2964              end;
2965            end;
2966    
2967          // Tjekker UrlEKLoverforsel          // Tjekker UrlEKLoverforsel
2968          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2969          begin          begin
2970            if CheckUrl(UrlEKLoverforsel) then            if TUtils.CheckUrl(UrlEKLoverforsel) then
2971            begin            begin
2972              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;
2973              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2923  begin Line 2996  begin
2996          // Tjekker UrlEKLoverforselPakkeshop          // Tjekker UrlEKLoverforselPakkeshop
2997          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2998          begin          begin
2999            if CheckUrl(UrlEKLoverforselPakkeshop) then            if TUtils.CheckUrl(UrlEKLoverforselPakkeshop) then
3000            begin            begin
3001              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;
3002              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2950  begin Line 3023  begin
3023    
3024    
3025          // Tjekker UrlFindPakketype          // Tjekker UrlFindPakketype
3026          if CheckUrl(UrlFindPakketype) then          if TUtils.CheckUrl(UrlFindPakketype) then
3027          begin          begin
3028            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;
3029            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 2975  begin Line 3048  begin
3048          end;          end;
3049    
3050          // Tjekker UrlSendPrograminfo          // Tjekker UrlSendPrograminfo
3051          if CheckUrl(UrlSendPrograminfo) then          if TUtils.CheckUrl(UrlSendPrograminfo) then
3052          begin          begin
3053            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;
3054            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 3012  begin Line 3085  begin
3085    
3086  end;  end;
3087    
 function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  
 var  
    LocalFileTime: TFileTime;  
    SystemTime: TSystemTime;  
 begin  
    FileTimeToLocalFileTime(FileTime, LocalFileTime) ;  
    FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
    Result := SystemTimeToDateTime(SystemTime) ;  
 end;  
   
3088  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
3089  var  var
3090    SR: TSearchRec;    SR: TSearchRec;
# Line 3038  begin Line 3101  begin
3101      repeat      repeat
3102        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
3103        begin        begin
3104    
3105          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
3106          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
3107          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
3108          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
3109          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
3110          // (æ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 3141  begin
3141    end;    end;
3142  end;  end;
3143    
3144  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
3145  begin  begin
3146    PakkeshopStregkode := '';    PakkeshopStregkode := '';
3147    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
3148    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
3149    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
3150    BoghandlerStregkode := '';    BoghandlerStregkode := '';
3151    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3099  begin Line 3163  begin
3163  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
3164    if Farve <> '' then    if Farve <> '' then
3165    begin    begin
3166       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
3167  // 20150312: start  // 20150312: start
3168  (*  (*
3169    end    end
# Line 3173  end; Line 3237  end;
3237    
3238  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
3239  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;  
 *)  
3240  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
3241  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
3242       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
3243       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
3244       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
3245  // 20150311: slut  
3246    
3247    
3248  end;  end;
3249    
3250  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3231  begin Line 3282  begin
3282      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
3283      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
3284      MainForm.Color := clRed;      MainForm.Color := clRed;
3285      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
3286    end    end
3287    else    else
3288    begin    begin
# Line 3299  begin Line 3350  begin
3350    end;    end;
3351  end;  end;
3352    
3353  {  
  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;  
3354    
3355  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3356  const  const
# Line 3337  var Line 3359  var
3359   tekst, filversion : String;   tekst, filversion : String;
3360  begin  begin
3361    
3362    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
3363    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';
3364    
3365    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3359  begin Line 3381  begin
3381          end          end
3382          else          else
3383          begin          begin
3384            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3385          end;          end;
3386      end      end
3387      else      else
3388      begin      begin
3389        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3390      end;      end;
3391    end;    end;
3392    
# Line 3432  begin Line 3454  begin
3454    
3455    if FileExists(fileName) then    if FileExists(fileName) then
3456    begin    begin
3457      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3458      begin      begin
3459        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3460        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3456  begin Line 3478  begin
3478    
3479    if FileExists(fileName) then    if FileExists(fileName) then
3480    begin    begin
3481      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3482      begin      begin
3483        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3484        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3485      end      end
3486      else      else
3487      begin      begin
3488        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3489      end;      end;
3490    end    end
3491    else    else
# Line 3472  begin Line 3494  begin
3494    end;    end;
3495  end;  end;
3496    
3497    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3498    begin
3499      Scanningtype := '7';
3500      NulstilAutomatiskValg();
3501      InitIndleveringskode();
3502    end;
3503    
3504  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3505  begin  begin
3506    
# Line 3504  end; Line 3533  end;
3533  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3534  begin  begin
3535        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3536        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3537        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3538        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3539        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
# Line 3522  begin Line 3551  begin
3551        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3552        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3553        ListBox1.Visible := true;        ListBox1.Visible := true;
3554        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3555        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3556        InitLillePakke();        InitLillePakke();
3557        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3558        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3537  procedure TMainForm.InitReturFraDao(); Line 3566  procedure TMainForm.InitReturFraDao();
3566  begin  begin
3567        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3568        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3569        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3570        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3571        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3572        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
# Line 3556  begin Line 3585  begin
3585        ListBox1.Visible := true;        ListBox1.Visible := true;
3586        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3587        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3588        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3589        InitLillePakke();        InitLillePakke();
3590  end;  end;
3591    
# Line 3564  procedure TMainForm.InitReturFraKunde(); Line 3593  procedure TMainForm.InitReturFraKunde();
3593  begin  begin
3594        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3595        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3596        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3597        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3598        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3599        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
# Line 3582  begin Line 3611  begin
3611        ListBox1.Visible := true;        ListBox1.Visible := true;
3612        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3613        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3614        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3615        InitLillePakke();        InitLillePakke();
3616  end;  end;
3617    
# Line 3590  procedure TMainForm.InitDirektelevering( Line 3619  procedure TMainForm.InitDirektelevering(
3619  begin  begin
3620        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3621        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3622        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3623        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3624        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3625        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
# Line 3608  begin Line 3637  begin
3637        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3638        ListBox1.Visible := true;        ListBox1.Visible := true;
3639        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3640        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3641        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3642        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3643        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3644        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3645        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3646        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 3655  procedure TMainForm.InitPakkeshopleverin
3655  begin  begin
3656        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3657        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3658        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3659        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3660        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3661        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
# Line 3644  begin Line 3673  begin
3673        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3674        ListBox1.Visible := true;        ListBox1.Visible := true;
3675        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3676        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3677        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3678    
3679        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3680    
3681        InitLillePakke();        InitLillePakke();
3682        IndlesScanningLogFil();        IndlesScanningLogFil();
# Line 3663  procedure TMainForm.InitReturFraPakkesho Line 3692  procedure TMainForm.InitReturFraPakkesho
3692  begin  begin
3693        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3694        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3695        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3696        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3697        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3698        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
# Line 3681  begin Line 3710  begin
3710        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3711        ListBox1.Visible := true;        ListBox1.Visible := true;
3712        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3713        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3714        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3715        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3716        InitLillePakke();        InitLillePakke();
3717        IndlesScanningLogFil();        IndlesScanningLogFil();
3718        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3703  end; Line 3732  end;
3732    
3733  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3734  begin  begin
3735          menuIndlevering.Checked := true;
3736        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3737        Returpakkerfrapakkeshop1.Checked := true;  
3738        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3739        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3740        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3741        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
# Line 3727  begin Line 3757  begin
3757        ListBox1.Visible := true;        ListBox1.Visible := true;
3758        ListBox1.Items.Clear();        ListBox1.Items.Clear();
3759    
3760        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3761        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3762        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3763        InitLillePakke();        InitLillePakke();
3764        IndlesScanningLogFil();        IndlesScanningLogFil();
3765        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3767  begin Line 3797  begin
3797  // 20150310: slut  // 20150310: slut
3798  end;  end;
3799    
 /// <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]]);  
3800    
     // 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;  
3801    
3802  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3803  begin  begin
# Line 3903  begin; Line 3868  begin;
3868    CheckCode();    CheckCode();
3869  end;  end;
3870    
3871  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3872  var  var
3873    WebSvar : String;    WebSvar : String;
3874    URLStr : String;    URLStr : String;
# Line 3913  var Line 3878  var
3878    status, kommentar : String;    status, kommentar : String;
3879    
3880  begin  begin
3881      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3882    
3883      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');
3884      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
# Line 3976  begin Line 3941  begin
3941        end;        end;
3942      end;      end;
3943    
3944      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3945    
3946      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
3947    
# Line 3993  begin Line 3958  begin
3958           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3959         end;         end;
3960         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3961         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3962      end;      end;
3963    
3964  end;  end;
# Line 4017  begin Line 3982  begin
3982    else    else
3983      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3984  }  }
3985    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3986    
3987    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3988    CheckCode();    CheckCode();
# Line 4025  end; Line 3990  end;
3990    
3991  end;  end;
3992    
 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;  
3993    
3994  //  //
3995  // Bladhus ***  // Bladhus ***
# Line 4541  begin Line 4467  begin
4467    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
4468  end;  end;
4469    
4470  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4471  begin  begin
4472      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4473      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
4474  end;  end;
4475    
4476  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4477  const  const
4478    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4479    
# Line 4556  begin Line 4482  begin
4482      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
4483  end;  end;
4484    
4485  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4486  begin  begin
4487      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4488      begin      begin
# Line 4565  begin Line 4491  begin
4491      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
4492  end;  end;
4493    
4494  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
4495    // ToDo: PrintPakkeshopLabel()
4496    procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4497  var  var
4498    S2: string;    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4499      Angle: integer;
4500      gMode: integer;
4501      Dirigering: string;
4502    
4503  begin  begin
4504    Result  := 0;      with Printer do
4505    S2 := S + Border;      begin
4506    repeat        BeginDoc();
4507      SetLength(A, Length(A) + 1);  
4508      a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);  
4509      Delete(S2, 1,Length(a[Result] + Border));        Canvas.Font.Size := 16;
4510      Inc(Result);        Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4511    until S2 = '';  
4512    
4513    
4514          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4515          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4516          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4517    
4518    
4519          Canvas.Font.Size := 9;
4520          Canvas.TextOut(110, 240, 'Pakkeshop:');
4521          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4522          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4523          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4524    
4525          Canvas.TextOut(350, 240, 'Afsender:');
4526          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4527          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4528          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4529    
4530          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4531          if ( PakkeshopLabel.Koreliste <> '') then
4532          begin
4533            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4534          end;
4535    
4536    
4537          Canvas.Font.Size := 12;
4538          Canvas.TextOut(15, 370, Dirigering);
4539    
4540    
4541    
4542    
4543    
4544          //Tegn adskillelses linier
4545          Canvas.Pen.Width := 2;
4546          //Øverste linie
4547          Canvas.MoveTo(20,80);
4548          Canvas.LineTo(600,80);
4549    
4550          // Midterste linie
4551          Canvas.MoveTo( 20, 240);
4552          Canvas.LineTo(600, 240);
4553    
4554          //Nederste linie
4555          Canvas.MoveTo( 20, 370);
4556          Canvas.LineTo(600, 370);
4557    
4558    
4559          //Tegn skrå streger over afsender
4560          Canvas.Pen.Width := 1;
4561          Canvas.MoveTo(600, 250);
4562          Canvas.LineTo(350, 360);
4563          Canvas.MoveTo(600, 360);
4564          Canvas.LineTo(350, 250);
4565    
4566    
4567    
4568    
4569          // Resten af rutinen vedr genering og placering af Barcode
4570    
4571          BarCode.BarCodeType := bcCode128;
4572          BarCode.Code128Subset := csCodeC;
4573          BarCode.Code := PakkeshopLabel.Stregkode;
4574          BarCode.Validate(True);
4575    
4576          //Start X-formation
4577          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4578          GetWorldTransform(Canvas.Handle, XFormOld);
4579    
4580          Angle := 270;
4581          XForm.eM11 := Cos(DegToRad(Angle));
4582          XForm.eM12 := Sin(DegToRad(Angle));
4583          XForm.eM21 := -Sin(DegToRad(Angle));
4584          XForm.eM22 := Cos(DegToRad(Angle));
4585          XForm.eDx := 0;
4586          XForm.eDy := 0;
4587    
4588          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4589          SetWorldTransform(Canvas.Handle, XForm);
4590    
4591          // PaintToCanvasSize arbejder i Inches
4592          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4593          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4594    
4595          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4596    
4597    
4598          SetWorldTransform(Canvas.Handle, XFormOld);
4599          SetGraphicsMode(Canvas.Handle, gMode);
4600    
4601          EndDoc();
4602        end;
4603    
4604    
4605    end;
4606    
4607    function GetPixelsPerInchX(): Integer;
4608    begin
4609      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
4610    end;
4611    
4612    function GetPixelsPerInchY(): Integer;
4613    begin
4614      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
4615  end;  end;
4616    
4617    
4618  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4619  var  var
4620    WebSvar : String;    WebSvar : String;
# Line 4614  var Line 4650  var
4650        end;        end;
4651    
4652    
4653      if (Scanningtype = '6') then  
4654        if (Scanningtype = '7') then
4655       begin       begin
4656        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4657         end
4658        else if (Scanningtype = '6') then
4659         begin
4660          URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4661       end       end
4662      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4663       begin       begin
4664        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4665       end       end
4666      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4667       begin       begin
# Line 4744  var Line 4785  var
4785  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;
4786                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4787                    begin                    begin
4788                      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
4789                    end                    end
4790                    else                    else
4791                    begin                    begin
# Line 4934  var Line 4975  var
4975     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4976     imorgenYmd : string;     imorgenYmd : string;
4977     logFilnavn : string;     logFilnavn : string;
4978      error : Integer;     //error : Integer;
4979    
4980  begin  begin
4981    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5026  begin Line 5067  begin
5067          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5068          S := buffer;          S := buffer;
5069          SetLength(A,0);          SetLength(A,0);
5070          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5071          if (length(A) < 2) then          if (length(A) < 2) then
5072          begin          begin
5073            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5074          end;          end;
5075            if (length(A) > 1) then            if (length(A) > 1) then
5076            begin            begin
# Line 5103  begin Line 5144  begin
5144          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5145          S := buffer;          S := buffer;
5146          SetLength(A,0);          SetLength(A,0);
5147          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5148          if (length(A) < 3) then          if (length(A) < 3) then
5149          begin          begin
5150            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5151          end;          end;
5152          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
5153          begin          begin
# Line 5203  begin Line 5244  begin
5244    //ShowMessage('Ændring ikke tilladt');    //ShowMessage('Ændring ikke tilladt');
5245    // Her skal komme en 'rød skærm' alarm    // Her skal komme en 'rød skærm' alarm
5246    PlaySound(PWideChar(AlarmLyd));    PlaySound(PWideChar(AlarmLyd));
   
   ListBox1.Items.Insert(0, strMessage);  
5247    MainForm.Color := clRed;    MainForm.Color := clRed;
5248    
5249    
5250    RuteNummerST.Caption := '';    RuteNummerST.Caption := '';
5251    BoghandlerNavnST.Caption := '';    BoghandlerNavnST.Caption := '';
5252    KommentarST.Caption := strMessage;    btnNulstil.Visible := true;
5253    PakkeshopNulstil.Visible := true;  
5254      if (strMessage <> '') then
5255      begin
5256        ListBox1.Items.Insert(0, strMessage);
5257        KommentarST.Caption := strMessage;
5258      end;
5259    
5260  end;  end;
5261    
5262  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
# Line 5301  begin Line 5348  begin
5348    end;    end;
5349  end;  end;
5350    
5351  function TMainForm.AdobeReaderExists: Boolean;  
5352  var  
5353    AReg: TRegistry;  
5354  begin  
5355    result:= false;  
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
 end;  
5356    
5357  procedure TMainForm.CheckPrintQue(tjektype : string);  procedure TMainForm.CheckPrintQue(tjektype : string);
5358  type  type
# Line 5416  begin Line 5457  begin
5457    end;    end;
5458  end;  end;
5459    
 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  
5460    
5461  end.  end.
5462    

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

  ViewVC Help
Powered by ViewVC 1.1.20