/[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 2650 by torben, Thu Aug 20 20:58:26 2015 UTC revision 2700 by torben, Thu Sep 3 14:53:37 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,
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 20  type Line 25  type
25      IdHTTP1: TIdHTTP;      IdHTTP1: TIdHTTP;
26      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
27      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
28      CheckBox1: TCheckBox;      chkSporgEfterKunde: TCheckBox;
29      KommentarST: TStaticText;      KommentarST: TStaticText;
30      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
31      N1: TMenuItem;      N1: TMenuItem;
# Line 36  type Line 41  type
41      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
42      N2: TMenuItem;      N2: TMenuItem;
43      N3: TMenuItem;      N3: TMenuItem;
44      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
45      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
46      N4: TMenuItem;      N4: TMenuItem;
47      Storepakker1: TMenuItem;      Storepakker1: TMenuItem;
48      Smpakker1: TMenuItem;      Smpakker1: TMenuItem;
# Line 47  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      CheckBox2: TCheckBox;      chkAltidPrintLabel: TCheckBox;
68      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
69      N5: TMenuItem;      N5: TMenuItem;
70      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
71      Manual1: TMenuItem;      Manual1: TMenuItem;
72      PrinterstatusStaticText1: TStaticText;      PrinterstatusStaticText1: TStaticText;
73      Timer1: TTimer;      Timer1: TTimer;
74      CheckBox3: TCheckBox;      chkScanTjekkode: TCheckBox;
75      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
76      Automatisktjekkodestyring1: TMenuItem;      Automatisktjekkodestyring1: TMenuItem;
77      Automatiskvalg1: TMenuItem;      Automatiskvalg1: TMenuItem;
# Line 77  type Line 82  type
82      PanelValg4: TPanel;      PanelValg4: TPanel;
83      PanelValg5: TPanel;      PanelValg5: TPanel;
84      PanelValg6: TPanel;      PanelValg6: TPanel;
85        PanelValg7: TPanel;
86      Manualgenerel1: TMenuItem;      Manualgenerel1: TMenuItem;
87      StaticTextManglendePakker: TStaticText;      StaticTextManglendePakker: TStaticText;
88      PanelManglendePakker1: TPanel;      PanelManglendePakker1: TPanel;
# Line 85  type Line 91  type
91      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
92      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
93      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
94      PanelValg7: TPanel;      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 113  type Line 110  type
110    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
111    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
112    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
113    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
114    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
115    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
116    procedure Pakkernormal1Click(Sender: TObject);    procedure Pakkernormal1Click(Sender: TObject);
117    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
118    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
# Line 131  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 140  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 154  type Line 151  type
151    procedure InitIndleveringskode();    procedure InitIndleveringskode();
152    
153    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
154    procedure CheckBox2Click(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 CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
161    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure Automatisktjekkodestyring1Click(Sender: TObject);
162    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
163    procedure Automatiskvalg1Click(Sender: TObject);    procedure Automatiskvalg1Click(Sender: TObject);
# Line 172  type Line 168  type
168    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
169    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
170    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
171      procedure PanelValg7Click(Sender: TObject);
172    
173    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
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 PanelValg7Click(Sender: TObject);    procedure menuIndleveringClick(Sender: TObject);
179  // 20150310: slut  
180      procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
181      procedure CheckPrintQue(tjektype : string);
182    
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 188  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 196  type Line 195  type
195      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
196      ScanTjekkode : String;      ScanTjekkode : String;
197      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
198      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;
199      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;
200      LabelType : integer;      LabelType : integer;
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 243  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 255  type Line 255  type
255      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
256      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
257      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
258        procedure VisAlarmSkaerm(strMessage: string);
259    
260    public    public
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 273  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 298  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 340  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 394  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 409  begin Line 398  begin
398      else      else
399        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
400    
401      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
402      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
403      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
404    
405      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
406      begin      begin
407        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
408        begin        begin
409          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
410          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
411          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
412        end        end
413        else        else
414        begin        begin
415          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
416          CheckBox3.Enabled := true;         // False vil forhindre indtastning af tjekkode i nat x-press scanning          chkScanTjekkode.Enabled := true;         // False vil forhindre indtastning af tjekkode i nat x-press scanning
417          Scanogstjekkoden1.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning          Scanogstjekkoden1.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning
418        end;        end;
419      end;      end;
420    
421      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
422      begin      begin
423        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
424        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
425      end;      end;
426    
# Line 454  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 472  begin Line 461  begin
461    
462    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
463    begin    begin
464       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
465    end    end
466    else    else
467    begin    begin
468       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
469    end;    end;
470    
471  end;  end;
# Line 490  procedure TMainForm.Automatisktjekkodest Line 479  procedure TMainForm.Automatisktjekkodest
479  begin  begin
480    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
481    begin    begin
482       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
483       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
484    end    end
485    else    else
486    begin    begin
487       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
488       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
489    end;    end;
490    
# Line 503  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 531  const Line 504  const
504    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
505  var  var
506    printerInd : integer;    printerInd : integer;
   i : Integer;  
 // 20150310: start  
507    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
508    
509  begin  begin
510    // Initierer nogle variabler    // Initierer nogle variabler
# Line 542  begin Line 512  begin
512    Application.ShowHint := True;    Application.ShowHint := True;
513    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
514    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
515  // 20150306: start  
516    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
517  // 20150306: slut  
518  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
519    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
520    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
521    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
522    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
523    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
524    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
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
527    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 579  begin Line 548  begin
548      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');
549      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');
550      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');
551  // 20150330: start  
552      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');
553  // 20150330: slut  
554      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');
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 597  begin Line 573  begin
573      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
574      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
575      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
576    
577      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
578      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
579    
580        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
581        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
582    
583    
584      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
585      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
586      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 590  begin
590      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
591      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
592      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
593  // 20150317: start  
594      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
595  // 20150317: slut  
596      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
597      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
598      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
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 711  begin Line 693  begin
693    
694      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
695      begin      begin
696        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
697        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
698      end      end
699      else      else
700      begin      begin
701        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
702        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
703      end;      end;
704    
705      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
706      begin      begin
707        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
708        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
709      end      end
710      else      else
711      begin      begin
712        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
713        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
714      end;      end;
715    
716      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
717      begin      begin
718        Automatisktjekkodestyring1.Checked := true;        Automatisktjekkodestyring1.Checked := true;
719        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
720        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
721      end;      end;
722    
# Line 760  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 775  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 786  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 826  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;
829  // 20150317: start  
830        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
831        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
832  // 20150317: slut  
833        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
834        begin        begin
835           Scanningtype := '1';           Scanningtype := '1';
# Line 862  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  // 20150317: start  
866        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
867  // 20150317: slut  
868        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
869        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
870        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 957  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 1000  begin Line 999  begin
999      if Pakketype = '1' then      if Pakketype = '1' then
1000      begin      begin
1001        Storepakker1.Checked := true;        Storepakker1.Checked := true;
1002        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
1003      end      end
1004      else      else
1005      begin      begin
1006        Smpakker1.Checked := true;        Smpakker1.Checked := true;
1007        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
1008      end;      end;
1009    
1010      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 1044  begin
1044        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
1045      end;      end;
1046    
1047  // 20150317: start  
1048      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
1049      begin      begin
1050        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
1051      end;      end;
1052  // 20150317: slut  
1053    
1054      if (PrinterNavn <> '') then      if (PrinterNavn <> '') then
1055      begin      begin
# Line 1083  begin Line 1082  begin
1082          InitBladhus();          InitBladhus();
1083        end;        end;
1084    
1085  // 20150310: start  
1086      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1087      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1088    
# Line 1124  begin Line 1123  begin
1123      end;      end;
1124    
1125      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
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 1145  var Line 1143  var
1143    BoghandlerNavn : String;    BoghandlerNavn : String;
1144    Koreliste : String;    Koreliste : String;
1145    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1146    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1147    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1148    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1167  begin
1167      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1168      numberString := ClipboardData;      numberString := ClipboardData;
1169      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1170  // 20150311: start  
1171  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1172      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1173      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1174      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1186  begin Line 1183  begin
1183      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1184      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1185      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1186  // 20150311: slut  
1187      begin      begin
1188        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1189        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1199  begin Line 1196  begin
1196    
1197    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1198    begin    begin
 // 20150306: start  
1199      if (Length(Trim(Stregkode)) = 0) then      if (Length(Trim(Stregkode)) = 0) then
1200      begin      begin
1201        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1202        List1msg := 'Der skal scannes en stregkode...';  
       ListBox1.Items.Insert(0,List1Msg);  
       MainForm.Color := clRed;  
 // 20150316: start  
       RuteNummerST.Caption := '';  
       BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
       KommentarST.Caption := List1msg;  
       PakkeshopNulstil.Visible := true;  
1203        exit;        exit;
1204      end;      end;
 // 20150306: slut  
1205    
 // 20150311: start  
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         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1215  // 20150312: start  
 //       List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        List1msg := 'HUSK at klikke Nulstil før ny scanning...';  
 // 20150312: slut  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
 // 20150312: start  
        Stregkode := '';  
        StregkodeST.Caption := StregKode;  
 // 20150312: slut  
1216         exit;         exit;
1217      end;      end;
1218    
1219      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1220      begin      begin
1221         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1222         begin         begin
1223            InitLillePakke();            InitLillePakke();
1224         end         end
1225         else         else
1226         begin         begin
1227          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1228         end;         end;
1229         Stregkode := '';         Stregkode := '';
1230         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1233  begin
1233    
1234      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1235      begin      begin
1236         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1237         begin         begin
1238            InitStorPakke();            InitStorPakke();
1239         end         end
1240         else         else
1241         begin         begin
1242          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1243         end;         end;
1244         Stregkode := '';         Stregkode := '';
1245         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1294  begin Line 1248  begin
1248    
1249      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1250      begin      begin
1251         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1252         begin         begin
1253           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1254           begin           begin
1255            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1256           end           end
1257           else           else
1258           begin           begin
1259            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1260           end;           end;
1261         end         end
1262         else         else
1263         begin         begin
1264          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1265         end;         end;
1266         Stregkode := '';         Stregkode := '';
1267         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1270  begin
1270    
1271      if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then      if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then
1272      begin      begin
1273        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1274        begin        begin
1275           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1276           begin           begin
1277            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1278           end           end
1279           else           else
1280           begin           begin
1281            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1282           end;           end;
1283        end        end
1284        else        else
1285        begin        begin
1286          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1287        end;        end;
1288        Stregkode := '';        Stregkode := '';
1289        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1298  begin
1298         end         end
1299         else         else
1300         begin         begin
1301          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted');
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1302         end;         end;
1303         Stregkode := '';         Stregkode := '';
1304         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1305         exit;         exit;
1306      end;      end;
1307    
1308  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1309      if (StregKode = 'DAO NAT X-PRESS' ) or (StregKode = 'DAO NAT X+PRESS') then      if (StregKode = 'DAO NAT X-PRESS' ) or (StregKode = 'DAO NAT X+PRESS') then
 // 20150323: slut  
1310      begin      begin
1311         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1312         begin         begin
# Line 1395  begin Line 1314  begin
1314         end         end
1315         else         else
1316         begin         begin
1317          //ShowMessage('Ændring ikke tilladt');          VisAlarmSkaerm(Stregkode + ' kan ikke vælges på dette scanningsted');
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1318         end;         end;
1319         Stregkode := '';         Stregkode := '';
1320         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1329  begin
1329         end         end
1330         else         else
1331         begin         begin
1332          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1333         end;         end;
1334         Stregkode := '';         Stregkode := '';
1335         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1344  begin
1344         end         end
1345         else         else
1346         begin         begin
1347          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1348         end;         end;
1349         Stregkode := '';         Stregkode := '';
1350         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1359  begin
1359         end         end
1360         else         else
1361         begin         begin
1362          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1363         end;         end;
1364         Stregkode := '';         Stregkode := '';
1365         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1374  begin
1374         end         end
1375         else         else
1376         begin         begin
1377          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1378         end;         end;
1379         Stregkode := '';         Stregkode := '';
1380         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1389  begin
1389         end         end
1390         else         else
1391         begin         begin
1392          //ShowMessage('Ændring ikke tilladt');            VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
         // Her skal komme en 'rød skærm' alarm  
          PlaySound(PWideChar(AlarmLyd));  
          List1msg := Stregkode + ' kan ikke vælges på dette scanningsted';  
          ListBox1.Items.Insert(0,List1Msg);  
          MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
          KommentarST.Caption := List1msg;  
          PakkeshopNulstil.Visible := true;  
1393         end;         end;
1394         Stregkode := '';         Stregkode := '';
1395         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1396         exit;         exit;
1397      end;      end;
1398  // 20150311: slut  
1399    
1400      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1401      begin      begin
# Line 1597  begin Line 1450  begin
1450          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)
1451          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then
1452      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1453         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1454         List1msg := 'Pakketype ' + Pakketype + ' kan ikke scannes på dette scanningsted';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
 // 20150316: start  
        RuteNummerST.Caption := '';  
        BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
        KommentarST.Caption := List1msg;  
        PakkeshopNulstil.Visible := true;  
 // 20150311: start  
        StregKode := '';  
        StregkodeST.Caption := StregKode;  
 // 20150311: slut  
1455         exit;         exit;
1456      end;      end;
1457    
# Line 1626  begin Line 1467  begin
1467              end;              end;
1468            end            end
1469        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1470  (*  
       else if Pakketype = 'NatXpressReturDAO' then  
           begin  
             if Scanningtype <> '2' then  
             begin  
               Scanningtype := '2';  
               InitReturFraDao();  
             end;  
           end  
       else if Pakketype = 'NatXpressReturKunde' then  
           begin  
             if Scanningtype <> '3' then  
             begin  
               Scanningtype := '3';  
               InitReturFraKunde();  
             end;  
           end  
 *)  
1471        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1472            begin            begin
1473              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1661  begin Line 1485  begin
1485              end;              end;
1486            end            end
1487        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1488  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1489        else        else
1490            begin   // Her skal komme en alarm og rød skærm            begin
1491               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1492               List1msg := 'Pakken kan ikke scannes med automatisk valg';              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1493               ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
 // 20150316: start  
              RuteNummerST.Caption := '';  
              BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
              KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
 // 20150311: start  
              StregKode := '';  
              StregkodeST.Caption := StregKode;  
 // 20150311: slut  
1494               exit;               exit;
1495            end;            end;
1496        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1497      end      end
1498      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1499      begin      begin
1500        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1501        List1msg := 'Pakkenummer ikke gyldigt (for kort)';  
       ListBox1.Items.Insert(0,List1Msg);  
       MainForm.Color := clRed;  
 // 20150316: start  
       RuteNummerST.Caption := '';  
       BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
       KommentarST.Caption := List1msg;  
       PakkeshopNulstil.Visible := true;  
 // 20150312: start  
       StregKode := '';  
       StregkodeST.Caption := StregKode;  
 // 20150312: slut  
1502        exit;        exit;
1503      end;      end;
1504    
# Line 1714  begin Line 1506  begin
1506      begin      begin
1507        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1508        begin        begin
         PlaySound(PWideChar(AlarmLyd));  
         List1msg := 'Pakke findes som pakketype: ' + Pakketype;  
         ListBox1.Items.Insert(0,List1Msg);  
         MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
         KommentarST.Caption := List1msg;  
         PakkeshopNulstil.Visible := true;  
 // 20150312: start  
         StregKode := '';  
         StregkodeST.Caption := StregKode;  
 // 20150312: slut  
         exit;  
       end;  
     end;  
   
 // 20150311: start  
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
   
     if PakkeshopNulstil.Visible then  
     begin  
        PlaySound(PWideChar(AlarmLyd));  
        List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
        exit;  
     end;  
1509    
1510      if StregKode = 'Lille pakke' then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        InitLillePakke();  
        exit;  
     end;  
1511    
1512      if StregKode = 'Stor pakke' then          exit;
1513      begin        end;
        InitStorPakke();  
        exit;  
     end;  
   
     if StregKode = 'Indtast kundenummer' then  
     begin  
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
1514      end;      end;
1515    
     if (Stregkode = 'Scan tjekkode') or (PakkeshopStregkode = 'Scan tjekkode') or (BoghandlerStregkode = 'Scan tjekkode') then  
     begin  
        if (CheckBox3.State = cbChecked) then  
        begin  
         CheckBox3.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox3.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
     end;  
 *)  
 // 20150311: slut  
1516    
1517    
1518      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1519      begin      begin
1520        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1521        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1522        begin        begin
1523          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1524          begin          begin
1525              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1526              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1527          end;          end;
1528        end;        end;
# Line 1812  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 1824  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 1836  begin Line 1558  begin
1558              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1559              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1560              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1561  // 20150317: start  
1562              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1563  // 20150317: slut  
1564             end             end
1565            else            else
1566             begin             begin
1567                List1msg := 'Du skal scanne en stregkode';                VisAlarmSkaerm( 'Du skal scanne en stregkode' );
               ListBox1.Items.Insert(0,List1Msg);  
               //logTekst := RightStr(List1Msg, Length(List1Msg)-10);  
               //SkrivScanningLogFil(logTekst);  
               PlaySound(PWideChar(AlarmLyd));  
               PakkeshopNulstil.Visible := true;  
               MainForm.Color := clRed;  
1568             end;             end;
1569            Stregkode := '';            Stregkode := '';
1570            InitScreen();            InitScreen();
# Line 1861  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
1587                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1588                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1589                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1590                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1591                KommentarST.Caption := List1msg;                  
               ListBox1.Items.Insert(0,List1Msg);  
               //logTekst := RightStr(List1Msg, Length(List1Msg)-10);  
               //SkrivScanningLogFil(logTekst);  
               PlaySound(PWideChar(AlarmLyd));  
               PakkeshopNulstil.Visible := true;  
               MainForm.Color := clRed;  
 // 20150323: start  
1592                StregKode := '';                StregKode := '';
1593                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1594  // 20150323: slut  
1595                exit;                exit;
1596           end;           end;
1597          Stregkode := '';          Stregkode := '';
# Line 1903  begin Line 1612  begin
1612            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1613            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1614            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1615               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1616               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1617              exit;              exit;
1618            end;            end;
1619            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1928  begin Line 1633  begin
1633              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1634              begin              begin
1635                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1636                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1637                MainForm.Color := clRed;                MainForm.Color := clRed;
1638              end;              end;
1639           end;           end;
1640            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
1641            begin            begin
1642              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1643              if Storepakker1.Checked then              if Storepakker1.Checked then
1644              begin              begin
1645                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1943  begin Line 1648  begin
1648              begin              begin
1649                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1650              end;              end;
1651              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1652            end            end
1653            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1654            begin            begin
1655              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1656              if Storepakker1.Checked then              if Storepakker1.Checked then
1657              begin              begin
1658                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1956  begin Line 1661  begin
1661              begin              begin
1662                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1663              end;              end;
1664              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1665            end            end
1666            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1667            begin            begin
1668              List1msg := 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages';              VisAlarmSkaerm( 'Pakke ' + PakkeshopStregkode + ' skal gemmes på lager indtil data modtages' );
             ListBox1.Items.Insert(0,List1Msg);  
             MainForm.Color := clRed;  
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1669            end            end
1670            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1671            begin            begin
1672            end            end
1673            else            else
1674            begin            begin
1675              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1676            end;            end;
1677           if not PakkeshopNulstil.Visible then           if not btnNulstil.Visible then
1678            begin            begin
1679  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1680              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1681              begin              begin
1682                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1690  begin
1690                InitLillePakke();                InitLillePakke();
1691              end;              end;
1692            end;            end;
1693  // 20150310: start  
1694            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1695  // 20150310: slut  
1696            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1697            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1698            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1723  begin
1723    
1724    Key := #0;    Key := #0;
1725    
1726  end;  end; //End of OnKeyPress
1727    
1728  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1729  const  const
# Line 2063  end; Line 1760  end;
1760    
1761  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1762  var  var
 // 20150309: start  
 //  i:integer;  
1763    i : Integer;    i : Integer;
1764    wrkAntal : String;    wrkAntal : String;
1765    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1766  // 20150309: slut  
1767    
1768  begin  begin
1769      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 then
# Line 2076  begin Line 1771  begin
1771        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1772          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1773          begin          begin
1774  // 20150309: start  
1775            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1776            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1777            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1778            begin            begin
1779              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1780              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1781  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1782  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1783  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1784              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1785            end            end
1786            else     // kun idag            else     // kun idag
1787            begin            begin
# Line 2112  begin Line 1807  begin
1807            begin            begin
1808              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1809            end;            end;
 // 20150309: slut  
1810    
 // 20150310: start  
1811            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1812            begin            begin
1813              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2219  begin Line 1912  begin
1912  end;  end;
1913    
1914  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1915    
1916  begin  begin
1917    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2283  begin Line 1974  begin
1974      01 :      01 :
1975            begin;      // NS            begin;      // NS
1976              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1977              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1978              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1979              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1980              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1981              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2297  begin Line 1988  begin
1988              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1989              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1990              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1991              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1992              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1993              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1994              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1995              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1996              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1997              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 2001  begin
2001              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2002             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
2003              begin              begin
2004                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2005              end              end
2006              else              else
2007              begin              begin
2008                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2009              end;              end;
2010              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2011              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2012              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2013              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2014              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2335  begin Line 2026  begin
2026              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2027              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
2028              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2029              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
2030              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
2031              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
2032              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2033              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2034              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2035            end;            end;
# Line 2354  var Line 2045  var
2045    URLStr : String;    URLStr : String;
2046    pakkestorrelse : String;    pakkestorrelse : String;
2047    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2048    
2049      PakkeshopLabel: TPakkeshopLabel;
2050  begin  begin
2051    if RadioButton1.Checked then    if radioStorPakke.Checked then
2052    begin    begin
2053      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
2054    end;    end;
2055    if RadioButton2.Checked then    if radioLillePakke.Checked then
2056    begin    begin
2057      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2058    end;    end;
2059    
2060    
2061    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
2062    begin    begin
2063       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 2086  begin
2086    begin    begin
2087       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2088    end    end
2089      else if menuIndlevering.Checked then
2090      begin
2091        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2092      end
2093    else    else
2094    begin    begin
2095      exit;      exit;
# Line 2425  begin Line 2124  begin
2124        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2125        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2126        PrintNyLabel := False;        PrintNyLabel := False;
2127  // 20150310: start  
2128        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2129        begin        begin
 // 20150310: slut  
2130          try          try
2131            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2132          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2136  begin
2136          begin          begin
2137            PrintNyLabel := True;            PrintNyLabel := True;
2138          end;          end;
 // 20150310: start  
2139        end;        end;
 // 20150310: slut  
2140       end       end
2141        else if menuIndlevering.Checked then
2142        begin
2143    
2144    
2145    
2146    
2147         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2148         if (Kommentar = 'Ok') then
2149         begin
2150           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2151           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2152           RuteNummer := PakkeshopLabel.Koreliste;
2153    
2154           PrintPakkeshopLabel( PakkeshopLabel );
2155    
2156         end;
2157    
2158    
2159        end
2160      else      else
2161       begin       begin
2162        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2189  begin
2189          PrintNyLabel := True;          PrintNyLabel := True;
2190        end;        end;
2191      end;      end;
2192    
2193    
2194      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2195      begin      begin
2196        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2231  begin
2231    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2232      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2233    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2234    if RadioButton1.Checked then    if radioStorPakke.Checked then
2235    begin    begin
2236      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2237    end;    end;
2238    if RadioButton2.Checked then    if radioLillePakke.Checked then
2239    begin    begin
2240      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2241    end;    end;
# Line 2540  begin Line 2257  begin
2257    if Budlevering1.Checked then    if Budlevering1.Checked then
2258    begin    begin
2259       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2260        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2261        begin        begin
2262          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2263        end;        end;
2264        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2265        begin        begin
2266          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2267        end;        end;
# Line 2571  begin Line 2288  begin
2288    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2289  end;  end;
2290    
2291  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2292  begin  begin
2293    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2294    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2588  pakkeForkertSted : Integer; Line 2305  pakkeForkertSted : Integer;
2305    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2306  begin  begin
2307    if Budlevering1.Checked then    if Budlevering1.Checked then
2308       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2309    
2310    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2311    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2318  begin
2318    end;    end;
2319    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2320    
2321  // 20150306: start  
2322  //  if Sprgefterboghandlernummer1.Enabled and CheckBox1.Checked and (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) then    if Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) ) then
2323    if Sprgefterboghandlernummer1.Enabled and CheckBox1.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) or (pakkeForkertSted > 0) ) then  
 // 20150306: slut  
2324    begin    begin
2325        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2326        begin        begin
# Line 2631  begin Line 2347  begin
2347       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2348       begin       begin
2349          PrintNyLabel := false;          PrintNyLabel := false;
2350  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2351          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2352          MainForm.Color := clRed;          MainForm.Color := clRed;
2353          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2354  // 20150306: slut  
2355       end       end
2356       else       else
2357       begin       begin
# Line 2646  begin Line 2361  begin
2361            PrintNyLabel := true;            PrintNyLabel := true;
2362            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2363            nyFarve := Farve;            nyFarve := Farve;
2364            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2365            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2366            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2367            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2368            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2369            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2370  // 20150213: start  
2371            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2372            begin            begin
2373               PrintNyLabel := false;               PrintNyLabel := false;
2374            end;            end;
2375  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2376            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2377            begin            begin
2378              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2379              MainForm.Color := clRed;              MainForm.Color := clRed;
2380              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2381            end;            end;
2382  // 20150306: slut  
2383         end;         end;
2384         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2385         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2398  begin
2398            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2399            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2400            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2401  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2402            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm            if (PrintNyLabel = false) then  // Hvis vi ikke printer label skal vi vise en 'rød skærm' alarm
2403            begin            begin
2404              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2405              MainForm.Color := clRed;              MainForm.Color := clRed;
2406              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2407            end;            end;
2408  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2409         end;         end;
2410       end;       end;
2411    
# Line 2719  begin Line 2427  begin
2427                end;                end;
2428              end;              end;
2429        01 :  begin;        01 :  begin;
2430               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2431                    // 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
2432                    // 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')
2433                begin                begin
# Line 2733  begin Line 2441  begin
2441                end;                end;
2442              end;              end;
2443        03 :  begin;        03 :  begin;
2444               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2445                    // 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
2446                    // 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')
2447               begin               begin
# Line 2757  begin Line 2465  begin
2465      exit;      exit;
2466    end;    end;
2467    
2468    if Budlevering1.Checked or ( Sprgefterboghandlernummer1.Enabled and CheckBox1.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then    if Budlevering1.Checked or ( Sprgefterboghandlernummer1.Enabled and chkSporgEfterKunde.Checked and ( (RuteNummer = 'Ukendt') or (RuteNummer = 'Ukendt tur') or (RuteNummer = 'Retur ukendt') or (pakkeErScannet > 0) ) and (printNyLabel = false) ) then
2469    begin    begin
2470    end    end
2471    else    else
2472    begin    begin
2473      if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or CheckBox2.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then      if ( (PrinterNavn <> 'Ingen') and (PrintNyLabel or chkAltidPrintLabel.Checked) and (RuteNummer <> 'Ukendt') or (RuteNummer = 'Rutenr')) then
2474      begin      begin
2475        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2476        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2477        begin        begin
2478          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2479        end        end
# Line 2832  begin Line 2540  begin
2540          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2
2541        end;        end;
2542        Canvas.Font.Size := FontSizeKommentar;        Canvas.Font.Size := FontSizeKommentar;
2543    
2544        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
 // 20150304: start  
2545        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);
2546  // 20150304: slut  
2547        Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)        Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)
2548        if SmsKode <> '' then        if SmsKode <> '' then
2549        begin        begin
# Line 2849  begin Line 2557  begin
2557  end;  end;
2558    
2559    
2560  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2561  begin  begin
2562      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2563      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2564  end;  end;
2565    
2566  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2567  begin  begin
2568      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2569      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2570  end;  end;
2571    
2572    
2573  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2574  begin  begin
2575    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2576    begin    begin
2577       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2578    end    end
# Line 2875  begin Line 2583  begin
2583  end;  end;
2584    
2585    
2586  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2587  begin  begin
2588    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2589    begin    begin
2590       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2591    end    end
# Line 2888  begin Line 2596  begin
2596    
2597  end;  end;
2598    
2599  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2600  begin  begin
2601    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2602    begin    begin
2603       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2604    end    end
# Line 2912  begin Line 2620  begin
2620      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2621      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2622      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2623  // 20150317: start  
2624      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2625      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2626      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2627      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2628      begin      begin
2629        // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)        // her skal vi også disable knappen for 01, 02, 03 og 04 (NS, BK, FD og DBK)
2630        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 2944  begin Line 2652  begin
2652          // Tjekker UrlNormal          // Tjekker UrlNormal
2653          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2654          begin          begin
2655            if CheckUrl(UrlNormal) then            if TUtils.CheckUrl(UrlNormal) then
2656            begin            begin
2657              logTekst := 'UrlNormal accepteret: ' + UrlNormal;              logTekst := 'UrlNormal accepteret: ' + UrlNormal;
2658              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2973  begin Line 2681  begin
2681          // Tjekker UrlReturDAO          // Tjekker UrlReturDAO
2682          if PanelValg2.Enabled = true then          if PanelValg2.Enabled = true then
2683          begin          begin
2684            if CheckUrl(UrlReturDAO) then            if TUtils.CheckUrl(UrlReturDAO) then
2685            begin            begin
2686              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;
2687              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3001  begin Line 2709  begin
2709          // Tjekker UrlReturBoghandler          // Tjekker UrlReturBoghandler
2710          if PanelValg3.Enabled = true then          if PanelValg3.Enabled = true then
2711          begin          begin
2712            if CheckUrl(UrlReturBoghandler) then            if TUtils.CheckUrl(UrlReturBoghandler) then
2713            begin            begin
2714              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;
2715              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3029  begin Line 2737  begin
2737          // Tjekker UrlBudlevering          // Tjekker UrlBudlevering
2738          if PanelValg4.Enabled = true then          if PanelValg4.Enabled = true then
2739          begin          begin
2740            if CheckUrl(UrlBudlevering) then            if TUtils.CheckUrl(UrlBudlevering) then
2741            begin            begin
2742              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;
2743              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3057  begin Line 2765  begin
2765          // Tjekker UrlPakkeshoplevering          // Tjekker UrlPakkeshoplevering
2766          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2767          begin          begin
2768            if CheckUrl(UrlPakkeshoplevering) then            if TUtils.CheckUrl(UrlPakkeshoplevering) then
2769            begin            begin
2770              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;
2771              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3085  begin Line 2793  begin
2793          // Tjekker UrlReturPakkeshop          // Tjekker UrlReturPakkeshop
2794          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2795          begin          begin
2796            if CheckUrl(UrlReturPakkeshop) then            if TUtils.CheckUrl(UrlReturPakkeshop) then
2797            begin            begin
2798              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;
2799              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3114  begin Line 2822  begin
2822          if (PanelValg1.Enabled = true)          if (PanelValg1.Enabled = true)
2823          or (PanelValg4.Enabled = true) then          or (PanelValg4.Enabled = true) then
2824          begin          begin
2825            if CheckUrl(UrlManglendeScanninger) then            if TUtils.CheckUrl(UrlManglendeScanninger) then
2826            begin            begin
2827              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;
2828              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3142  begin Line 2850  begin
2850          // Tjekker UrlPakkeshopManglendeScanninger          // Tjekker UrlPakkeshopManglendeScanninger
2851          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2852          begin          begin
2853            if CheckUrl(UrlPakkeshopManglendeScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeScanninger) then
2854            begin            begin
2855              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;
2856              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3170  begin Line 2878  begin
2878          // Tjekker UrlPakkeshopManglendeReturScanninger          // Tjekker UrlPakkeshopManglendeReturScanninger
2879          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2880          begin          begin
2881            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeReturScanninger) then
2882            begin            begin
2883              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;
2884              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3195  begin Line 2903  begin
2903            end;            end;
2904          end;          end;
2905    
2906           // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2907            if PanelValg7.Enabled = true then
2908            begin
2909              if TUtils.CheckUrl(UrlIndleveringsPakke) then
2910              begin
2911                logTekst := 'UrlIndleveringsPakke accepteret: ' + UrlIndleveringsPakke;
2912                SkrivScanningLogFil(logTekst);
2913              end
2914              else
2915              begin
2916                inc(urlFejl);   // Optæller antal fejl
2917                logTekst := 'UrlIndleveringsPakke svarer ikke: ' + UrlIndleveringsPakke;
2918                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2919                if TjekUrls = '1' then
2920                begin
2921                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2922                end;
2923                SkrivScanningLogFil(logTekst);
2924                if TjekUrls = '1' then
2925                begin
2926                  ShowMessage(logTekst);
2927                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2928                  Application.Terminate;
2929                  exit;
2930                end;
2931              end;
2932    
2933              if TUtils.CheckUrl(UrlIndleveringsPakkeManglendeScanninger) then
2934              begin
2935                logTekst := 'UrlIndleveringsPakkeManglendeScanninger accepteret: ' + UrlIndleveringsPakkeManglendeScanninger;
2936                SkrivScanningLogFil(logTekst);
2937              end
2938              else
2939              begin
2940                inc(urlFejl);   // Optæller antal fejl
2941                logTekst := 'UrlIndleveringsPakkeManglendeScanninger svarer ikke: ' + UrlIndleveringsPakkeManglendeScanninger;
2942                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2943                if TjekUrls = '1' then
2944                begin
2945                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2946                end;
2947                SkrivScanningLogFil(logTekst);
2948                if TjekUrls = '1' then
2949                begin
2950                  ShowMessage(logTekst);
2951                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2952                  Application.Terminate;
2953                  exit;
2954                end;
2955              end;
2956            end;
2957    
2958          // Tjekker UrlEKLoverforsel          // Tjekker UrlEKLoverforsel
2959          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2960          begin          begin
2961            if CheckUrl(UrlEKLoverforsel) then            if TUtils.CheckUrl(UrlEKLoverforsel) then
2962            begin            begin
2963              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;
2964              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3223  begin Line 2983  begin
2983            end;            end;
2984          end;          end;
2985    
2986  // 20150330: start  
2987          // Tjekker UrlEKLoverforselPakkeshop          // Tjekker UrlEKLoverforselPakkeshop
2988          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2989          begin          begin
2990            if CheckUrl(UrlEKLoverforselPakkeshop) then            if TUtils.CheckUrl(UrlEKLoverforselPakkeshop) then
2991            begin            begin
2992              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;
2993              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3251  begin Line 3011  begin
3011              end;              end;
3012            end;            end;
3013          end;          end;
3014  // 20150330: slut  
3015    
3016          // Tjekker UrlFindPakketype          // Tjekker UrlFindPakketype
3017          if CheckUrl(UrlFindPakketype) then          if TUtils.CheckUrl(UrlFindPakketype) then
3018          begin          begin
3019            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;
3020            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 3279  begin Line 3039  begin
3039          end;          end;
3040    
3041          // Tjekker UrlSendPrograminfo          // Tjekker UrlSendPrograminfo
3042          if CheckUrl(UrlSendPrograminfo) then          if TUtils.CheckUrl(UrlSendPrograminfo) then
3043          begin          begin
3044            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;
3045            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 3316  begin Line 3076  begin
3076    
3077  end;  end;
3078    
 function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  
 var  
    LocalFileTime: TFileTime;  
    SystemTime: TSystemTime;  
 begin  
    FileTimeToLocalFileTime(FileTime, LocalFileTime) ;  
    FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
    Result := SystemTimeToDateTime(SystemTime) ;  
 end;  
   
3079  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
3080  var  var
3081    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 3092  begin
3092      repeat      repeat
3093        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
3094        begin        begin
3095    
3096          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
3097          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
3098          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
3099          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
3100          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
3101          // (æ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 3381  begin Line 3132  begin
3132    end;    end;
3133  end;  end;
3134    
3135  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
3136  begin  begin
3137    PakkeshopStregkode := '';    PakkeshopStregkode := '';
3138    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
3139    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
3140    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
3141    BoghandlerStregkode := '';    BoghandlerStregkode := '';
3142    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 3154  begin
3154  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
3155    if Farve <> '' then    if Farve <> '' then
3156    begin    begin
3157       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
3158  // 20150312: start  // 20150312: start
3159  (*  (*
3160    end    end
# Line 3477  end; Line 3228  end;
3228    
3229  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
3230  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;  
 *)  
3231  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
3232  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
3233       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
3234       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
3235       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
3236  // 20150311: slut  
3237    
3238    
3239  end;  end;
3240    
3241  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3514  var Line 3252  var
3252    BoghandlerNavn : String;    BoghandlerNavn : String;
3253    Koreliste : String;    Koreliste : String;
3254    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3255    SmsKode : String;    SmsKode : String;
3256    DBKbane : String;    DBKbane : String;
3257    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 3273  begin
3273      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
3274      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
3275      MainForm.Color := clRed;      MainForm.Color := clRed;
3276      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
3277    end    end
3278    else    else
3279    begin    begin
3280      Falsk := False;      Falsk := False;
3281      Sand := True;  
3282      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
3283      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
3284      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 3298  var
3298    BoghandlerNavn : String;    BoghandlerNavn : String;
3299    Koreliste : String;    Koreliste : String;
3300    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3301    SmsKode : String;    SmsKode : String;
3302    DBKbane : String;    DBKbane : String;
3303    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 3306  begin
3306    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
3307    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
3308    Falsk := False;    Falsk := False;
3309    Sand := True;  
3310    
3311    if (Printer.Printers.Count = 0) then    if (Printer.Printers.Count = 0) then
3312    begin    begin
# Line 3605  begin Line 3341  begin
3341    end;    end;
3342  end;  end;
3343    
3344  {  
  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;  
3345    
3346  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3347  const  const
# Line 3643  var Line 3350  var
3350   tekst, filversion : String;   tekst, filversion : String;
3351  begin  begin
3352    
3353    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
3354    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';
3355    
3356    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 3372  begin
3372          end          end
3373          else          else
3374          begin          begin
3375            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3376          end;          end;
3377      end      end
3378      else      else
3379      begin      begin
3380        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3381      end;      end;
3382    end;    end;
3383    
# Line 3738  begin Line 3445  begin
3445    
3446    if FileExists(fileName) then    if FileExists(fileName) then
3447    begin    begin
3448      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3449      begin      begin
3450        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3451        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3469  begin
3469    
3470    if FileExists(fileName) then    if FileExists(fileName) then
3471    begin    begin
3472      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3473      begin      begin
3474        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3475        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3476      end      end
3477      else      else
3478      begin      begin
3479        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3480      end;      end;
3481    end    end
3482    else    else
# Line 3778  begin Line 3485  begin
3485    end;    end;
3486  end;  end;
3487    
3488    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3489    begin
3490      Scanningtype := '7';
3491      NulstilAutomatiskValg();
3492      InitIndleveringskode();
3493    end;
3494    
3495  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3496  begin  begin
3497    
3498    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3499    begin    begin
3500       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3501    end    end
3502    else    else
3503    begin    begin
3504       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3505    end;    end;
3506    
3507    
# Line 3810  end; Line 3524  end;
3524  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3525  begin  begin
3526        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3527        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3528        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3529        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3530        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3531        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3532        CheckBox1.Enabled := true;  
3533        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3534        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3535        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3536        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3537        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3538        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3539        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3540        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3541        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3542        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3543        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3544        ListBox1.Visible := true;        ListBox1.Visible := true;
3545        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3546        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3547        InitLillePakke();        InitLillePakke();
3548        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3549        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3557  procedure TMainForm.InitReturFraDao();
3557  begin  begin
3558        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3559        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3560        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3561        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3562        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3563        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3564        CheckBox1.Enabled := false;  
3565        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3566        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3567        CheckBox2.Checked := false;  
3568        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3569        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3570        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3571        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3572        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3573        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3574        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3575        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3576        ListBox1.Visible := true;        ListBox1.Visible := true;
3577        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3578        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3579        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3580        InitLillePakke();        InitLillePakke();
3581  end;  end;
3582    
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3584  procedure TMainForm.InitReturFraKunde();
3584  begin  begin
3585        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3586        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3587        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3588        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3589        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3590        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3591        CheckBox1.Enabled := false;  
3592        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3593        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3594        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3595        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3596        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3597        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3598        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3599        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3600        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3601        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3602        ListBox1.Visible := true;        ListBox1.Visible := true;
3603        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3604        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3605        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3606        InitLillePakke();        InitLillePakke();
3607  end;  end;
3608    
# Line 3897  procedure TMainForm.InitDirektelevering( Line 3610  procedure TMainForm.InitDirektelevering(
3610  begin  begin
3611        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3612        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3613        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3614        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3615        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3616        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3617        CheckBox1.Enabled := false;  
3618        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3619        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3620        CheckBox2.Checked := false;  
3621        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3622        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3623        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3624        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3625        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3626        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3627        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3628        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3629        ListBox1.Visible := true;        ListBox1.Visible := true;
3630        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3631        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3632        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3633        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3634        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3635        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3636        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3637        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
# Line 3933  procedure TMainForm.InitPakkeshopleverin Line 3646  procedure TMainForm.InitPakkeshopleverin
3646  begin  begin
3647        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3648        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3649        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3650        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3651        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3652        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3653        CheckBox1.Enabled := false;  
3654        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3655        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3656        CheckBox2.Checked := false;  
3657        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3658        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3659        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3660        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3661        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3662        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3663        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3664        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3665        ListBox1.Visible := true;        ListBox1.Visible := true;
3666        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3667        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3668        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3669  // 20150330: start  
3670  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3671        EKLoverforsel.Enabled := true;  
 // 20150330: slut  
3672        InitLillePakke();        InitLillePakke();
3673        IndlesScanningLogFil();        IndlesScanningLogFil();
3674        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3971  procedure TMainForm.InitReturFraPakkesho Line 3683  procedure TMainForm.InitReturFraPakkesho
3683  begin  begin
3684        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3685        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3686        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3687        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3688        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3689        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3690        CheckBox1.Enabled := false;  
3691        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3692        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3693        CheckBox2.Checked := false;  
3694        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3695        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3696        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3697        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3698        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3699        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3700        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3701        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3702        ListBox1.Visible := true;        ListBox1.Visible := true;
3703        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3704        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3705        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3706        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3707        InitLillePakke();        InitLillePakke();
3708        IndlesScanningLogFil();        IndlesScanningLogFil();
3709        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4011  end; Line 3723  end;
3723    
3724  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3725  begin  begin
3726          menuIndlevering.Checked := true;
3727        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3728        Returpakkerfrapakkeshop1.Checked := true;  
3729        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3730        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3731        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3732        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3733        CheckBox1.Enabled := false;  
3734        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3735        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3736        CheckBox2.Checked := false;  
3737        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3738        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3739        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3740          chkSporgEfterKunde.Checked := false;
3741    
3742    
3743    
3744        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3745        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3746        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3747        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3748        ListBox1.Visible := true;        ListBox1.Visible := true;
3749        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3750        DownloadButton01.Enabled := false;  
3751        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3752        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3753          BtnEKLoverforsel.Enabled := false;
3754        InitLillePakke();        InitLillePakke();
3755        IndlesScanningLogFil();        IndlesScanningLogFil();
3756        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4057  end; Line 3774  end;
3774    
3775  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3776  begin  begin
3777    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3778    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3779  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3780  end;  end;
3781    
3782  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3783  begin  begin
3784    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3785    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3786  // 20150310: start  // 20150310: start
3787  //  Stregkode := '';  //  Stregkode := '';
3788  // 20150310: slut  // 20150310: slut
3789  end;  end;
3790    
 /// <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]]);  
3791    
     // 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;  
3792    
3793  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3794  begin  begin
# Line 4163  end; Line 3813  end;
3813    
3814  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3815  begin  begin
 // 20150317: start  
3816    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3817    begin    begin
3818       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3825  begin
3825       end;       end;
3826       exit;       exit;
3827    end;    end;
 // 20150317: slut  
3828    
3829    if Smpakker1.Checked then    if Smpakker1.Checked then
3830       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4185  begin Line 3833  begin
3833       end       end
3834       else       else
3835       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3836         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3837       end;       end;
3838    if Storepakker1.Checked then    if Storepakker1.Checked then
3839       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4197  begin Line 3842  begin
3842       end       end
3843       else       else
3844       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3845         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3846       end;       end;
3847  end;  end;
3848    
# Line 4217  begin; Line 3859  begin;
3859    CheckCode();    CheckCode();
3860  end;  end;
3861    
3862  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3863  var  var
3864    WebSvar : String;    WebSvar : String;
3865    URLStr : String;    URLStr : String;
# Line 4227  var Line 3869  var
3869    status, kommentar : String;    status, kommentar : String;
3870    
3871  begin  begin
3872      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3873    
3874      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');
3875      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
# Line 4290  begin Line 3932  begin
3932        end;        end;
3933      end;      end;
3934    
3935      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3936    
3937      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
3938    
# Line 4307  begin Line 3949  begin
3949           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3950         end;         end;
3951         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3952         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3953      end;      end;
3954    
3955  end;  end;
# Line 4331  begin Line 3973  begin
3973    else    else
3974      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3975  }  }
3976    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3977    
3978    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3979    CheckCode();    CheckCode();
# Line 4339  end; Line 3981  end;
3981    
3982  end;  end;
3983    
 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;  
3984    
3985  //  //
3986  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 4458  begin
4458    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
4459  end;  end;
4460    
4461  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4462  begin  begin
4463      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4464      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
4465  end;  end;
4466    
4467  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4468  const  const
4469    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4470    
# Line 4870  begin Line 4473  begin
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.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4477  begin  begin
4478      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4479      begin      begin
# Line 4879  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  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
4486    // ToDo: PrintPakkeshopLabel()
4487    procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4488  var  var
4489    S2: string;    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4490      Angle: integer;
4491      gMode: integer;
4492      Dirigering: string;
4493    
4494    begin
4495        with Printer do
4496        begin
4497          BeginDoc();
4498    
4499    
4500          Canvas.Font.Size := 16;
4501          Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4502    
4503    
4504    
4505          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4506          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4507          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4508    
4509    
4510          Canvas.Font.Size := 9;
4511          Canvas.TextOut(110, 240, 'Pakkeshop:');
4512          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4513          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4514          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4515    
4516          Canvas.TextOut(350, 240, 'Afsender:');
4517          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4518          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4519          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4520    
4521          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4522          if ( PakkeshopLabel.Koreliste <> '') then
4523          begin
4524            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4525          end;
4526    
4527    
4528          Canvas.Font.Size := 12;
4529          Canvas.TextOut(15, 370, Dirigering);
4530    
4531    
4532    
4533    
4534    
4535          //Tegn adskillelses linier
4536          Canvas.Pen.Width := 2;
4537          //Øverste linie
4538          Canvas.MoveTo(20,80);
4539          Canvas.LineTo(600,80);
4540    
4541          // Midterste linie
4542          Canvas.MoveTo( 20, 240);
4543          Canvas.LineTo(600, 240);
4544    
4545          //Nederste linie
4546          Canvas.MoveTo( 20, 370);
4547          Canvas.LineTo(600, 370);
4548    
4549    
4550          //Tegn skrå streger over afsender
4551          Canvas.Pen.Width := 1;
4552          Canvas.MoveTo(600, 250);
4553          Canvas.LineTo(350, 360);
4554          Canvas.MoveTo(600, 360);
4555          Canvas.LineTo(350, 250);
4556    
4557    
4558    
4559    
4560          // Resten af rutinen vedr genering og placering af Barcode
4561    
4562          BarCode.BarCodeType := bcCode128;
4563          BarCode.Code128Subset := csCodeC;
4564          BarCode.Code := PakkeshopLabel.Stregkode;
4565          BarCode.Validate(True);
4566    
4567          //Start X-formation
4568          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4569          GetWorldTransform(Canvas.Handle, XFormOld);
4570    
4571          Angle := 270;
4572          XForm.eM11 := Cos(DegToRad(Angle));
4573          XForm.eM12 := Sin(DegToRad(Angle));
4574          XForm.eM21 := -Sin(DegToRad(Angle));
4575          XForm.eM22 := Cos(DegToRad(Angle));
4576          XForm.eDx := 0;
4577          XForm.eDy := 0;
4578    
4579          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4580          SetWorldTransform(Canvas.Handle, XForm);
4581    
4582          // PaintToCanvasSize arbejder i Inches
4583          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4584          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4585    
4586          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4587    
4588    
4589          SetWorldTransform(Canvas.Handle, XFormOld);
4590          SetGraphicsMode(Canvas.Handle, gMode);
4591    
4592          EndDoc();
4593        end;
4594    
4595    
4596    end;
4597    
4598    function GetPixelsPerInchX(): Integer;
4599  begin  begin
4600    Result  := 0;    Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
   S2 := S + Border;  
   repeat  
     SetLength(A, Length(A) + 1);  
     a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);  
     Delete(S2, 1,Length(a[Result] + Border));  
     Inc(Result);  
   until S2 = '';  
4601  end;  end;
4602    
4603    function GetPixelsPerInchY(): Integer;
4604    begin
4605      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
4606    end;
4607    
4608    
4609  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4610  var  var
4611    WebSvar : String;    WebSvar : String;
# Line 4905  var Line 4618  var
4618    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4619    pakketyper : TStrings;    pakketyper : TStrings;
4620    antlin : Integer;    antlin : Integer;
4621  // 20150306: start  
4622    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4623  // 20150306: slut  
4624    XmlFelter : TStrings;    XmlFelter : TStrings;
4625    
4626   begin   begin
# Line 4927  var Line 4640  var
4640          StedKode := Sted;          StedKode := Sted;
4641        end;        end;
4642    
4643  // 20150310: start  
4644  (*  
4645      if Returpakkerfrapakkeshop1.Checked then      if (Scanningtype = '7') then
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
      end  
     else if Pakkeshoplevering1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);  
      end  
     else if Pakkernormal1.Checked then  
4646       begin       begin
4647        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4648       end       end
4649      else      else if (Scanningtype = '6') then
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
4650       begin       begin
4651        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4652       end       end
4653      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4654       begin       begin
4655        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4656       end       end
4657      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4658       begin       begin
# Line 4989  var Line 4689  var
4689      try      try
4690        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4691    
4692  // 20150206: start  
4693        antlin := 0;        antlin := 0;
4694        antlinIdag := 0;        antlinIdag := 0;
4695        antlinSenere := 0;        antlinSenere := 0;
4696  // 20150306: slut  
       antalFelterFundet := 0;  
4697        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4698            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4699            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5026  var Line 4725  var
4725        antalFelterFundet := 0;        antalFelterFundet := 0;
4726        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4727        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4728  // 20150206: start  
 //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4729        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4730        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4731        begin        begin
4732          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4733        end;        end;
4734        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4735  // 20150306: slut  
4736        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4737        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4738            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
# Line 5078  var Line 4776  var
4776  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;
4777                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4778                    begin                    begin
4779                      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
4780                    end                    end
4781                    else                    else
4782                    begin                    begin
4783                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4784                    end;                    end;
4785  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4786                  end;                  end;
4787              end;              end;
4788              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
# Line 5110  var Line 4807  var
4807    
4808          // Free up the list object          // Free up the list object
4809        pakketyper.Free;        pakketyper.Free;
 // 20150306: start  
4810  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');  //      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.');
4811        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4812        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4815  var
4815        end;        end;
4816        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4817        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4818        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4819        begin        begin
4820          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4823  var
4823        begin        begin
4824          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4825        end;        end;
 // 20150309: slut  
4826    
 // 20150310: start  
4827        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4828        begin        begin
4829          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4902  var
4902            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4903          end;          end;
4904        end;        end;
 // 20150310: slut  
4905    
4906      except on e:exception do      except on e:exception do
4907        begin        begin
# Line 5272  end; Line 4963  end;
4963  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4964  var  var
4965     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4966     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4967     imorgenYmd : string;     imorgenYmd : string;
4968     logFilnavn : string;     logFilnavn : string;
4969      error : Integer;     //error : Integer;
4970    
4971  begin  begin
4972    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 5058  begin
5058          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5059          S := buffer;          S := buffer;
5060          SetLength(A,0);          SetLength(A,0);
5061          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5062          if (length(A) < 2) then          if (length(A) < 2) then
5063          begin          begin
5064            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5065          end;          end;
5066            if (length(A) > 1) then            if (length(A) > 1) then
5067            begin            begin
# Line 5446  begin Line 5135  begin
5135          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5136          S := buffer;          S := buffer;
5137          SetLength(A,0);          SetLength(A,0);
5138          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5139          if (length(A) < 3) then          if (length(A) < 3) then
5140          begin          begin
5141            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5142          end;          end;
5143          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
5144          begin          begin
# Line 5541  begin Line 5230  begin
5230    result := svar;    result := svar;
5231  end;  end;
5232    
5233    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
5234    begin
5235      //ShowMessage('Ændring ikke tilladt');
5236      // Her skal komme en 'rød skærm' alarm
5237      PlaySound(PWideChar(AlarmLyd));
5238      MainForm.Color := clRed;
5239    
5240    
5241      RuteNummerST.Caption := '';
5242      BoghandlerNavnST.Caption := '';
5243      btnNulstil.Visible := true;
5244    
5245      if (strMessage <> '') then
5246      begin
5247        ListBox1.Items.Insert(0, strMessage);
5248        KommentarST.Caption := strMessage;
5249      end;
5250    
5251    end;
5252    
5253  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
5254  var  var
5255     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5622  procedure TMainForm.Scanogstjekkoden1Cli Line 5331  procedure TMainForm.Scanogstjekkoden1Cli
5331  begin  begin
5332    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
5333    begin    begin
5334       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
5335    end    end
5336    else    else
5337    begin    begin
5338       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
5339    end;    end;
5340  end;  end;
5341    
5342  function TMainForm.AdobeReaderExists: Boolean;  
5343  var  
5344    AReg: TRegistry;  
5345  begin  
5346    result:= false;  
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
 end;  
5347    
5348  procedure TMainForm.CheckPrintQue(tjektype : string);  procedure TMainForm.CheckPrintQue(tjektype : string);
5349  type  type
# Line 5745  begin Line 5448  begin
5448    end;    end;
5449  end;  end;
5450    
 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  
5451    
5452  end.  end.
5453    

Legend:
Removed from v.2650  
changed lines
  Added in v.2700

  ViewVC Help
Powered by ViewVC 1.1.20