/[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 2694 by torben, Thu Sep 3 14:31:39 2015 UTC
# Line 8  uses Line 8  uses
8    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
9    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
10    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,
11    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet    Winspool, ShellApi, ClipBrd, Buttons, wininet,
12      UITypes,
13      PakkeshopLabels,
14      StBarC,
15      Math, // DegToRad() bruges i PrintPakkeshopLabel
16      Utils
17    
18    ;    ;
19    
20  type  type
   TStrArray = array of string;  
21    TMainForm = class(TForm)    TMainForm = class(TForm)
22      StregkodeST: TStaticText;      StregkodeST: TStaticText;
23      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
# Line 20  type Line 25  type
25      IdHTTP1: TIdHTTP;      IdHTTP1: TIdHTTP;
26      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
27      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
28      CheckBox1: TCheckBox;      chkSporgEfterKunde: TCheckBox;
29      KommentarST: TStaticText;      KommentarST: TStaticText;
30      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
31      N1: TMenuItem;      N1: TMenuItem;
# Line 36  type Line 41  type
41      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
42      N2: TMenuItem;      N2: TMenuItem;
43      N3: TMenuItem;      N3: TMenuItem;
44      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
45      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
46      N4: TMenuItem;      N4: TMenuItem;
47      Storepakker1: TMenuItem;      Storepakker1: TMenuItem;
48      Smpakker1: TMenuItem;      Smpakker1: TMenuItem;
# Line 47  type Line 52  type
52      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
53      ListBox1: TListBox;      ListBox1: TListBox;
54      Budlevering1: TMenuItem;      Budlevering1: TMenuItem;
55      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
56      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
57      Image1: TImage;      Image1: TImage;
58      ListBox2: TListBox;      ListBox2: TListBox;
# 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    
   function Explode(var a: TStrArray; Border, S: string): Integer;  
   function BarCodeValid (ACode: string): boolean;  
   function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String;  
   function TColorToHex(Color : TColor) : string;  
   function HexToTColor(sColor : string) : TColor;  
96    function getProddato() : TDate;    function getProddato() : TDate;
97    function getProddag() : String;    function getProddag() : String;
98    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
99    function GetCurrentPrinterHandle() : THandle;    function GetCurrentPrinterHandle() : THandle;
100    function SavePChar(p: PChar): PChar;    function SavePChar(p: PChar): PChar;
101    function AdobeReaderExists(): Boolean;  
102    function FileTime2DateTime(FileTime: TFileTime): TDateTime;    function FileTime2DateTime(FileTime: TFileTime): TDateTime;
   function split(input: string; schar: Char; s: Integer): string;  
   function CheckUrl(url:string):boolean;  
103    
104    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
105    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 112  type
112    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
113    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
114    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
115    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
116    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
117    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
118    procedure Pakkernormal1Click(Sender: TObject);    procedure Pakkernormal1Click(Sender: TObject);
119    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
120    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
# Line 131  type Line 130  type
130    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
131    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
132    procedure Budlevering1Click(Sender: TObject);    procedure Budlevering1Click(Sender: TObject);
133    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
134    procedure OpdaterListenButton01Click(Sender: TObject);    procedure OpdaterListenButton01Click(Sender: TObject);
135    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
136    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
# Line 143  type Line 142  type
142    procedure UploadButton01Click(Sender: TObject);    procedure UploadButton01Click(Sender: TObject);
143    procedure DownloadButton03Click(Sender: TObject);    procedure DownloadButton03Click(Sender: TObject);
144    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
145    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
146    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
147    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
148    procedure InitReturFraDao();    procedure InitReturFraDao();
# Line 154  type Line 153  type
153    procedure InitIndleveringskode();    procedure InitIndleveringskode();
154    
155    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
156    procedure CheckBox2Click(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
157    procedure EKLoverforselClick(Sender: TObject);    procedure EKLoverforselClick(Sender: TObject);
158    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
159    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
160    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
161    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
162    procedure CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
163    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure Automatisktjekkodestyring1Click(Sender: TObject);
164    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
165    procedure Automatiskvalg1Click(Sender: TObject);    procedure Automatiskvalg1Click(Sender: TObject);
# Line 172  type Line 170  type
170    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
171    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
172    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
173      procedure PanelValg7Click(Sender: TObject);
174    
175    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
176    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
177    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
178    procedure TjekkerUrls();    procedure TjekkerUrls();
 // 20150310: start  
   procedure RoundCornerOf(Control: TWinControl);  
179    
180      procedure PanelValg7Click(Sender: TObject);    procedure menuIndleveringClick(Sender: TObject);
181  // 20150310: slut  
182      procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
183      procedure CheckPrintQue(tjektype : string);
184    
185    
186    private    private
187      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 189  type
189      SkrivLog : String;      SkrivLog : String;
190      Sted : String;      Sted : String;
191      StedNavn : String;      StedNavn : String;
192      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;
193  // 29150330: start  // 29150330: start
194      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
195  // 20150330: slut  // 20150330: slut
# Line 196  type Line 197  type
197      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
198      ScanTjekkode : String;      ScanTjekkode : String;
199      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
200      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;
201      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;
202      LabelType : integer;      LabelType : integer;
203      AlarmLyd : String;      AlarmLyd : String;
204      ScannetOkLyd : String;      ScannetOkLyd : String;
205      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
206  // 20150317: start  
207      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
208  // 20150317: slut  
209      PrinterNavn : String;      PrinterNavn : String;
210      TjekPrinter : String;      TjekPrinter : String;
211      XPosRute : integer;      XPosRute : integer;
# Line 243  type Line 244  type
244      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
245      TjekUrls : String;      TjekUrls : String;
246    
247            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      Barcode : TStBarcode;
248    
249    
250      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 = '');
251      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 257  type
257      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
258      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
259      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
260        procedure VisAlarmSkaerm(strMessage: string);
261    
262    public    public
263      { Public declarations }      { Public declarations }
264    end;    end;
265    
266          function GetPixelsPerInchX(): Integer;
267        function GetPixelsPerInchY(): Integer;
268    
269  var  var
270    MainForm: TMainForm;    MainForm: TMainForm;
271    
# Line 273  var Line 279  var
279  implementation  implementation
280  {$R *.dfm}  {$R *.dfm}
281    
 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;  
282    
283  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
284  begin  begin
# Line 298  begin Line 287  begin
287      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
288  // 20150309: slut  // 20150309: slut
289    
290        Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
291    
292      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
293      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
294      begin      begin
# Line 394  begin Line 385  begin
385    
386      StartScreen();      StartScreen();
387      MainForm.Caption := Titel;      MainForm.Caption := Titel;
388      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
389      MainForm.Farve := Farve;      MainForm.Farve := Farve;
390      MainForm.Titel := Titel;      MainForm.Titel := Titel;
391      MainForm.Url := Url;      MainForm.Url := Url;
# Line 409  begin Line 400  begin
400      else      else
401        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
402    
403      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
404      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
405      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
406    
407      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
408      begin      begin
409        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
410        begin        begin
411          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
412          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
413          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
414        end        end
415        else        else
416        begin        begin
417          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
418          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
419          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
420        end;        end;
421      end;      end;
422    
423      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
424      begin      begin
425        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
426        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
427      end;      end;
428    
# Line 454  begin Line 445  begin
445          end          end
446          else          else
447          begin          begin
448            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
449          end;          end;
450          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
451        end        end
452        else        else
453        begin        begin
454          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
455          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
456        end;        end;
457      end;      end;
# Line 472  begin Line 463  begin
463    
464    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
465    begin    begin
466       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
467    end    end
468    else    else
469    begin    begin
470       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
471    end;    end;
472    
473  end;  end;
# Line 490  procedure TMainForm.Automatisktjekkodest Line 481  procedure TMainForm.Automatisktjekkodest
481  begin  begin
482    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
483    begin    begin
484       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
485       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
486    end    end
487    else    else
488    begin    begin
489       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
490       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
491    end;    end;
492    
# Line 503  end; Line 494  end;
494    
495  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
496  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;  
 *)  
497  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
498  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
499       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
500       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
501       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
502  end;  end;
503    
504  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
# Line 531  const Line 506  const
506    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
507  var  var
508    printerInd : integer;    printerInd : integer;
   i : Integer;  
 // 20150310: start  
509    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
510    
511  begin  begin
512    // Initierer nogle variabler    // Initierer nogle variabler
# Line 542  begin Line 514  begin
514    Application.ShowHint := True;    Application.ShowHint := True;
515    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
516    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
517  // 20150306: start  
518    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
519  // 20150306: slut  
520  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
521    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
522    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
523    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
524    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
525    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
526    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
527    
528    // 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
529    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 579  begin Line 550  begin
550      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');
551      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');
552      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');
553  // 20150330: start  
554      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');
555  // 20150330: slut  
556      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');
557      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');
558      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');
559      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');
560    
561    
562        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
563        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
564    
565    
566    
567      LabelType := ReadInteger('Settings','LabelType',1);      LabelType := ReadInteger('Settings','LabelType',1);
568      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
569      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 575  begin
575      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
576      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
577      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
578    
579      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
580      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
581    
582        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
583        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
584    
585    
586      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
587      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
588      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 592  begin
592      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
593      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
594      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
595  // 20150317: start  
596      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
597  // 20150317: slut  
598      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
599      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
600      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
601    
602      if (SkrivLog = '1') then      if (SkrivLog = '1') then
603      begin      begin
604        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);        logTekst := 'Program start (Version: ' + TUtils.Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
605        try        try
606          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
607          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
# Line 711  begin Line 695  begin
695    
696      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
697      begin      begin
698        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
699        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
700      end      end
701      else      else
702      begin      begin
703        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
704        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
705      end;      end;
706    
707      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
708      begin      begin
709        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
710        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
711      end      end
712      else      else
713      begin      begin
714        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
715        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
716      end;      end;
717    
718      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
719      begin      begin
720        Automatisktjekkodestyring1.Checked := true;        Automatisktjekkodestyring1.Checked := true;
721        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
722        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
723      end;      end;
724    
# Line 760  begin Line 744  begin
744      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
745      // *************************** //      // *************************** //
746    
747    {$IfDef STED_BK}
748        SpecialVersionSted := 'BK';
749    {$EndIf}
750    {$IfDef STED_DBK}
751        SpecialVersionSted := 'DBK';
752    {$EndIf}
753    {$IfDef STED_FD}
754        SpecialVersionSted := 'FD';
755    {$EndIf}
756    {$IfDef STED_NS}
757        SpecialVersionSted := 'NS';
758    {$EndIf}
759    
760    
761      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
762      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
763      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 773  begin
773      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
774      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
775    
 // 20150313: start  
776      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
777      begin      begin
778         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 786  begin Line 783  begin
783         SpecialVersionSted := '03';         SpecialVersionSted := '03';
784         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
785      end;      end;
 // 20150313: slut  
786    
787      if SpecialVersionSted = 'BK' then      if SpecialVersionSted = 'BK' then
788      begin      begin
# Line 826  begin Line 822  begin
822        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
823        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
824        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
825          PanelValg7.Enabled := false;
826          PanelValg7.Font.Color := clInactiveCaption;
827    
828       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
829        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
830        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
831  // 20150317: start  
832        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
833        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
834  // 20150317: slut  
835        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
836        begin        begin
837           Scanningtype := '1';           Scanningtype := '1';
# Line 862  begin Line 861  begin
861        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
862        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
863        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
864          PanelValg7.Enabled := false;
865          PanelValg7.Font.Color := clInactiveCaption;
866       // 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
867  // 20150317: start  
868        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
869  // 20150317: slut  
870        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
871        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
872        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 957  begin Line 958  begin
958             RutenummerST.Caption := '';             RutenummerST.Caption := '';
959             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
960             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
961             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
962             exit;             exit;
963          end;          end;
964      end      end
# Line 1000  begin Line 1001  begin
1001      if Pakketype = '1' then      if Pakketype = '1' then
1002      begin      begin
1003        Storepakker1.Checked := true;        Storepakker1.Checked := true;
1004        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
1005      end      end
1006      else      else
1007      begin      begin
1008        Smpakker1.Checked := true;        Smpakker1.Checked := true;
1009        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
1010      end;      end;
1011    
1012      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 1046  begin
1046        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
1047      end;      end;
1048    
1049  // 20150317: start  
1050      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
1051      begin      begin
1052        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
1053      end;      end;
1054  // 20150317: slut  
1055    
1056      if (PrinterNavn <> '') then      if (PrinterNavn <> '') then
1057      begin      begin
# Line 1083  begin Line 1084  begin
1084          InitBladhus();          InitBladhus();
1085        end;        end;
1086    
1087  // 20150310: start  
1088      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1089      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1090    
# Line 1124  begin Line 1125  begin
1125      end;      end;
1126    
1127      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1128    
1129      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1130      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1131    
1132  end;  end;
1133    
# Line 1145  var Line 1145  var
1145    BoghandlerNavn : String;    BoghandlerNavn : String;
1146    Koreliste : String;    Koreliste : String;
1147    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1148    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1149    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1150    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1169  begin
1169      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1170      numberString := ClipboardData;      numberString := ClipboardData;
1171      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1172  // 20150311: start  
1173  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1174      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1175      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1176      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1186  begin Line 1185  begin
1185      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1186      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1187      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1188  // 20150311: slut  
1189      begin      begin
1190        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1191        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1199  begin Line 1198  begin
1198    
1199    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1200    begin    begin
 // 20150306: start  
1201      if (Length(Trim(Stregkode)) = 0) then      if (Length(Trim(Stregkode)) = 0) then
1202      begin      begin
1203        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1204        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;  
1205        exit;        exit;
1206      end;      end;
 // 20150306: slut  
1207    
 // 20150311: start  
1208      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1209      begin      begin
1210         PakkeshopNulstil.Click();         btnNulstil.Click();
1211         exit;         exit;
1212      end;      end;
1213    
1214      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1215      begin      begin
1216         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1217  // 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  
1218         exit;         exit;
1219      end;      end;
1220    
1221      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1222      begin      begin
1223         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1224         begin         begin
1225            InitLillePakke();            InitLillePakke();
1226         end         end
1227         else         else
1228         begin         begin
1229          //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;  
1230         end;         end;
1231         Stregkode := '';         Stregkode := '';
1232         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1235  begin
1235    
1236      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1237      begin      begin
1238         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1239         begin         begin
1240            InitStorPakke();            InitStorPakke();
1241         end         end
1242         else         else
1243         begin         begin
1244          //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;  
1245         end;         end;
1246         Stregkode := '';         Stregkode := '';
1247         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1294  begin Line 1250  begin
1250    
1251      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1252      begin      begin
1253         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1254         begin         begin
1255           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1256           begin           begin
1257            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1258           end           end
1259           else           else
1260           begin           begin
1261            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1262           end;           end;
1263         end         end
1264         else         else
1265         begin         begin
1266          //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;  
1267         end;         end;
1268         Stregkode := '';         Stregkode := '';
1269         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1272  begin
1272    
1273      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
1274      begin      begin
1275        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1276        begin        begin
1277           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1278           begin           begin
1279            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1280           end           end
1281           else           else
1282           begin           begin
1283            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1284           end;           end;
1285        end        end
1286        else        else
1287        begin        begin
1288          //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;  
1289        end;        end;
1290        Stregkode := '';        Stregkode := '';
1291        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1300  begin
1300         end         end
1301         else         else
1302         begin         begin
1303          //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;  
1304         end;         end;
1305         Stregkode := '';         Stregkode := '';
1306         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1307         exit;         exit;
1308      end;      end;
1309    
1310  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1311      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  
1312      begin      begin
1313         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1314         begin         begin
# Line 1395  begin Line 1316  begin
1316         end         end
1317         else         else
1318         begin         begin
1319          //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;  
1320         end;         end;
1321         Stregkode := '';         Stregkode := '';
1322         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1331  begin
1331         end         end
1332         else         else
1333         begin         begin
1334          //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;  
1335         end;         end;
1336         Stregkode := '';         Stregkode := '';
1337         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1346  begin
1346         end         end
1347         else         else
1348         begin         begin
1349          //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;  
1350         end;         end;
1351         Stregkode := '';         Stregkode := '';
1352         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1361  begin
1361         end         end
1362         else         else
1363         begin         begin
1364          //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;  
1365         end;         end;
1366         Stregkode := '';         Stregkode := '';
1367         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1376  begin
1376         end         end
1377         else         else
1378         begin         begin
1379          //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;  
1380         end;         end;
1381         Stregkode := '';         Stregkode := '';
1382         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1391  begin
1391         end         end
1392         else         else
1393         begin         begin
1394          //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;  
1395         end;         end;
1396         Stregkode := '';         Stregkode := '';
1397         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1398         exit;         exit;
1399      end;      end;
1400  // 20150311: slut  
1401    
1402      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1403      begin      begin
# Line 1597  begin Line 1452  begin
1452          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)
1453          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then
1454      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1455         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1456         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  
1457         exit;         exit;
1458      end;      end;
1459    
# Line 1626  begin Line 1469  begin
1469              end;              end;
1470            end            end
1471        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1472  (*  
       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  
 *)  
1473        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1474            begin            begin
1475              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1661  begin Line 1487  begin
1487              end;              end;
1488            end            end
1489        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1490  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1491        else        else
1492            begin   // Her skal komme en alarm og rød skærm            begin
1493               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1494               List1msg := 'Pakken kan ikke scannes med automatisk valg';              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1495               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  
1496               exit;               exit;
1497            end;            end;
1498        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1499      end      end
1500      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1501      begin      begin
1502        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1503        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  
1504        exit;        exit;
1505      end;      end;
1506    
# Line 1714  begin Line 1508  begin
1508      begin      begin
1509        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1510        begin        begin
         PlaySound(PWideChar(AlarmLyd));  
         List1msg := 'Pakke findes som pakketype: ' + Pakketype;  
         ListBox1.Items.Insert(0,List1Msg);  
         MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
         KommentarST.Caption := List1msg;  
         PakkeshopNulstil.Visible := true;  
 // 20150312: start  
         StregKode := '';  
         StregkodeST.Caption := StregKode;  
 // 20150312: slut  
         exit;  
       end;  
     end;  
   
 // 20150311: start  
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
1511    
1512      if PakkeshopNulstil.Visible then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        PlaySound(PWideChar(AlarmLyd));  
        List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
        exit;  
     end;  
1513    
1514      if StregKode = 'Lille pakke' then          exit;
1515      begin        end;
        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;  
1516      end;      end;
1517    
     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  
1518    
1519    
1520      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1521      begin      begin
1522        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1523        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1524        begin        begin
1525          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1526          begin          begin
1527              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1528              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1529          end;          end;
1530        end;        end;
# Line 1812  begin Line 1536  begin
1536             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1537             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1538             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1539             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1540             Stregkode := '';             Stregkode := '';
1541             InitScreen();             InitScreen();
1542        end        end
# Line 1824  begin Line 1548  begin
1548             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1549             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1550             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1551             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1552             Stregkode := '';             Stregkode := '';
1553             InitScreen();             InitScreen();
1554        end        end
# Line 1836  begin Line 1560  begin
1560              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1561              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1562              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1563  // 20150317: start  
1564              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1565  // 20150317: slut  
1566             end             end
1567            else            else
1568             begin             begin
1569                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;  
1570             end;             end;
1571            Stregkode := '';            Stregkode := '';
1572            InitScreen();            InitScreen();
# Line 1861  begin Line 1579  begin
1579             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1580             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1581             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1582                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1583             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1584                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1585             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1586           end           end
1587          else          else
1588           begin           begin
1589                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1590                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1591                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1592                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1593                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  
1594                StregKode := '';                StregKode := '';
1595                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1596  // 20150323: slut  
1597                exit;                exit;
1598           end;           end;
1599          Stregkode := '';          Stregkode := '';
# Line 1903  begin Line 1614  begin
1614            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1615            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1616            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1617               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1618               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1619              exit;              exit;
1620            end;            end;
1621            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1928  begin Line 1635  begin
1635              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1636              begin              begin
1637                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1638                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1639                MainForm.Color := clRed;                MainForm.Color := clRed;
1640              end;              end;
1641           end;           end;
1642            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then            if ( Pakkernormal1.Checked and (pakkeErScannet = 0) and (pakkeForkertSted = 0) and (tjekkodemangler = 0) and (RuteNummerST.Caption <> 'Ukendt') ) or (Copy(Kommentar,1,2) = 'Ok') then
1643            begin            begin
1644              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1645              if Storepakker1.Checked then              if Storepakker1.Checked then
1646              begin              begin
1647                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1943  begin Line 1650  begin
1650              begin              begin
1651                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1652              end;              end;
1653              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1654            end            end
1655            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1656            begin            begin
1657              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1658              if Storepakker1.Checked then              if Storepakker1.Checked then
1659              begin              begin
1660                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1956  begin Line 1663  begin
1663              begin              begin
1664                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1665              end;              end;
1666              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1667            end            end
1668            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1669            begin            begin
1670              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;  
1671            end            end
1672            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1673            begin            begin
1674            end            end
1675            else            else
1676            begin            begin
1677              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1678            end;            end;
1679           if not PakkeshopNulstil.Visible then           if not btnNulstil.Visible then
1680            begin            begin
1681  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1682              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1683              begin              begin
1684                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1692  begin
1692                InitLillePakke();                InitLillePakke();
1693              end;              end;
1694            end;            end;
1695  // 20150310: start  
1696            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1697  // 20150310: slut  
1698            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1699            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1700            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1725  begin
1725    
1726    Key := #0;    Key := #0;
1727    
1728  end;  end; //End of OnKeyPress
1729    
1730  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1731  const  const
# Line 2063  end; Line 1762  end;
1762    
1763  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1764  var  var
 // 20150309: start  
 //  i:integer;  
1765    i : Integer;    i : Integer;
1766    wrkAntal : String;    wrkAntal : String;
1767    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1768  // 20150309: slut  
1769    
1770  begin  begin
1771      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then
# Line 2076  begin Line 1773  begin
1773        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1774          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1775          begin          begin
1776  // 20150309: start  
1777            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1778            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1779            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1780            begin            begin
1781              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1782              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1783  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1784  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1785  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1786              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1787            end            end
1788            else     // kun idag            else     // kun idag
1789            begin            begin
# Line 2112  begin Line 1809  begin
1809            begin            begin
1810              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1811            end;            end;
 // 20150309: slut  
1812    
 // 20150310: start  
1813            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1814            begin            begin
1815              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2219  begin Line 1914  begin
1914  end;  end;
1915    
1916  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1917    
1918  begin  begin
1919    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2283  begin Line 1976  begin
1976      01 :      01 :
1977            begin;      // NS            begin;      // NS
1978              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1979              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1980              OpdaterListenButton01.Enabled := true;              OpdaterListenButton01.Enabled := true;
1981              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1982              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
# Line 2297  begin Line 1990  begin
1990              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1991              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1992              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1993              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1994              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1995              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1996              OpdaterListenButton01.Enabled := true;              OpdaterListenButton01.Enabled := true;
1997              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1998              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
# Line 2316  begin Line 2009  begin
2009              begin              begin
2010                DownloadButton03.Visible := false;                DownloadButton03.Visible := false;
2011              end;              end;
2012              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2013              OpdaterListenButton01.Enabled := true;              OpdaterListenButton01.Enabled := true;
2014              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2015              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
# Line 2335  begin Line 2028  begin
2028              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2029              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
2030              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2031              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
2032              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
2033              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
2034              OpdaterListenButton01.Enabled := true;              OpdaterListenButton01.Enabled := true;
2035              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2036              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
# Line 2354  var Line 2047  var
2047    URLStr : String;    URLStr : String;
2048    pakkestorrelse : String;    pakkestorrelse : String;
2049    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2050    
2051      PakkeshopLabel: TPakkeshopLabel;
2052  begin  begin
2053    if RadioButton1.Checked then    if radioStorPakke.Checked then
2054    begin    begin
2055      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
2056    end;    end;
2057    if RadioButton2.Checked then    if radioLillePakke.Checked then
2058    begin    begin
2059      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2060    end;    end;
2061    
2062    
2063    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
2064    begin    begin
2065       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 2088  begin
2088    begin    begin
2089       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2090    end    end
2091      else if menuIndlevering.Checked then
2092      begin
2093        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2094      end
2095    else    else
2096    begin    begin
2097      exit;      exit;
# Line 2425  begin Line 2126  begin
2126        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2127        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2128        PrintNyLabel := False;        PrintNyLabel := False;
2129  // 20150310: start  
2130        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2131        begin        begin
 // 20150310: slut  
2132          try          try
2133            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2134          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2138  begin
2138          begin          begin
2139            PrintNyLabel := True;            PrintNyLabel := True;
2140          end;          end;
 // 20150310: start  
2141        end;        end;
 // 20150310: slut  
2142       end       end
2143        else if menuIndlevering.Checked then
2144        begin
2145    
2146    
2147    
2148    
2149         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2150         if (Kommentar = 'Ok') then
2151         begin
2152           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2153           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2154           RuteNummer := PakkeshopLabel.Koreliste;
2155    
2156           PrintPakkeshopLabel( PakkeshopLabel );
2157    
2158         end;
2159    
2160    
2161        end
2162      else      else
2163       begin       begin
2164        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2191  begin
2191          PrintNyLabel := True;          PrintNyLabel := True;
2192        end;        end;
2193      end;      end;
2194    
2195    
2196      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2197      begin      begin
2198        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2233  begin
2233    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2234      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2235    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2236    if RadioButton1.Checked then    if radioStorPakke.Checked then
2237    begin    begin
2238      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2239    end;    end;
2240    if RadioButton2.Checked then    if radioLillePakke.Checked then
2241    begin    begin
2242      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2243    end;    end;
# Line 2540  begin Line 2259  begin
2259    if Budlevering1.Checked then    if Budlevering1.Checked then
2260    begin    begin
2261       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2262        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2263        begin        begin
2264          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2265        end;        end;
2266        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2267        begin        begin
2268          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2269        end;        end;
# Line 2588  pakkeForkertSted : Integer; Line 2307  pakkeForkertSted : Integer;
2307    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2308  begin  begin
2309    if Budlevering1.Checked then    if Budlevering1.Checked then
2310       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2311    
2312    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2313    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2320  begin
2320    end;    end;
2321    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2322    
2323  // 20150306: start  
2324  //  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
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  
 // 20150306: slut  
2326    begin    begin
2327        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2328        begin        begin
# Line 2631  begin Line 2349  begin
2349       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2350       begin       begin
2351          PrintNyLabel := false;          PrintNyLabel := false;
2352  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2353          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2354          MainForm.Color := clRed;          MainForm.Color := clRed;
2355          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2356  // 20150306: slut  
2357       end       end
2358       else       else
2359       begin       begin
# Line 2646  begin Line 2363  begin
2363            PrintNyLabel := true;            PrintNyLabel := true;
2364            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2365            nyFarve := Farve;            nyFarve := Farve;
2366            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2367            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2368            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2369            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2370            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2371            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2372  // 20150213: start  
2373            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2374            begin            begin
2375               PrintNyLabel := false;               PrintNyLabel := false;
2376            end;            end;
2377  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2378            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
2379            begin            begin
2380              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2381              MainForm.Color := clRed;              MainForm.Color := clRed;
2382              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2383            end;            end;
2384  // 20150306: slut  
2385         end;         end;
2386         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2387         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2400  begin
2400            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2401            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2402            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2403  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2404            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
2405            begin            begin
2406              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2407              MainForm.Color := clRed;              MainForm.Color := clRed;
2408              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2409            end;            end;
2410  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2411         end;         end;
2412       end;       end;
2413    
# Line 2719  begin Line 2429  begin
2429                end;                end;
2430              end;              end;
2431        01 :  begin;        01 :  begin;
2432               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2433                    // 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
2434                    // 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')
2435                begin                begin
# Line 2733  begin Line 2443  begin
2443                end;                end;
2444              end;              end;
2445        03 :  begin;        03 :  begin;
2446               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2447                    // 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
2448                    // 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')
2449               begin               begin
# Line 2757  begin Line 2467  begin
2467      exit;      exit;
2468    end;    end;
2469    
2470    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
2471    begin    begin
2472    end    end
2473    else    else
2474    begin    begin
2475      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
2476      begin      begin
2477        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2478        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2479        begin        begin
2480          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2481        end        end
# Line 2832  begin Line 2542  begin
2542          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2
2543        end;        end;
2544        Canvas.Font.Size := FontSizeKommentar;        Canvas.Font.Size := FontSizeKommentar;
2545    
2546        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
 // 20150304: start  
2547        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);
2548  // 20150304: slut  
2549        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)
2550        if SmsKode <> '' then        if SmsKode <> '' then
2551        begin        begin
# Line 2849  begin Line 2559  begin
2559  end;  end;
2560    
2561    
2562  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2563  begin  begin
2564      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2565      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2566  end;  end;
2567    
2568  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2569  begin  begin
2570      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2571      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2572  end;  end;
2573    
2574    
2575  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2576  begin  begin
2577    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2578    begin    begin
2579       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2580    end    end
# Line 2875  begin Line 2585  begin
2585  end;  end;
2586    
2587    
2588  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2589  begin  begin
2590    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2591    begin    begin
2592       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2593    end    end
# Line 2888  begin Line 2598  begin
2598    
2599  end;  end;
2600    
2601  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2602  begin  begin
2603    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2604    begin    begin
2605       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2606    end    end
# Line 2912  begin Line 2622  begin
2622      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2623      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2624      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2625  // 20150317: start  
2626      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2627      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2628      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2629      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2630      begin      begin
2631        // 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)
2632        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 2944  begin Line 2654  begin
2654          // Tjekker UrlNormal          // Tjekker UrlNormal
2655          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2656          begin          begin
2657            if CheckUrl(UrlNormal) then            if TUtils.CheckUrl(UrlNormal) then
2658            begin            begin
2659              logTekst := 'UrlNormal accepteret: ' + UrlNormal;              logTekst := 'UrlNormal accepteret: ' + UrlNormal;
2660              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2973  begin Line 2683  begin
2683          // Tjekker UrlReturDAO          // Tjekker UrlReturDAO
2684          if PanelValg2.Enabled = true then          if PanelValg2.Enabled = true then
2685          begin          begin
2686            if CheckUrl(UrlReturDAO) then            if TUtils.CheckUrl(UrlReturDAO) then
2687            begin            begin
2688              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;
2689              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3001  begin Line 2711  begin
2711          // Tjekker UrlReturBoghandler          // Tjekker UrlReturBoghandler
2712          if PanelValg3.Enabled = true then          if PanelValg3.Enabled = true then
2713          begin          begin
2714            if CheckUrl(UrlReturBoghandler) then            if TUtils.CheckUrl(UrlReturBoghandler) then
2715            begin            begin
2716              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;
2717              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3029  begin Line 2739  begin
2739          // Tjekker UrlBudlevering          // Tjekker UrlBudlevering
2740          if PanelValg4.Enabled = true then          if PanelValg4.Enabled = true then
2741          begin          begin
2742            if CheckUrl(UrlBudlevering) then            if TUtils.CheckUrl(UrlBudlevering) then
2743            begin            begin
2744              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;
2745              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3057  begin Line 2767  begin
2767          // Tjekker UrlPakkeshoplevering          // Tjekker UrlPakkeshoplevering
2768          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2769          begin          begin
2770            if CheckUrl(UrlPakkeshoplevering) then            if TUtils.CheckUrl(UrlPakkeshoplevering) then
2771            begin            begin
2772              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;
2773              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3085  begin Line 2795  begin
2795          // Tjekker UrlReturPakkeshop          // Tjekker UrlReturPakkeshop
2796          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2797          begin          begin
2798            if CheckUrl(UrlReturPakkeshop) then            if TUtils.CheckUrl(UrlReturPakkeshop) then
2799            begin            begin
2800              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;
2801              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3114  begin Line 2824  begin
2824          if (PanelValg1.Enabled = true)          if (PanelValg1.Enabled = true)
2825          or (PanelValg4.Enabled = true) then          or (PanelValg4.Enabled = true) then
2826          begin          begin
2827            if CheckUrl(UrlManglendeScanninger) then            if TUtils.CheckUrl(UrlManglendeScanninger) then
2828            begin            begin
2829              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;
2830              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3142  begin Line 2852  begin
2852          // Tjekker UrlPakkeshopManglendeScanninger          // Tjekker UrlPakkeshopManglendeScanninger
2853          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2854          begin          begin
2855            if CheckUrl(UrlPakkeshopManglendeScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeScanninger) then
2856            begin            begin
2857              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;
2858              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3170  begin Line 2880  begin
2880          // Tjekker UrlPakkeshopManglendeReturScanninger          // Tjekker UrlPakkeshopManglendeReturScanninger
2881          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2882          begin          begin
2883            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeReturScanninger) then
2884            begin            begin
2885              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;
2886              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3195  begin Line 2905  begin
2905            end;            end;
2906          end;          end;
2907    
2908           // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2909            if PanelValg7.Enabled = true then
2910            begin
2911              if TUtils.CheckUrl(UrlIndleveringsPakke) then
2912              begin
2913                logTekst := 'UrlIndleveringsPakke accepteret: ' + UrlIndleveringsPakke;
2914                SkrivScanningLogFil(logTekst);
2915              end
2916              else
2917              begin
2918                inc(urlFejl);   // Optæller antal fejl
2919                logTekst := 'UrlIndleveringsPakke svarer ikke: ' + UrlIndleveringsPakke;
2920                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2921                if TjekUrls = '1' then
2922                begin
2923                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2924                end;
2925                SkrivScanningLogFil(logTekst);
2926                if TjekUrls = '1' then
2927                begin
2928                  ShowMessage(logTekst);
2929                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2930                  Application.Terminate;
2931                  exit;
2932                end;
2933              end;
2934    
2935              if TUtils.CheckUrl(UrlIndleveringsPakkeManglendeScanninger) then
2936              begin
2937                logTekst := 'UrlIndleveringsPakkeManglendeScanninger accepteret: ' + UrlIndleveringsPakkeManglendeScanninger;
2938                SkrivScanningLogFil(logTekst);
2939              end
2940              else
2941              begin
2942                inc(urlFejl);   // Optæller antal fejl
2943                logTekst := 'UrlIndleveringsPakkeManglendeScanninger svarer ikke: ' + UrlIndleveringsPakkeManglendeScanninger;
2944                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2945                if TjekUrls = '1' then
2946                begin
2947                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2948                end;
2949                SkrivScanningLogFil(logTekst);
2950                if TjekUrls = '1' then
2951                begin
2952                  ShowMessage(logTekst);
2953                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2954                  Application.Terminate;
2955                  exit;
2956                end;
2957              end;
2958            end;
2959    
2960          // Tjekker UrlEKLoverforsel          // Tjekker UrlEKLoverforsel
2961          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2962          begin          begin
2963            if CheckUrl(UrlEKLoverforsel) then            if TUtils.CheckUrl(UrlEKLoverforsel) then
2964            begin            begin
2965              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;
2966              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3223  begin Line 2985  begin
2985            end;            end;
2986          end;          end;
2987    
2988  // 20150330: start  
2989          // Tjekker UrlEKLoverforselPakkeshop          // Tjekker UrlEKLoverforselPakkeshop
2990          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2991          begin          begin
2992            if CheckUrl(UrlEKLoverforselPakkeshop) then            if TUtils.CheckUrl(UrlEKLoverforselPakkeshop) then
2993            begin            begin
2994              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;
2995              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 3251  begin Line 3013  begin
3013              end;              end;
3014            end;            end;
3015          end;          end;
3016  // 20150330: slut  
3017    
3018          // Tjekker UrlFindPakketype          // Tjekker UrlFindPakketype
3019          if CheckUrl(UrlFindPakketype) then          if TUtils.CheckUrl(UrlFindPakketype) then
3020          begin          begin
3021            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;
3022            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 3279  begin Line 3041  begin
3041          end;          end;
3042    
3043          // Tjekker UrlSendPrograminfo          // Tjekker UrlSendPrograminfo
3044          if CheckUrl(UrlSendPrograminfo) then          if TUtils.CheckUrl(UrlSendPrograminfo) then
3045          begin          begin
3046            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;
3047            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 3342  begin Line 3104  begin
3104      repeat      repeat
3105        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
3106        begin        begin
3107    
3108          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
3109          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
3110          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
# Line 3381  begin Line 3144  begin
3144    end;    end;
3145  end;  end;
3146    
3147  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
3148  begin  begin
3149    PakkeshopStregkode := '';    PakkeshopStregkode := '';
3150    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
3151    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
3152    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
3153    BoghandlerStregkode := '';    BoghandlerStregkode := '';
3154    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 3166  begin
3166  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
3167    if Farve <> '' then    if Farve <> '' then
3168    begin    begin
3169       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
3170  // 20150312: start  // 20150312: start
3171  (*  (*
3172    end    end
# Line 3477  end; Line 3240  end;
3240    
3241  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
3242  begin  begin
 // 20150311: start  
 (*  
   if PanelValgA.Color = clBtnFace then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
3243  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
3244  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
3245       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
3246       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
3247       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
3248  // 20150311: slut  
3249    
3250    
3251  end;  end;
3252    
3253  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3514  var Line 3264  var
3264    BoghandlerNavn : String;    BoghandlerNavn : String;
3265    Koreliste : String;    Koreliste : String;
3266    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3267    SmsKode : String;    SmsKode : String;
3268    DBKbane : String;    DBKbane : String;
3269    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 3285  begin
3285      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
3286      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
3287      MainForm.Color := clRed;      MainForm.Color := clRed;
3288      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
3289    end    end
3290    else    else
3291    begin    begin
3292      Falsk := False;      Falsk := False;
3293      Sand := True;  
3294      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
3295      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
3296      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 3310  var
3310    BoghandlerNavn : String;    BoghandlerNavn : String;
3311    Koreliste : String;    Koreliste : String;
3312    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3313    SmsKode : String;    SmsKode : String;
3314    DBKbane : String;    DBKbane : String;
3315    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 3318  begin
3318    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
3319    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
3320    Falsk := False;    Falsk := False;
3321    Sand := True;  
3322    
3323    if (Printer.Printers.Count = 0) then    if (Printer.Printers.Count = 0) then
3324    begin    begin
# Line 3605  begin Line 3353  begin
3353    end;    end;
3354  end;  end;
3355    
3356  {  
  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;  
3357    
3358  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3359  const  const
# Line 3643  var Line 3362  var
3362   tekst, filversion : String;   tekst, filversion : String;
3363  begin  begin
3364    
3365    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
3366    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';
3367    
3368    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 3384  begin
3384          end          end
3385          else          else
3386          begin          begin
3387            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3388          end;          end;
3389      end      end
3390      else      else
3391      begin      begin
3392        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3393      end;      end;
3394    end;    end;
3395    
# Line 3738  begin Line 3457  begin
3457    
3458    if FileExists(fileName) then    if FileExists(fileName) then
3459    begin    begin
3460      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3461      begin      begin
3462        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3463        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3481  begin
3481    
3482    if FileExists(fileName) then    if FileExists(fileName) then
3483    begin    begin
3484      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3485      begin      begin
3486        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3487        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3778  begin Line 3497  begin
3497    end;    end;
3498  end;  end;
3499    
3500    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3501    begin
3502      Scanningtype := '7';
3503      NulstilAutomatiskValg();
3504      InitIndleveringskode();
3505    end;
3506    
3507  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3508  begin  begin
3509    
3510    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3511    begin    begin
3512       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3513    end    end
3514    else    else
3515    begin    begin
3516       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3517    end;    end;
3518    
3519    
# Line 3810  end; Line 3536  end;
3536  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3537  begin  begin
3538        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3539        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3540        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3541        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3542        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3543        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3544        CheckBox1.Enabled := true;  
3545        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3546        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3547        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3548        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3549        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3550        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3551        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3552        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3553        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3554        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3555        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3556        ListBox1.Visible := true;        ListBox1.Visible := true;
3557        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3558        EKLoverforsel.Enabled := true;        EKLoverforsel.Enabled := true;
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3569  procedure TMainForm.InitReturFraDao();
3569  begin  begin
3570        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3571        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3572        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3573        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3574        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3575        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3576        CheckBox1.Enabled := false;  
3577        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3578        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3579        CheckBox2.Checked := false;  
3580        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3581        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3582        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3583        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3584        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3585        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3586        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3587        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3588        ListBox1.Visible := true;        ListBox1.Visible := true;
3589        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3590        ListBox2.Items.Clear;        ListBox2.Items.Clear;
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3596  procedure TMainForm.InitReturFraKunde();
3596  begin  begin
3597        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3598        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3599        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3600        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3601        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3602        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3603        CheckBox1.Enabled := false;  
3604        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3605        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3606        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3607        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3608        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3609        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3610        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3611        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3612        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3613        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3614        ListBox1.Visible := true;        ListBox1.Visible := true;
3615        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3616        ListBox2.Items.Clear;        ListBox2.Items.Clear;
# Line 3897  procedure TMainForm.InitDirektelevering( Line 3622  procedure TMainForm.InitDirektelevering(
3622  begin  begin
3623        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3624        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3625        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3626        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3627        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3628        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3629        CheckBox1.Enabled := false;  
3630        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3631        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3632        CheckBox2.Checked := false;  
3633        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3634        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3635        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3636        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3637        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3638        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3639        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3640        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3641        ListBox1.Visible := true;        ListBox1.Visible := true;
3642        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3643        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3644        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3645        DownloadButton03.Visible := false;        DownloadButton03.Visible := false;
3646        EKLoverforsel.Enabled := false;        EKLoverforsel.Enabled := false;
# Line 3933  procedure TMainForm.InitPakkeshopleverin Line 3658  procedure TMainForm.InitPakkeshopleverin
3658  begin  begin
3659        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3660        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3661        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3662        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3663        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3664        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3665        CheckBox1.Enabled := false;  
3666        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3667        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3668        CheckBox2.Checked := false;  
3669        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3670        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3671        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3672        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3673        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3674        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3675        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3676        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3677        ListBox1.Visible := true;        ListBox1.Visible := true;
3678        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3679        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3680        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3681  // 20150330: start  
 //      EKLoverforsel.Enabled := false;  
3682        EKLoverforsel.Enabled := true;        EKLoverforsel.Enabled := true;
3683  // 20150330: slut  
3684        InitLillePakke();        InitLillePakke();
3685        IndlesScanningLogFil();        IndlesScanningLogFil();
3686        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3971  procedure TMainForm.InitReturFraPakkesho Line 3695  procedure TMainForm.InitReturFraPakkesho
3695  begin  begin
3696        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3697        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3698        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3699        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3700        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3701        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3702        CheckBox1.Enabled := false;  
3703        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3704        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3705        CheckBox2.Checked := false;  
3706        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3707        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3708        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3709        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3710        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3711        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3712        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3713        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3714        ListBox1.Visible := true;        ListBox1.Visible := true;
3715        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3716        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3717        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3718        EKLoverforsel.Enabled := false;        EKLoverforsel.Enabled := false;
3719        InitLillePakke();        InitLillePakke();
# Line 4011  end; Line 3735  end;
3735    
3736  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3737  begin  begin
3738          menuIndlevering.Checked := true;
3739        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3740        Returpakkerfrapakkeshop1.Checked := true;  
3741        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3742        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3743        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3744        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3745        CheckBox1.Enabled := false;  
3746        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3747        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3748        CheckBox2.Checked := false;  
3749        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3750        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3751        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3752          chkSporgEfterKunde.Checked := false;
3753    
3754    
3755    
3756        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3757        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3758        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3759        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3760        ListBox1.Visible := true;        ListBox1.Visible := true;
3761        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3762        DownloadButton01.Enabled := false;  
3763          BtnDownloadKontrolfil.Enabled := false;
3764        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3765        EKLoverforsel.Enabled := false;        EKLoverforsel.Enabled := false;
3766        InitLillePakke();        InitLillePakke();
# Line 4057  end; Line 3786  end;
3786    
3787  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3788  begin  begin
3789    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3790    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3791  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3792  end;  end;
3793    
3794  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3795  begin  begin
3796    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3797    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3798  // 20150310: start  // 20150310: start
3799  //  Stregkode := '';  //  Stregkode := '';
3800  // 20150310: slut  // 20150310: slut
3801  end;  end;
3802    
 /// <summary>  
 ///   This function reads the file resource of "FileName" and returns  
 ///   the version number as formatted text.</summary>  
 /// <example>  
 ///   Sto_GetFmtFileVersion() = '4.13.128.0'  
 ///   Sto_GetFmtFileVersion('', '%.2d-%.2d-%.2d') = '04-13-128'  
 /// </example>  
 /// <remarks>If "Fmt" is invalid, the function may raise an  
 ///   EConvertError exception.</remarks>  
 /// <param name="FileName">Full path to exe or dll. If an empty  
 ///   string is passed, the function uses the filename of the  
 ///   running exe or dll.</param>  
 /// <param name="Fmt">Format string, you can use at most four integer  
 ///   values.</param>  
 /// <returns>Formatted version number of file, '' if no version  
 ///   resource found.</returns>  
 function TMainForm.Sto_GetFmtFileVersion(const FileName: String = '';  
   const Fmt: String = '%d.%d.%d.%d'): String;  
 var  
   sFileName: String;  
   iBufferSize: DWORD;  
   iDummy: DWORD;  
   pBuffer: Pointer;  
   pFileInfo: Pointer;  
   iVer: array[1..4] of Word;  
   S : String;  
 begin  
   // set default value  
   Result := '';  
   // get filename of exe/dll if no filename is specified  
   sFileName := Trim(FileName);  
   if (sFileName = '') then  
     sFileName := GetModuleName(HInstance);  
   // get size of version info (0 if no version info exists)  
   iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy);  
   if (iBufferSize > 0) then  
   begin  
     GetMem(pBuffer, iBufferSize);  
     try  
     // get fixed file info (language independent)  
     GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer);  
     VerQueryValue(pBuffer, '\', pFileInfo, iDummy);  
     // read version blocks  
     iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     finally  
       FreeMem(pBuffer);  
     end;  
     // format result string  
     Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]);  
3803    
     // Hvorfor virker ovenstående ikke ???  
     S := '';  
     Str(iVer[1],Result);  
     S := S+Result+'.';  
     Str(iVer[2],Result);  
     S := S+Result+'.';  
     Str(iVer[3],Result);  
     S := S+Result+'.';  
     Str(iVer[4],Result);  
     S := S+Result+'';  
     Result := S;  
   end;  
 end;  
3804    
3805  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3806  begin  begin
# Line 4163  end; Line 3825  end;
3825    
3826  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3827  begin  begin
 // 20150317: start  
3828    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3829    begin    begin
3830       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3837  begin
3837       end;       end;
3838       exit;       exit;
3839    end;    end;
 // 20150317: slut  
3840    
3841    if Smpakker1.Checked then    if Smpakker1.Checked then
3842       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4185  begin Line 3845  begin
3845       end       end
3846       else       else
3847       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3848         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3849       end;       end;
3850    if Storepakker1.Checked then    if Storepakker1.Checked then
3851       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4197  begin Line 3854  begin
3854       end       end
3855       else       else
3856       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3857         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3858       end;       end;
3859  end;  end;
3860    
# Line 4307  begin Line 3961  begin
3961           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3962         end;         end;
3963         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3964         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3965      end;      end;
3966    
3967  end;  end;
# Line 4331  begin Line 3985  begin
3985    else    else
3986      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3987  }  }
3988    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3989    
3990    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3991    CheckCode();    CheckCode();
# Line 4339  end; Line 3993  end;
3993    
3994  end;  end;
3995    
 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;  
3996    
3997  //  //
3998  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 4470  begin
4470    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4471  end;  end;
4472    
4473  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4474  begin  begin
4475      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4476      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
# Line 4879  begin Line 4494  begin
4494      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
4495  end;  end;
4496    
4497  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
4498    // ToDo: PrintPakkeshopLabel()
4499    procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4500  var  var
4501    S2: string;    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4502      Angle: integer;
4503      gMode: integer;
4504      Dirigering: string;
4505    
4506  begin  begin
4507    Result  := 0;      with Printer do
4508    S2 := S + Border;      begin
4509    repeat        BeginDoc();
4510      SetLength(A, Length(A) + 1);  
4511      a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);  
4512      Delete(S2, 1,Length(a[Result] + Border));        Canvas.Font.Size := 16;
4513      Inc(Result);        Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4514    until S2 = '';  
4515    
4516    
4517          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4518          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4519          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4520    
4521    
4522          Canvas.Font.Size := 9;
4523          Canvas.TextOut(110, 240, 'Pakkeshop:');
4524          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4525          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4526          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4527    
4528          Canvas.TextOut(350, 240, 'Afsender:');
4529          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4530          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4531          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4532    
4533          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4534          if ( PakkeshopLabel.Koreliste <> '') then
4535          begin
4536            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4537          end;
4538    
4539    
4540          Canvas.Font.Size := 12;
4541          Canvas.TextOut(15, 370, Dirigering);
4542    
4543    
4544    
4545    
4546    
4547          //Tegn adskillelses linier
4548          Canvas.Pen.Width := 2;
4549          //Øverste linie
4550          Canvas.MoveTo(20,80);
4551          Canvas.LineTo(600,80);
4552    
4553          // Midterste linie
4554          Canvas.MoveTo( 20, 240);
4555          Canvas.LineTo(600, 240);
4556    
4557          //Nederste linie
4558          Canvas.MoveTo( 20, 370);
4559          Canvas.LineTo(600, 370);
4560    
4561    
4562          //Tegn skrå streger over afsender
4563          Canvas.Pen.Width := 1;
4564          Canvas.MoveTo(600, 250);
4565          Canvas.LineTo(350, 360);
4566          Canvas.MoveTo(600, 360);
4567          Canvas.LineTo(350, 250);
4568    
4569    
4570    
4571    
4572          // Resten af rutinen vedr genering og placering af Barcode
4573    
4574          BarCode.BarCodeType := bcCode128;
4575          BarCode.Code128Subset := csCodeC;
4576          BarCode.Code := PakkeshopLabel.Stregkode;
4577          BarCode.Validate(True);
4578    
4579          //Start X-formation
4580          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4581          GetWorldTransform(Canvas.Handle, XFormOld);
4582    
4583          Angle := 270;
4584          XForm.eM11 := Cos(DegToRad(Angle));
4585          XForm.eM12 := Sin(DegToRad(Angle));
4586          XForm.eM21 := -Sin(DegToRad(Angle));
4587          XForm.eM22 := Cos(DegToRad(Angle));
4588          XForm.eDx := 0;
4589          XForm.eDy := 0;
4590    
4591          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4592          SetWorldTransform(Canvas.Handle, XForm);
4593    
4594          // PaintToCanvasSize arbejder i Inches
4595          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4596          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4597    
4598          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4599    
4600    
4601          SetWorldTransform(Canvas.Handle, XFormOld);
4602          SetGraphicsMode(Canvas.Handle, gMode);
4603    
4604          EndDoc();
4605        end;
4606    
4607    
4608  end;  end;
4609    
4610    function GetPixelsPerInchX(): Integer;
4611    begin
4612      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
4613    end;
4614    
4615    function GetPixelsPerInchY(): Integer;
4616    begin
4617      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
4618    end;
4619    
4620    
4621  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4622  var  var
4623    WebSvar : String;    WebSvar : String;
# Line 4905  var Line 4630  var
4630    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4631    pakketyper : TStrings;    pakketyper : TStrings;
4632    antlin : Integer;    antlin : Integer;
4633  // 20150306: start  
4634    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4635  // 20150306: slut  
4636    XmlFelter : TStrings;    XmlFelter : TStrings;
4637    
4638   begin   begin
# Line 4927  var Line 4652  var
4652          StedKode := Sted;          StedKode := Sted;
4653        end;        end;
4654    
4655  // 20150310: start  
4656  (*  
4657      if Returpakkerfrapakkeshop1.Checked then      if (Scanningtype = '7') then
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
      end  
     else if Pakkeshoplevering1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);  
      end  
     else if Pakkernormal1.Checked then  
4658       begin       begin
4659        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4660       end       end
4661      else      else if (Scanningtype = '6') then
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
4662       begin       begin
4663        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4664       end       end
4665      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4666       begin       begin
4667        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4668       end       end
4669      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4670       begin       begin
# Line 4989  var Line 4701  var
4701      try      try
4702        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4703    
4704  // 20150206: start  
4705        antlin := 0;        antlin := 0;
4706        antlinIdag := 0;        antlinIdag := 0;
4707        antlinSenere := 0;        antlinSenere := 0;
4708  // 20150306: slut  
       antalFelterFundet := 0;  
4709        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4710            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4711            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5026  var Line 4737  var
4737        antalFelterFundet := 0;        antalFelterFundet := 0;
4738        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4739        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4740  // 20150206: start  
 //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4741        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4742        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4743        begin        begin
4744          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4745        end;        end;
4746        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4747  // 20150306: slut  
4748        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4749        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4750            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
# Line 5078  var Line 4788  var
4788  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;
4789                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4790                    begin                    begin
4791                      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
4792                    end                    end
4793                    else                    else
4794                    begin                    begin
4795                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4796                    end;                    end;
4797  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4798                  end;                  end;
4799              end;              end;
4800              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
# Line 5110  var Line 4819  var
4819    
4820          // Free up the list object          // Free up the list object
4821        pakketyper.Free;        pakketyper.Free;
 // 20150306: start  
4822  //      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.');
4823        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4824        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4827  var
4827        end;        end;
4828        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4829        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4830        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4831        begin        begin
4832          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4835  var
4835        begin        begin
4836          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4837        end;        end;
 // 20150309: slut  
4838    
 // 20150310: start  
4839        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4840        begin        begin
4841          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4914  var
4914            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4915          end;          end;
4916        end;        end;
 // 20150310: slut  
4917    
4918      except on e:exception do      except on e:exception do
4919        begin        begin
# Line 5272  end; Line 4975  end;
4975  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4976  var  var
4977     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4978     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4979     imorgenYmd : string;     imorgenYmd : string;
4980     logFilnavn : string;     logFilnavn : string;
4981      error : Integer;     //error : Integer;
4982    
4983  begin  begin
4984    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 5070  begin
5070          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5071          S := buffer;          S := buffer;
5072          SetLength(A,0);          SetLength(A,0);
5073          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5074          if (length(A) < 2) then          if (length(A) < 2) then
5075          begin          begin
5076            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5077          end;          end;
5078            if (length(A) > 1) then            if (length(A) > 1) then
5079            begin            begin
# Line 5446  begin Line 5147  begin
5147          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5148          S := buffer;          S := buffer;
5149          SetLength(A,0);          SetLength(A,0);
5150          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5151          if (length(A) < 3) then          if (length(A) < 3) then
5152          begin          begin
5153            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5154          end;          end;
5155          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
5156          begin          begin
# Line 5541  begin Line 5242  begin
5242    result := svar;    result := svar;
5243  end;  end;
5244    
5245    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
5246    begin
5247      //ShowMessage('Ændring ikke tilladt');
5248      // Her skal komme en 'rød skærm' alarm
5249      PlaySound(PWideChar(AlarmLyd));
5250      MainForm.Color := clRed;
5251    
5252    
5253      RuteNummerST.Caption := '';
5254      BoghandlerNavnST.Caption := '';
5255      btnNulstil.Visible := true;
5256    
5257      if (strMessage <> '') then
5258      begin
5259        ListBox1.Items.Insert(0, strMessage);
5260        KommentarST.Caption := strMessage;
5261      end;
5262    
5263    end;
5264    
5265  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
5266  var  var
5267     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5622  procedure TMainForm.Scanogstjekkoden1Cli Line 5343  procedure TMainForm.Scanogstjekkoden1Cli
5343  begin  begin
5344    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
5345    begin    begin
5346       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
5347    end    end
5348    else    else
5349    begin    begin
5350       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
5351    end;    end;
5352  end;  end;
5353    
5354  function TMainForm.AdobeReaderExists: Boolean;  
5355  var  
5356    AReg: TRegistry;  
5357  begin  
5358    result:= false;  
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
 end;  
5359    
5360  procedure TMainForm.CheckPrintQue(tjektype : string);  procedure TMainForm.CheckPrintQue(tjektype : string);
5361  type  type
# Line 5745  begin Line 5460  begin
5460    end;    end;
5461  end;  end;
5462    
 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  
5463    
5464  end.  end.
5465    

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

  ViewVC Help
Powered by ViewVC 1.1.20