/[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 2683 by torben, Wed Aug 26 19:56:26 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, Registry, 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 56  type Line 61  type
61      DownloadButton03: TButton;      DownloadButton03: 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;      EKLoverforsel: 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    
96    
97      function Sto_GetFmtFileVersion(const FileName: String = ''): String;
98    
   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;  
99    function getProddato() : TDate;    function getProddato() : TDate;
100    function getProddag() : String;    function getProddag() : String;
101    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
# Line 99  type Line 103  type
103    function SavePChar(p: PChar): PChar;    function SavePChar(p: PChar): PChar;
104    function AdobeReaderExists(): Boolean;    function AdobeReaderExists(): Boolean;
105    function FileTime2DateTime(FileTime: TFileTime): TDateTime;    function FileTime2DateTime(FileTime: TFileTime): TDateTime;
   function split(input: string; schar: Char; s: Integer): string;  
106    function CheckUrl(url:string):boolean;    function CheckUrl(url:string):boolean;
107    
108    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
# Line 113  type Line 116  type
116    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
117    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
118    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
119    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
120    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
121    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
122    procedure Pakkernormal1Click(Sender: TObject);    procedure Pakkernormal1Click(Sender: TObject);
123    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
124    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
# Line 143  type Line 146  type
146    procedure UploadButton01Click(Sender: TObject);    procedure UploadButton01Click(Sender: TObject);
147    procedure DownloadButton03Click(Sender: TObject);    procedure DownloadButton03Click(Sender: TObject);
148    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
149    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
150    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
151    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
152    procedure InitReturFraDao();    procedure InitReturFraDao();
# Line 154  type Line 157  type
157    procedure InitIndleveringskode();    procedure InitIndleveringskode();
158    
159    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
160    procedure CheckBox2Click(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
161    procedure EKLoverforselClick(Sender: TObject);    procedure EKLoverforselClick(Sender: TObject);
162    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
163    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
164    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
165    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
166    procedure CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
167    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure Automatisktjekkodestyring1Click(Sender: TObject);
168    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
169    procedure Automatiskvalg1Click(Sender: TObject);    procedure Automatiskvalg1Click(Sender: TObject);
# Line 172  type Line 174  type
174    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
175    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
176    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
177      procedure PanelValg7Click(Sender: TObject);
178    
179    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
180    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
181    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
182    procedure TjekkerUrls();    procedure TjekkerUrls();
 // 20150310: start  
   procedure RoundCornerOf(Control: TWinControl);  
183    
184      procedure PanelValg7Click(Sender: TObject);    procedure menuIndleveringClick(Sender: TObject);
185  // 20150310: slut  
186      procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
187      procedure CheckPrintQue(tjektype : string);
188    
189    
190    private    private
191      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 193  type
193      SkrivLog : String;      SkrivLog : String;
194      Sted : String;      Sted : String;
195      StedNavn : String;      StedNavn : String;
196      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlEKLoverforsel : String;
197  // 29150330: start  // 29150330: start
198      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
199  // 20150330: slut  // 20150330: slut
# Line 196  type Line 201  type
201      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
202      ScanTjekkode : String;      ScanTjekkode : String;
203      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
204      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;
205      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;
206      LabelType : integer;      LabelType : integer;
207      AlarmLyd : String;      AlarmLyd : String;
208      ScannetOkLyd : String;      ScannetOkLyd : String;
209      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
210  // 20150317: start  
211      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
212  // 20150317: slut  
213      PrinterNavn : String;      PrinterNavn : String;
214      TjekPrinter : String;      TjekPrinter : String;
215      XPosRute : integer;      XPosRute : integer;
# Line 243  type Line 248  type
248      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
249      TjekUrls : String;      TjekUrls : String;
250    
251            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      Barcode : TStBarcode;
252    
253    
254      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 = '');
255      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 261  type
261      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
262      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
263      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
264        procedure VisAlarmSkaerm(strMessage: string);
265    
266    public    public
267      { Public declarations }      { Public declarations }
268    end;    end;
269    
270          function GetPixelsPerInchX(): Integer;
271        function GetPixelsPerInchY(): Integer;
272    
273  var  var
274    MainForm: TMainForm;    MainForm: TMainForm;
275    
# Line 273  var Line 283  var
283  implementation  implementation
284  {$R *.dfm}  {$R *.dfm}
285    
 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;  
286    
287  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
288  begin  begin
# Line 298  begin Line 291  begin
291      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
292  // 20150309: slut  // 20150309: slut
293    
294        Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
295    
296      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
297      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
298      begin      begin
# Line 394  begin Line 389  begin
389    
390      StartScreen();      StartScreen();
391      MainForm.Caption := Titel;      MainForm.Caption := Titel;
392      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
393      MainForm.Farve := Farve;      MainForm.Farve := Farve;
394      MainForm.Titel := Titel;      MainForm.Titel := Titel;
395      MainForm.Url := Url;      MainForm.Url := Url;
# Line 409  begin Line 404  begin
404      else      else
405        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
406    
407      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
408      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
409      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
410    
411      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
412      begin      begin
413        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
414        begin        begin
415          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
416          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
417          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
418        end        end
419        else        else
420        begin        begin
421          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
422          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
423          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
424        end;        end;
425      end;      end;
426    
427      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
428      begin      begin
429        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
430        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
431      end;      end;
432    
# Line 454  begin Line 449  begin
449          end          end
450          else          else
451          begin          begin
452            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
453          end;          end;
454          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
455        end        end
456        else        else
457        begin        begin
458          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
459          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
460        end;        end;
461      end;      end;
# Line 472  begin Line 467  begin
467    
468    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
469    begin    begin
470       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
471    end    end
472    else    else
473    begin    begin
474       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
475    end;    end;
476    
477  end;  end;
# Line 490  procedure TMainForm.Automatisktjekkodest Line 485  procedure TMainForm.Automatisktjekkodest
485  begin  begin
486    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
487    begin    begin
488       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
489       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
490    end    end
491    else    else
492    begin    begin
493       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
494       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
495    end;    end;
496    
# Line 503  end; Line 498  end;
498    
499  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
500  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;  
 *)  
501  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
502  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
503       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
504       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
505       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
506  end;  end;
507    
508  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
# Line 531  const Line 510  const
510    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
511  var  var
512    printerInd : integer;    printerInd : integer;
   i : Integer;  
 // 20150310: start  
513    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
514    
515  begin  begin
516    // Initierer nogle variabler    // Initierer nogle variabler
# Line 542  begin Line 518  begin
518    Application.ShowHint := True;    Application.ShowHint := True;
519    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
520    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
521  // 20150306: start  
522    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
523  // 20150306: slut  
524  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
525    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
526    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
527    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
528    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
529    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
530    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
531    
532    // 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
533    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 579  begin Line 554  begin
554      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');
555      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');
556      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');
557  // 20150330: start  
558      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');
559  // 20150330: slut  
560      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');
561      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');
562      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');
563      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');
564    
565        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
566    
567    
568      LabelType := ReadInteger('Settings','LabelType',1);      LabelType := ReadInteger('Settings','LabelType',1);
569      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
570      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 576  begin
576      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
577      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
578      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
579    
580      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
581      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
582    
583        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
584        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
585    
586    
587      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
588      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
589      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 593  begin
593      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
594      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
595      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
596  // 20150317: start  
597      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
598  // 20150317: slut  
599      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
600      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
601      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
602    
603      if (SkrivLog = '1') then      if (SkrivLog = '1') then
604      begin      begin
605        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
606        try        try
607          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
608          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
# Line 711  begin Line 696  begin
696    
697      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
698      begin      begin
699        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
700        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
701      end      end
702      else      else
703      begin      begin
704        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
705        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
706      end;      end;
707    
708      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
709      begin      begin
710        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
711        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
712      end      end
713      else      else
714      begin      begin
715        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
716        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
717      end;      end;
718    
719      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
720      begin      begin
721        Automatisktjekkodestyring1.Checked := true;        Automatisktjekkodestyring1.Checked := true;
722        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
723        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
724      end;      end;
725    
# Line 760  begin Line 745  begin
745      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
746      // *************************** //      // *************************** //
747    
748    {$IfDef STED_BK}
749        SpecialVersionSted := 'BK';
750    {$EndIf}
751    {$IfDef STED_DBK}
752        SpecialVersionSted := 'DBK';
753    {$EndIf}
754    {$IfDef STED_FD}
755        SpecialVersionSted := 'FD';
756    {$EndIf}
757    {$IfDef STED_NS}
758        SpecialVersionSted := 'NS';
759    {$EndIf}
760    
761    
762      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
763      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
764      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 774  begin
774      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
775      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
776    
 // 20150313: start  
777      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
778      begin      begin
779         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 786  begin Line 784  begin
784         SpecialVersionSted := '03';         SpecialVersionSted := '03';
785         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
786      end;      end;
 // 20150313: slut  
787    
788      if SpecialVersionSted = 'BK' then      if SpecialVersionSted = 'BK' then
789      begin      begin
# Line 826  begin Line 823  begin
823        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
824        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
825        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
826          PanelValg7.Enabled := false;
827          PanelValg7.Font.Color := clInactiveCaption;
828    
829       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
830        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
831        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
832  // 20150317: start  
833        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
834        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
835  // 20150317: slut  
836        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
837        begin        begin
838           Scanningtype := '1';           Scanningtype := '1';
# Line 862  begin Line 862  begin
862        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
863        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
864        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
865          PanelValg7.Enabled := false;
866          PanelValg7.Font.Color := clInactiveCaption;
867       // 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
868  // 20150317: start  
869        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
870  // 20150317: slut  
871        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
872        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
873        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 957  begin Line 959  begin
959             RutenummerST.Caption := '';             RutenummerST.Caption := '';
960             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
961             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
962             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
963             exit;             exit;
964          end;          end;
965      end      end
# Line 1000  begin Line 1002  begin
1002      if Pakketype = '1' then      if Pakketype = '1' then
1003      begin      begin
1004        Storepakker1.Checked := true;        Storepakker1.Checked := true;
1005        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
1006      end      end
1007      else      else
1008      begin      begin
1009        Smpakker1.Checked := true;        Smpakker1.Checked := true;
1010        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
1011      end;      end;
1012    
1013      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 1047  begin
1047        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
1048      end;      end;
1049    
1050  // 20150317: start  
1051      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
1052      begin      begin
1053        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
1054      end;      end;
1055  // 20150317: slut  
1056    
1057      if (PrinterNavn <> '') then      if (PrinterNavn <> '') then
1058      begin      begin
# Line 1083  begin Line 1085  begin
1085          InitBladhus();          InitBladhus();
1086        end;        end;
1087    
1088  // 20150310: start  
1089      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1090      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1091    
# Line 1124  begin Line 1126  begin
1126      end;      end;
1127    
1128      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1129    
1130      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1131      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion(''));
1132    
1133  end;  end;
1134    
# Line 1145  var Line 1146  var
1146    BoghandlerNavn : String;    BoghandlerNavn : String;
1147    Koreliste : String;    Koreliste : String;
1148    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1149    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1150    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1151    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1170  begin
1170      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1171      numberString := ClipboardData;      numberString := ClipboardData;
1172      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1173  // 20150311: start  
1174  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1175      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1176      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1177      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1186  begin Line 1186  begin
1186      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1187      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1188      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1189  // 20150311: slut  
1190      begin      begin
1191        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1192        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1199  begin Line 1199  begin
1199    
1200    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1201    begin    begin
 // 20150306: start  
1202      if (Length(Trim(Stregkode)) = 0) then      if (Length(Trim(Stregkode)) = 0) then
1203      begin      begin
1204        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1205        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;  
1206        exit;        exit;
1207      end;      end;
 // 20150306: slut  
1208    
 // 20150311: start  
1209      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1210      begin      begin
1211         PakkeshopNulstil.Click();         btnNulstil.Click();
1212         exit;         exit;
1213      end;      end;
1214    
1215      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1216      begin      begin
1217         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1218  // 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  
1219         exit;         exit;
1220      end;      end;
1221    
1222      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1223      begin      begin
1224         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1225         begin         begin
1226            InitLillePakke();            InitLillePakke();
1227         end         end
1228         else         else
1229         begin         begin
1230          //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;  
1231         end;         end;
1232         Stregkode := '';         Stregkode := '';
1233         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1236  begin
1236    
1237      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1238      begin      begin
1239         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1240         begin         begin
1241            InitStorPakke();            InitStorPakke();
1242         end         end
1243         else         else
1244         begin         begin
1245          //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;  
1246         end;         end;
1247         Stregkode := '';         Stregkode := '';
1248         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1294  begin Line 1251  begin
1251    
1252      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1253      begin      begin
1254         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1255         begin         begin
1256           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1257           begin           begin
1258            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1259           end           end
1260           else           else
1261           begin           begin
1262            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1263           end;           end;
1264         end         end
1265         else         else
1266         begin         begin
1267          //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;  
1268         end;         end;
1269         Stregkode := '';         Stregkode := '';
1270         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1273  begin
1273    
1274      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
1275      begin      begin
1276        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1277        begin        begin
1278           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1279           begin           begin
1280            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1281           end           end
1282           else           else
1283           begin           begin
1284            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1285           end;           end;
1286        end        end
1287        else        else
1288        begin        begin
1289          //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;  
1290        end;        end;
1291        Stregkode := '';        Stregkode := '';
1292        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1301  begin
1301         end         end
1302         else         else
1303         begin         begin
1304          //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;  
1305         end;         end;
1306         Stregkode := '';         Stregkode := '';
1307         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1308         exit;         exit;
1309      end;      end;
1310    
1311  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1312      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  
1313      begin      begin
1314         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1315         begin         begin
# Line 1395  begin Line 1317  begin
1317         end         end
1318         else         else
1319         begin         begin
1320          //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;  
1321         end;         end;
1322         Stregkode := '';         Stregkode := '';
1323         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1332  begin
1332         end         end
1333         else         else
1334         begin         begin
1335          //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;  
1336         end;         end;
1337         Stregkode := '';         Stregkode := '';
1338         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1347  begin
1347         end         end
1348         else         else
1349         begin         begin
1350          //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;  
1351         end;         end;
1352         Stregkode := '';         Stregkode := '';
1353         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1362  begin
1362         end         end
1363         else         else
1364         begin         begin
1365          //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;  
1366         end;         end;
1367         Stregkode := '';         Stregkode := '';
1368         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1377  begin
1377         end         end
1378         else         else
1379         begin         begin
1380          //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;  
1381         end;         end;
1382         Stregkode := '';         Stregkode := '';
1383         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1392  begin
1392         end         end
1393         else         else
1394         begin         begin
1395          //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;  
1396         end;         end;
1397         Stregkode := '';         Stregkode := '';
1398         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1399         exit;         exit;
1400      end;      end;
1401  // 20150311: slut  
1402    
1403      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1404      begin      begin
# Line 1597  begin Line 1453  begin
1453          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)
1454          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then
1455      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1456         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1457         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  
1458         exit;         exit;
1459      end;      end;
1460    
# Line 1626  begin Line 1470  begin
1470              end;              end;
1471            end            end
1472        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1473  (*  
       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  
 *)  
1474        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1475            begin            begin
1476              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1661  begin Line 1488  begin
1488              end;              end;
1489            end            end
1490        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1491  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1492        else        else
1493            begin   // Her skal komme en alarm og rød skærm            begin
1494               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1495               List1msg := 'Pakken kan ikke scannes med automatisk valg';              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1496               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  
1497               exit;               exit;
1498            end;            end;
1499        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1500      end      end
1501      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1502      begin      begin
1503        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1504        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  
1505        exit;        exit;
1506      end;      end;
1507    
# Line 1714  begin Line 1509  begin
1509      begin      begin
1510        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1511        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;  
1512    
1513  // 20150311: start          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
1514    
1515      if PakkeshopNulstil.Visible then          exit;
1516      begin        end;
        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;  
   
     if StregKode = 'Lille pakke' then  
     begin  
        InitLillePakke();  
        exit;  
     end;  
   
     if StregKode = 'Stor pakke' then  
     begin  
        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;  
1517      end;      end;
1518    
     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  
1519    
1520    
1521      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1522      begin      begin
1523        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1524        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1525        begin        begin
1526          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1527          begin          begin
1528              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1529              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1530          end;          end;
1531        end;        end;
# Line 1812  begin Line 1537  begin
1537             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1538             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1539             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1540             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1541             Stregkode := '';             Stregkode := '';
1542             InitScreen();             InitScreen();
1543        end        end
# Line 1824  begin Line 1549  begin
1549             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1550             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1551             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1552             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1553             Stregkode := '';             Stregkode := '';
1554             InitScreen();             InitScreen();
1555        end        end
# Line 1836  begin Line 1561  begin
1561              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1562              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1563              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1564  // 20150317: start  
1565              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1566  // 20150317: slut  
1567             end             end
1568            else            else
1569             begin             begin
1570                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;  
1571             end;             end;
1572            Stregkode := '';            Stregkode := '';
1573            InitScreen();            InitScreen();
# Line 1861  begin Line 1580  begin
1580             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1581             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1582             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1583                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1584             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1585                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1586             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1587           end           end
1588          else          else
1589           begin           begin
1590                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1591                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1592                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1593                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1594                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  
1595                StregKode := '';                StregKode := '';
1596                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1597  // 20150323: slut  
1598                exit;                exit;
1599           end;           end;
1600          Stregkode := '';          Stregkode := '';
# Line 1903  begin Line 1615  begin
1615            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1616            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1617            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1618               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1619               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1620              exit;              exit;
1621            end;            end;
1622            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1928  begin Line 1636  begin
1636              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1637              begin              begin
1638                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1639                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1640                MainForm.Color := clRed;                MainForm.Color := clRed;
1641              end;              end;
1642           end;           end;
1643            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
1644            begin            begin
1645              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1646              if Storepakker1.Checked then              if Storepakker1.Checked then
1647              begin              begin
1648                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1943  begin Line 1651  begin
1651              begin              begin
1652                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1653              end;              end;
1654              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1655            end            end
1656            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1657            begin            begin
1658              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1659              if Storepakker1.Checked then              if Storepakker1.Checked then
1660              begin              begin
1661                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1956  begin Line 1664  begin
1664              begin              begin
1665                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1666              end;              end;
1667              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1668            end            end
1669            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1670            begin            begin
1671              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;  
1672            end            end
1673            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1674            begin            begin
1675            end            end
1676            else            else
1677            begin            begin
1678              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1679            end;            end;
1680           if not PakkeshopNulstil.Visible then           if not btnNulstil.Visible then
1681            begin            begin
1682  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1683              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1684              begin              begin
1685                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1693  begin
1693                InitLillePakke();                InitLillePakke();
1694              end;              end;
1695            end;            end;
1696  // 20150310: start  
1697            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1698  // 20150310: slut  
1699            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1700            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1701            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1726  begin
1726    
1727    Key := #0;    Key := #0;
1728    
1729  end;  end; //End of OnKeyPress
1730    
1731  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1732  const  const
# Line 2063  end; Line 1763  end;
1763    
1764  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1765  var  var
 // 20150309: start  
 //  i:integer;  
1766    i : Integer;    i : Integer;
1767    wrkAntal : String;    wrkAntal : String;
1768    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1769  // 20150309: slut  
1770    
1771  begin  begin
1772      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then
# Line 2076  begin Line 1774  begin
1774        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1775          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1776          begin          begin
1777  // 20150309: start  
1778            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1779            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1780            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1781            begin            begin
1782              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1783              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1784  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1785  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1786  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1787              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1788            end            end
1789            else     // kun idag            else     // kun idag
1790            begin            begin
# Line 2112  begin Line 1810  begin
1810            begin            begin
1811              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1812            end;            end;
 // 20150309: slut  
1813    
 // 20150310: start  
1814            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1815            begin            begin
1816              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2219  begin Line 1915  begin
1915  end;  end;
1916    
1917  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1918    
1919  begin  begin
1920    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2297  begin Line 1991  begin
1991              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1992              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1993              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1994              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1995              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1996              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her
1997              OpdaterListenButton01.Enabled := true;              OpdaterListenButton01.Enabled := true;
1998              IdFTP1.Passive := true;              IdFTP1.Passive := true;
# Line 2335  begin Line 2029  begin
2029              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2030              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
2031              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2032              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
2033              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
2034              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her
2035              OpdaterListenButton01.Enabled := true;              OpdaterListenButton01.Enabled := true;
2036              IdFTP1.Passive := true;              IdFTP1.Passive := true;
# Line 2354  var Line 2048  var
2048    URLStr : String;    URLStr : String;
2049    pakkestorrelse : String;    pakkestorrelse : String;
2050    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2051    
2052      PakkeshopLabel: TPakkeshopLabel;
2053  begin  begin
2054    if RadioButton1.Checked then    if radioStorPakke.Checked then
2055    begin    begin
2056      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
2057    end;    end;
2058    if RadioButton2.Checked then    if radioLillePakke.Checked then
2059    begin    begin
2060      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2061    end;    end;
2062    
2063    
2064    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
2065    begin    begin
2066       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 2089  begin
2089    begin    begin
2090       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2091    end    end
2092      else if menuIndlevering.Checked then
2093      begin
2094        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2095      end
2096    else    else
2097    begin    begin
2098      exit;      exit;
# Line 2425  begin Line 2127  begin
2127        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2128        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2129        PrintNyLabel := False;        PrintNyLabel := False;
2130  // 20150310: start  
2131        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2132        begin        begin
 // 20150310: slut  
2133          try          try
2134            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2135          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2139  begin
2139          begin          begin
2140            PrintNyLabel := True;            PrintNyLabel := True;
2141          end;          end;
 // 20150310: start  
2142        end;        end;
 // 20150310: slut  
2143       end       end
2144        else if menuIndlevering.Checked then
2145        begin
2146    
2147    
2148    
2149    
2150         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2151         if (Kommentar = 'Ok') then
2152         begin
2153           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2154           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2155           RuteNummer := PakkeshopLabel.Koreliste;
2156    
2157           PrintPakkeshopLabel( PakkeshopLabel );
2158    
2159         end;
2160    
2161    
2162        end
2163      else      else
2164       begin       begin
2165        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2192  begin
2192          PrintNyLabel := True;          PrintNyLabel := True;
2193        end;        end;
2194      end;      end;
2195    
2196    
2197      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2198      begin      begin
2199        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2234  begin
2234    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2235      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2236    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2237    if RadioButton1.Checked then    if radioStorPakke.Checked then
2238    begin    begin
2239      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2240    end;    end;
2241    if RadioButton2.Checked then    if radioLillePakke.Checked then
2242    begin    begin
2243      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2244    end;    end;
# Line 2540  begin Line 2260  begin
2260    if Budlevering1.Checked then    if Budlevering1.Checked then
2261    begin    begin
2262       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2263        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2264        begin        begin
2265          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2266        end;        end;
2267        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2268        begin        begin
2269          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2270        end;        end;
# Line 2588  pakkeForkertSted : Integer; Line 2308  pakkeForkertSted : Integer;
2308    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2309  begin  begin
2310    if Budlevering1.Checked then    if Budlevering1.Checked then
2311       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2312    
2313    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2314    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2321  begin
2321    end;    end;
2322    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2323    
2324  // 20150306: start  
2325  //  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
2326    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  
2327    begin    begin
2328        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2329        begin        begin
# Line 2631  begin Line 2350  begin
2350       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2351       begin       begin
2352          PrintNyLabel := false;          PrintNyLabel := false;
2353  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2354          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2355          MainForm.Color := clRed;          MainForm.Color := clRed;
2356          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2357  // 20150306: slut  
2358       end       end
2359       else       else
2360       begin       begin
# Line 2646  begin Line 2364  begin
2364            PrintNyLabel := true;            PrintNyLabel := true;
2365            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2366            nyFarve := Farve;            nyFarve := Farve;
2367            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2368            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2369            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2370            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2371            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2372            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2373  // 20150213: start  
2374            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2375            begin            begin
2376               PrintNyLabel := false;               PrintNyLabel := false;
2377            end;            end;
2378  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2379            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
2380            begin            begin
2381              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2382              MainForm.Color := clRed;              MainForm.Color := clRed;
2383              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2384            end;            end;
2385  // 20150306: slut  
2386         end;         end;
2387         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2388         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2401  begin
2401            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2402            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2403            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2404  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2405            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
2406            begin            begin
2407              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2408              MainForm.Color := clRed;              MainForm.Color := clRed;
2409              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2410            end;            end;
2411  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2412         end;         end;
2413       end;       end;
2414    
# Line 2719  begin Line 2430  begin
2430                end;                end;
2431              end;              end;
2432        01 :  begin;        01 :  begin;
2433               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2434                    // 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
2435                    // 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')
2436                begin                begin
# Line 2733  begin Line 2444  begin
2444                end;                end;
2445              end;              end;
2446        03 :  begin;        03 :  begin;
2447               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2448                    // 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
2449                    // 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')
2450               begin               begin
# Line 2757  begin Line 2468  begin
2468      exit;      exit;
2469    end;    end;
2470    
2471    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
2472    begin    begin
2473    end    end
2474    else    else
2475    begin    begin
2476      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
2477      begin      begin
2478        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2479        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2480        begin        begin
2481          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2482        end        end
# Line 2832  begin Line 2543  begin
2543          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2
2544        end;        end;
2545        Canvas.Font.Size := FontSizeKommentar;        Canvas.Font.Size := FontSizeKommentar;
2546    
2547        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
 // 20150304: start  
2548        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);
2549  // 20150304: slut  
2550        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)
2551        if SmsKode <> '' then        if SmsKode <> '' then
2552        begin        begin
# Line 2849  begin Line 2560  begin
2560  end;  end;
2561    
2562    
2563  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2564  begin  begin
2565      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2566      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2567  end;  end;
2568    
2569  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2570  begin  begin
2571      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2572      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2573  end;  end;
2574    
2575    
2576  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2577  begin  begin
2578    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2579    begin    begin
2580       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2581    end    end
# Line 2875  begin Line 2586  begin
2586  end;  end;
2587    
2588    
2589  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2590  begin  begin
2591    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2592    begin    begin
2593       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2594    end    end
# Line 2888  begin Line 2599  begin
2599    
2600  end;  end;
2601    
2602  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2603  begin  begin
2604    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2605    begin    begin
2606       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2607    end    end
# Line 2912  begin Line 2623  begin
2623      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2624      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2625      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2626  // 20150317: start  
2627      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2628      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2629      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2630      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2631      begin      begin
2632        // 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)
2633        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 3223  begin Line 2934  begin
2934            end;            end;
2935          end;          end;
2936    
2937  // 20150330: start  
2938          // Tjekker UrlEKLoverforselPakkeshop          // Tjekker UrlEKLoverforselPakkeshop
2939          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2940          begin          begin
# Line 3251  begin Line 2962  begin
2962              end;              end;
2963            end;            end;
2964          end;          end;
2965  // 20150330: slut  
2966    
2967          // Tjekker UrlFindPakketype          // Tjekker UrlFindPakketype
2968          if CheckUrl(UrlFindPakketype) then          if CheckUrl(UrlFindPakketype) then
# Line 3342  begin Line 3053  begin
3053      repeat      repeat
3054        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
3055        begin        begin
3056    
3057          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
3058          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
3059          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
# Line 3381  begin Line 3093  begin
3093    end;    end;
3094  end;  end;
3095    
3096  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
3097  begin  begin
3098    PakkeshopStregkode := '';    PakkeshopStregkode := '';
3099    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
3100    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
3101    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
3102    BoghandlerStregkode := '';    BoghandlerStregkode := '';
3103    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 3115  begin
3115  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
3116    if Farve <> '' then    if Farve <> '' then
3117    begin    begin
3118       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
3119  // 20150312: start  // 20150312: start
3120  (*  (*
3121    end    end
# Line 3514  var Line 3226  var
3226    BoghandlerNavn : String;    BoghandlerNavn : String;
3227    Koreliste : String;    Koreliste : String;
3228    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3229    SmsKode : String;    SmsKode : String;
3230    DBKbane : String;    DBKbane : String;
3231    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 3247  begin
3247      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
3248      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
3249      MainForm.Color := clRed;      MainForm.Color := clRed;
3250      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
3251    end    end
3252    else    else
3253    begin    begin
3254      Falsk := False;      Falsk := False;
3255      Sand := True;  
3256      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
3257      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
3258      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 3272  var
3272    BoghandlerNavn : String;    BoghandlerNavn : String;
3273    Koreliste : String;    Koreliste : String;
3274    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3275    SmsKode : String;    SmsKode : String;
3276    DBKbane : String;    DBKbane : String;
3277    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 3280  begin
3280    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
3281    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
3282    Falsk := False;    Falsk := False;
3283    Sand := True;  
3284    
3285    if (Printer.Printers.Count = 0) then    if (Printer.Printers.Count = 0) then
3286    begin    begin
# Line 3605  begin Line 3315  begin
3315    end;    end;
3316  end;  end;
3317    
3318  {  
  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;  
3319    
3320  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3321  const  const
# Line 3643  var Line 3324  var
3324   tekst, filversion : String;   tekst, filversion : String;
3325  begin  begin
3326    
3327    filversion := Sto_GetFmtFileVersion('','');    filversion := Sto_GetFmtFileVersion('');
3328    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';
3329    
3330    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 3346  begin
3346          end          end
3347          else          else
3348          begin          begin
3349            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3350          end;          end;
3351      end      end
3352      else      else
3353      begin      begin
3354        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3355      end;      end;
3356    end;    end;
3357    
# Line 3778  begin Line 3459  begin
3459    end;    end;
3460  end;  end;
3461    
3462    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3463    begin
3464      Scanningtype := '7';
3465      NulstilAutomatiskValg();
3466      InitIndleveringskode();
3467    end;
3468    
3469  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3470  begin  begin
3471    
3472    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3473    begin    begin
3474       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3475    end    end
3476    else    else
3477    begin    begin
3478       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3479    end;    end;
3480    
3481    
# Line 3810  end; Line 3498  end;
3498  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3499  begin  begin
3500        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3501        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3502        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3503        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3504        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3505        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3506        CheckBox1.Enabled := true;  
3507        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3508        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3509        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3510        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3511        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3512        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3513        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3514        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3515        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3516        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3517        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3518        ListBox1.Visible := true;        ListBox1.Visible := true;
3519        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3520        EKLoverforsel.Enabled := true;        EKLoverforsel.Enabled := true;
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3531  procedure TMainForm.InitReturFraDao();
3531  begin  begin
3532        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3533        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3534        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3535        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3536        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3537        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3538        CheckBox1.Enabled := false;  
3539        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3540        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3541        CheckBox2.Checked := false;  
3542        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3543        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3544        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3545        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3546        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3547        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3548        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3549        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3550        ListBox1.Visible := true;        ListBox1.Visible := true;
3551        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3552        ListBox2.Items.Clear;        ListBox2.Items.Clear;
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3558  procedure TMainForm.InitReturFraKunde();
3558  begin  begin
3559        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3560        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3561        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3562        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3563        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3564        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3565        CheckBox1.Enabled := false;  
3566        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3567        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       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;
# Line 3897  procedure TMainForm.InitDirektelevering( Line 3584  procedure TMainForm.InitDirektelevering(
3584  begin  begin
3585        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3586        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3587        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3588        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3589        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3590        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3591        CheckBox1.Enabled := false;  
3592        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3593        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3594        CheckBox2.Checked := false;  
3595        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3596        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3597        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3598        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3599        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3600        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3601        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3602        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3603        ListBox1.Visible := true;        ListBox1.Visible := true;
3604        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3605        DownloadButton01.Enabled := false;        DownloadButton01.Enabled := false;
# Line 3933  procedure TMainForm.InitPakkeshopleverin Line 3620  procedure TMainForm.InitPakkeshopleverin
3620  begin  begin
3621        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3622        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3623        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3624        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3625        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3626        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3627        CheckBox1.Enabled := false;  
3628        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3629        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3630        CheckBox2.Checked := false;  
3631        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3632        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3633        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3634        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3635        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3636        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3637        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3638        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3639        ListBox1.Visible := true;        ListBox1.Visible := true;
3640        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3641        DownloadButton01.Enabled := false;        DownloadButton01.Enabled := false;
3642        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3643  // 20150330: start  
 //      EKLoverforsel.Enabled := false;  
3644        EKLoverforsel.Enabled := true;        EKLoverforsel.Enabled := true;
3645  // 20150330: slut  
3646        InitLillePakke();        InitLillePakke();
3647        IndlesScanningLogFil();        IndlesScanningLogFil();
3648        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3971  procedure TMainForm.InitReturFraPakkesho Line 3657  procedure TMainForm.InitReturFraPakkesho
3657  begin  begin
3658        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3659        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3660        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3661        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3662        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3663        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3664        CheckBox1.Enabled := false;  
3665        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3666        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3667        CheckBox2.Checked := false;  
3668        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3669        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3670        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3671        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3672        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3673        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3674        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3675        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3676        ListBox1.Visible := true;        ListBox1.Visible := true;
3677        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3678        DownloadButton01.Enabled := false;        DownloadButton01.Enabled := false;
# Line 4011  end; Line 3697  end;
3697    
3698  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3699  begin  begin
3700          menuIndlevering.Checked := true;
3701        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3702        Returpakkerfrapakkeshop1.Checked := true;  
3703        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3704        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3705        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3706        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3707        CheckBox1.Enabled := false;  
3708        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3709        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3710        CheckBox2.Checked := false;  
3711        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3712        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3713        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3714          chkSporgEfterKunde.Checked := false;
3715    
3716    
3717    
3718        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3719        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3720        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3721        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3722        ListBox1.Visible := true;        ListBox1.Visible := true;
3723        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3724    
3725        DownloadButton01.Enabled := false;        DownloadButton01.Enabled := false;
3726        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3727        EKLoverforsel.Enabled := false;        EKLoverforsel.Enabled := false;
# Line 4057  end; Line 3748  end;
3748    
3749  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3750  begin  begin
3751    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3752    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3753  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3754  end;  end;
3755    
3756  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3757  begin  begin
3758    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3759    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3760  // 20150310: start  // 20150310: start
3761  //  Stregkode := '';  //  Stregkode := '';
# Line 4089  end; Line 3778  end;
3778  ///   values.</param>  ///   values.</param>
3779  /// <returns>Formatted version number of file, '' if no version  /// <returns>Formatted version number of file, '' if no version
3780  ///   resource found.</returns>  ///   resource found.</returns>
3781  function TMainForm.Sto_GetFmtFileVersion(const FileName: String = '';  function TMainForm.Sto_GetFmtFileVersion(const FileName: String = ''): String;
   const Fmt: String = '%d.%d.%d.%d'): String;  
3782  var  var
3783    sFileName: String;    sFileName: String;
3784    iBufferSize: DWORD;    iBufferSize: DWORD;
3785    iDummy: DWORD;    iDummy: DWORD;
3786    pBuffer: Pointer;    pBuffer: Pointer;
3787    pFileInfo: Pointer;    pFileInfo: Pointer;
3788    iVer: array[1..4] of Word;    iVer: array[1..4] of Integer;
   S : String;  
3789  begin  begin
3790    // set default value    // set default value
3791    Result := '';    Result := '';
# Line 4123  begin Line 3810  begin
3810      finally      finally
3811        FreeMem(pBuffer);        FreeMem(pBuffer);
3812      end;      end;
3813    
3814      // format result string      // format result string
3815      Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]);      Result := Format('%d.%d.%d.%d', [iVer[1], iVer[2], iVer[3], iVer[4]]);
3816    
     // 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;  
3817    end;    end;
3818  end;  end;
3819    
# Line 4163  end; Line 3840  end;
3840    
3841  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3842  begin  begin
 // 20150317: start  
3843    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3844    begin    begin
3845       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3852  begin
3852       end;       end;
3853       exit;       exit;
3854    end;    end;
 // 20150317: slut  
3855    
3856    if Smpakker1.Checked then    if Smpakker1.Checked then
3857       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4185  begin Line 3860  begin
3860       end       end
3861       else       else
3862       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3863         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3864       end;       end;
3865    if Storepakker1.Checked then    if Storepakker1.Checked then
3866       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4197  begin Line 3869  begin
3869       end       end
3870       else       else
3871       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3872         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3873       end;       end;
3874  end;  end;
3875    
# Line 4307  begin Line 3976  begin
3976           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3977         end;         end;
3978         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3979         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3980      end;      end;
3981    
3982  end;  end;
# Line 4331  begin Line 4000  begin
4000    else    else
4001      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
4002  }  }
4003    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
4004    
4005    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
4006    CheckCode();    CheckCode();
# Line 4339  end; Line 4008  end;
4008    
4009  end;  end;
4010    
 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;  
4011    
4012  //  //
4013  // Bladhus ***  // Bladhus ***
# Line 4879  begin Line 4509  begin
4509      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
4510  end;  end;
4511    
4512  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
4513    // ToDo: PrintPakkeshopLabel()
4514    procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4515  var  var
4516    S2: string;    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4517      Angle: integer;
4518      gMode: integer;
4519      BarcodeArea: TRect;
4520      Dirigering: string;
4521    
4522  begin  begin
4523    Result  := 0;      with Printer do
4524    S2 := S + Border;      begin
4525    repeat        BeginDoc();
4526      SetLength(A, Length(A) + 1);  
4527      a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);  
4528      Delete(S2, 1,Length(a[Result] + Border));        Canvas.Font.Size := 16;
4529      Inc(Result);        Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4530    until S2 = '';  
4531    
4532    
4533          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4534          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4535          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4536    
4537    
4538          Canvas.Font.Size := 9;
4539          Canvas.TextOut(110, 240, 'Pakkeshop:');
4540          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4541          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4542          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4543    
4544          Canvas.TextOut(350, 240, 'Afsender:');
4545          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4546          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4547          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4548    
4549          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4550          if ( PakkeshopLabel.Koreliste <> '') then
4551          begin
4552            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4553          end;
4554    
4555    
4556          Canvas.Font.Size := 12;
4557          Canvas.TextOut(15, 370, Dirigering);
4558    
4559    
4560    
4561    
4562    
4563          //Tegn adskillelses linier
4564          Canvas.Pen.Width := 2;
4565          //Øverste linie
4566          Canvas.MoveTo(20,80);
4567          Canvas.LineTo(600,80);
4568    
4569          // Midterste linie
4570          Canvas.MoveTo( 20, 240);
4571          Canvas.LineTo(600, 240);
4572    
4573          //Nederste linie
4574          Canvas.MoveTo( 20, 370);
4575          Canvas.LineTo(600, 370);
4576    
4577    
4578          //Tegn skrå streger over afsender
4579          Canvas.Pen.Width := 1;
4580          Canvas.MoveTo(600, 250);
4581          Canvas.LineTo(350, 360);
4582          Canvas.MoveTo(600, 360);
4583          Canvas.LineTo(350, 250);
4584    
4585    
4586    
4587    
4588          // Resten af rutinen vedr genering og placering af Barcode
4589    
4590          BarCode.BarCodeType := bcCode128;
4591          BarCode.Code128Subset := csCodeC;
4592          BarCode.Code := PakkeshopLabel.Stregkode;
4593          BarCode.Validate(True);
4594    
4595          //Start X-formation
4596          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4597          GetWorldTransform(Canvas.Handle, XFormOld);
4598    
4599          Angle := 270;
4600          XForm.eM11 := Cos(DegToRad(Angle));
4601          XForm.eM12 := Sin(DegToRad(Angle));
4602          XForm.eM21 := -Sin(DegToRad(Angle));
4603          XForm.eM22 := Cos(DegToRad(Angle));
4604          XForm.eDx := 0;
4605          XForm.eDy := 0;
4606    
4607          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4608          SetWorldTransform(Canvas.Handle, XForm);
4609    
4610          // PaintToCanvasSize arbejder i Inches
4611          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4612          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4613    
4614          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4615    
4616    
4617          SetWorldTransform(Canvas.Handle, XFormOld);
4618          SetGraphicsMode(Canvas.Handle, gMode);
4619    
4620          EndDoc();
4621        end;
4622    
4623    
4624    end;
4625    
4626    function GetPixelsPerInchX(): Integer;
4627    begin
4628      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
4629    end;
4630    
4631    function GetPixelsPerInchY(): Integer;
4632    begin
4633      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
4634  end;  end;
4635    
4636    
4637  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4638  var  var
4639    WebSvar : String;    WebSvar : String;
# Line 4905  var Line 4646  var
4646    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4647    pakketyper : TStrings;    pakketyper : TStrings;
4648    antlin : Integer;    antlin : Integer;
4649  // 20150306: start  
4650    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4651  // 20150306: slut  
4652    XmlFelter : TStrings;    XmlFelter : TStrings;
4653    
4654   begin   begin
# Line 4927  var Line 4668  var
4668          StedKode := Sted;          StedKode := Sted;
4669        end;        end;
4670    
4671  // 20150310: start  
 (*  
     if Returpakkerfrapakkeshop1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
      end  
     else if Pakkeshoplevering1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);  
      end  
     else if Pakkernormal1.Checked then  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);  
      end  
     else  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
4672      if (Scanningtype = '6') then      if (Scanningtype = '6') then
4673       begin       begin
4674        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);
# Line 4989  var Line 4712  var
4712      try      try
4713        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4714    
4715  // 20150206: start  
4716        antlin := 0;        antlin := 0;
4717        antlinIdag := 0;        antlinIdag := 0;
4718        antlinSenere := 0;        antlinSenere := 0;
4719  // 20150306: slut  
       antalFelterFundet := 0;  
4720        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4721            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4722            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5026  var Line 4748  var
4748        antalFelterFundet := 0;        antalFelterFundet := 0;
4749        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4750        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4751  // 20150206: start  
 //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4752        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4753        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4754        begin        begin
4755          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4756        end;        end;
4757        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4758  // 20150306: slut  
4759        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4760        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4761            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
# Line 5078  var Line 4799  var
4799  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;
4800                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4801                    begin                    begin
4802                      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
4803                    end                    end
4804                    else                    else
4805                    begin                    begin
4806                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4807                    end;                    end;
4808  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4809                  end;                  end;
4810              end;              end;
4811              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
# Line 5110  var Line 4830  var
4830    
4831          // Free up the list object          // Free up the list object
4832        pakketyper.Free;        pakketyper.Free;
 // 20150306: start  
4833  //      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.');
4834        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4835        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4838  var
4838        end;        end;
4839        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4840        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4841        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4842        begin        begin
4843          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4846  var
4846        begin        begin
4847          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4848        end;        end;
 // 20150309: slut  
4849    
 // 20150310: start  
4850        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4851        begin        begin
4852          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4925  var
4925            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4926          end;          end;
4927        end;        end;
 // 20150310: slut  
4928    
4929      except on e:exception do      except on e:exception do
4930        begin        begin
# Line 5272  end; Line 4986  end;
4986  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4987  var  var
4988     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4989     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4990     imorgenYmd : string;     imorgenYmd : string;
4991     logFilnavn : string;     logFilnavn : string;
4992      error : Integer;     //error : Integer;
4993    
4994  begin  begin
4995    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 5081  begin
5081          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5082          S := buffer;          S := buffer;
5083          SetLength(A,0);          SetLength(A,0);
5084          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5085          if (length(A) < 2) then          if (length(A) < 2) then
5086          begin          begin
5087            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5088          end;          end;
5089            if (length(A) > 1) then            if (length(A) > 1) then
5090            begin            begin
# Line 5446  begin Line 5158  begin
5158          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5159          S := buffer;          S := buffer;
5160          SetLength(A,0);          SetLength(A,0);
5161          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5162          if (length(A) < 3) then          if (length(A) < 3) then
5163          begin          begin
5164            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5165          end;          end;
5166          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
5167          begin          begin
# Line 5541  begin Line 5253  begin
5253    result := svar;    result := svar;
5254  end;  end;
5255    
5256    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
5257    begin
5258      //ShowMessage('Ændring ikke tilladt');
5259      // Her skal komme en 'rød skærm' alarm
5260      PlaySound(PWideChar(AlarmLyd));
5261      MainForm.Color := clRed;
5262    
5263    
5264      RuteNummerST.Caption := '';
5265      BoghandlerNavnST.Caption := '';
5266      btnNulstil.Visible := true;
5267    
5268      if (strMessage <> '') then
5269      begin
5270        ListBox1.Items.Insert(0, strMessage);
5271        KommentarST.Caption := strMessage;
5272      end;
5273    
5274    end;
5275    
5276  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
5277  var  var
5278     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5622  procedure TMainForm.Scanogstjekkoden1Cli Line 5354  procedure TMainForm.Scanogstjekkoden1Cli
5354  begin  begin
5355    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
5356    begin    begin
5357       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
5358    end    end
5359    else    else
5360    begin    begin
5361       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
5362    end;    end;
5363  end;  end;
5364    
# Line 5642  begin Line 5374  begin
5374    AReg.Free;    AReg.Free;
5375  end;  end;
5376    
5377    
5378    function TMainForm.CheckUrl(url:string):boolean;
5379    var
5380      hSession, hfile: hInternet;
5381      dwindex,dwcodelen :dword;
5382      dwcode:array[1..20] of char;
5383      res : pchar;
5384    begin
5385      if pos('http://',lowercase(url))=0 then
5386        url := 'http://'+url;
5387      Result := false;
5388      hSession := InternetOpen('InetURL:/1.0',
5389                                INTERNET_OPEN_TYPE_PRECONFIG,
5390                                nil,
5391                                nil,
5392                                0);
5393      if assigned(hsession) then
5394      begin
5395        hfile := InternetOpenUrl(hsession,
5396                                 pchar(url),
5397                                 nil,
5398                                 0,
5399                                 INTERNET_FLAG_RELOAD,
5400                                 0);
5401        dwIndex := 0;
5402        dwCodeLen := 10;
5403        HttpQueryInfo(hfile,
5404                      HTTP_QUERY_STATUS_CODE,
5405                      @dwcode,
5406                      dwcodeLen,
5407                      dwIndex);
5408        res := pchar(@dwcode);
5409        result:= (res ='200') or (res ='302');
5410        if assigned(hfile) then
5411          InternetCloseHandle(hfile);
5412        InternetCloseHandle(hsession);
5413      end;
5414    
5415    end;
5416    
5417    
5418  procedure TMainForm.CheckPrintQue(tjektype : string);  procedure TMainForm.CheckPrintQue(tjektype : string);
5419  type  type
5420    TJobs  = array [0..1000] of JOB_INFO_1;    TJobs  = array [0..1000] of JOB_INFO_1;
# Line 5745  begin Line 5518  begin
5518    end;    end;
5519  end;  end;
5520    
 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  
5521    
5522  end.  end.
5523    

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

  ViewVC Help
Powered by ViewVC 1.1.20