/[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 2704 by torben, Fri Sep 4 09:56:58 2015 UTC
# Line 8  uses Line 8  uses
8    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
9    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
10    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,
11    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet    Winspool, ShellApi, ClipBrd, Buttons, wininet,
12      UITypes,
13      PakkeshopLabels,
14      StBarC,
15      Math, // DegToRad() bruges i PrintPakkeshopLabel
16      Utils
17    
18    ;    ;
19    
20  type  type
   TStrArray = array of string;  
21    TMainForm = class(TForm)    TMainForm = class(TForm)
22      StregkodeST: TStaticText;      StregkodeST: TStaticText;
23      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
# Line 20  type Line 25  type
25      IdHTTP1: TIdHTTP;      IdHTTP1: TIdHTTP;
26      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
27      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
28      CheckBox1: TCheckBox;      chkSporgEfterKunde: TCheckBox;
29      KommentarST: TStaticText;      KommentarST: TStaticText;
30      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
31      N1: TMenuItem;      N1: TMenuItem;
# Line 36  type Line 41  type
41      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
42      N2: TMenuItem;      N2: TMenuItem;
43      N3: TMenuItem;      N3: TMenuItem;
44      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
45      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
46      N4: TMenuItem;      N4: TMenuItem;
47      Storepakker1: TMenuItem;      Storepakker1: TMenuItem;
48      Smpakker1: TMenuItem;      Smpakker1: TMenuItem;
# Line 47  type Line 52  type
52      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
53      ListBox1: TListBox;      ListBox1: TListBox;
54      Budlevering1: TMenuItem;      Budlevering1: TMenuItem;
55      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
56      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
57      Image1: TImage;      Image1: TImage;
58      ListBox2: TListBox;      ListBox2: TListBox;
59      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
60      UploadButton01: TButton;      BtnUploadLogfil: TButton;
61      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
62      Pakkeshoplevering1: TMenuItem;      Pakkeshoplevering1: TMenuItem;
63      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
64      PakkeshopNulstil: TButton;      btnNulstil: TButton;
65      Returpakkerfrapakkeshop1: TMenuItem;      Returpakkerfrapakkeshop1: TMenuItem;
66      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
67      CheckBox2: TCheckBox;      chkAltidPrintLabel: TCheckBox;
68      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
69      N5: TMenuItem;      N5: TMenuItem;
70      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
71      Manual1: TMenuItem;      Manual1: TMenuItem;
72      PrinterstatusStaticText1: TStaticText;      PrinterstatusStaticText1: TStaticText;
73      Timer1: TTimer;      Timer1: TTimer;
74      CheckBox3: TCheckBox;      chkScanTjekkode: TCheckBox;
75      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
76      Automatisktjekkodestyring1: TMenuItem;      Automatisktjekkodestyring1: TMenuItem;
77      Automatiskvalg1: TMenuItem;      Automatiskvalg1: TMenuItem;
# Line 77  type Line 82  type
82      PanelValg4: TPanel;      PanelValg4: TPanel;
83      PanelValg5: TPanel;      PanelValg5: TPanel;
84      PanelValg6: TPanel;      PanelValg6: TPanel;
85        PanelValg7: TPanel;
86      Manualgenerel1: TMenuItem;      Manualgenerel1: TMenuItem;
87      StaticTextManglendePakker: TStaticText;      StaticTextManglendePakker: TStaticText;
88      PanelManglendePakker1: TPanel;      PanelManglendePakker1: TPanel;
# Line 85  type Line 91  type
91      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
92      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
93      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
94      PanelValg7: TPanel;      menuIndlevering: TMenuItem;
95    
   function Explode(var a: TStrArray; Border, S: string): Integer;  
   function BarCodeValid (ACode: string): boolean;  
   function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String;  
   function TColorToHex(Color : TColor) : string;  
   function HexToTColor(sColor : string) : TColor;  
96    function getProddato() : TDate;    function getProddato() : TDate;
97    function getProddag() : String;    function getProddag() : String;
98    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
99    function GetCurrentPrinterHandle() : THandle;    function GetCurrentPrinterHandle() : THandle;
100    function SavePChar(p: PChar): PChar;    function SavePChar(p: PChar): PChar;
   function AdobeReaderExists(): Boolean;  
   function FileTime2DateTime(FileTime: TFileTime): TDateTime;  
   function split(input: string; schar: Char; s: Integer): string;  
   function CheckUrl(url:string):boolean;  
101    
102    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
103    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 110  type
110    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
111    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
112    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
113    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
114    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
115    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
116    procedure Pakkernormal1Click(Sender: TObject);    procedure Pakkernormal1Click(Sender: TObject);
117    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
118    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
# Line 131  type Line 128  type
128    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
129    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
130    procedure Budlevering1Click(Sender: TObject);    procedure Budlevering1Click(Sender: TObject);
131    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
132    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
133    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
134    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
135    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 140  type Line 137  type
137    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
138    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
139    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
140    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
141    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
142    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
143    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
144    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
145    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
146    procedure InitReturFraDao();    procedure InitReturFraDao();
# Line 154  type Line 151  type
151    procedure InitIndleveringskode();    procedure InitIndleveringskode();
152    
153    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
154    procedure CheckBox2Click(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
155    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
156    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
157    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
158    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
159    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
160    procedure CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
161    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure Automatisktjekkodestyring1Click(Sender: TObject);
162    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
163    procedure Automatiskvalg1Click(Sender: TObject);    procedure Automatiskvalg1Click(Sender: TObject);
# Line 172  type Line 168  type
168    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
169    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
170    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
171      procedure PanelValg7Click(Sender: TObject);
172    
173    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
174    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
175    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
176    procedure TjekkerUrls();    procedure TjekkerUrls();
177  // 20150310: start    procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
178    procedure RoundCornerOf(Control: TWinControl);  
179      procedure menuIndleveringClick(Sender: TObject);
180    
181      procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
182      procedure CheckPrintQue(tjektype : string);
183    
     procedure PanelValg7Click(Sender: TObject);  
 // 20150310: slut  
184    
185    private    private
186      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder
# Line 188  type Line 188  type
188      SkrivLog : String;      SkrivLog : String;
189      Sted : String;      Sted : String;
190      StedNavn : String;      StedNavn : String;
191      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;
192  // 29150330: start  // 29150330: start
193      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
194  // 20150330: slut  // 20150330: slut
# Line 196  type Line 196  type
196      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
197      ScanTjekkode : String;      ScanTjekkode : String;
198      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
199      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;
200      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;
201      LabelType : integer;      LabelType : integer;
202      AlarmLyd : String;      AlarmLyd : String;
203      ScannetOkLyd : String;      ScannetOkLyd : String;
204      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
205  // 20150317: start  
206      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
207  // 20150317: slut  
208      PrinterNavn : String;      PrinterNavn : String;
209      TjekPrinter : String;      TjekPrinter : String;
210      XPosRute : integer;      XPosRute : integer;
# Line 243  type Line 243  type
243      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
244      TjekUrls : String;      TjekUrls : String;
245    
246            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      Barcode : TStBarcode;
247    
248    
249      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
250      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
# Line 255  type Line 256  type
256      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
257      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
258      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
259        procedure VisAlarmSkaerm(strMessage: string);
260    
261    public    public
262      { Public declarations }      { Public declarations }
263    end;    end;
264    
265          function GetPixelsPerInchX(): Integer;
266        function GetPixelsPerInchY(): Integer;
267    
268  var  var
269    MainForm: TMainForm;    MainForm: TMainForm;
270    
# Line 273  var Line 278  var
278  implementation  implementation
279  {$R *.dfm}  {$R *.dfm}
280    
 function TMainForm.TColorToHex(Color : TColor) : string;  
 begin  
    Result :=  
      IntToHex(GetRValue(Color), 2) +  
      IntToHex(GetGValue(Color), 2) +  
      IntToHex(GetBValue(Color), 2) ;  
 end;  
   
 function TMainForm.HexToTColor(sColor : string) : TColor;  
 begin  
    Result :=  
      RGB(  
        StrToInt('$'+Copy(sColor, 1, 2)),  
        StrToInt('$'+Copy(sColor, 3, 2)),  
        StrToInt('$'+Copy(sColor, 5, 2))  
      ) ;  
 end;  
281    
282  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
283  begin  begin
284    
285  // 20150309: startr  
286      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
287  // 20150309: slut  
288    
289        Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
290    
291      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
292      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 340  begin Line 330  begin
330        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
331      end;      end;
332    
333      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
334    
335      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
336      begin      begin
# Line 394  begin Line 384  begin
384    
385      StartScreen();      StartScreen();
386      MainForm.Caption := Titel;      MainForm.Caption := Titel;
387      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
388      MainForm.Farve := Farve;      MainForm.Farve := Farve;
389      MainForm.Titel := Titel;      MainForm.Titel := Titel;
390      MainForm.Url := Url;      MainForm.Url := Url;
# Line 409  begin Line 399  begin
399      else      else
400        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
401    
402      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
403      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
404      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
405    
406      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
407      begin      begin
408        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
409        begin        begin
410          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
411          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
412          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
413        end        end
414        else        else
415        begin        begin
416          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
417          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
418          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
419        end;        end;
420      end;      end;
421    
422      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
423      begin      begin
424        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
425        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
426      end;      end;
427    
# Line 454  begin Line 444  begin
444          end          end
445          else          else
446          begin          begin
447            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
448          end;          end;
449          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
450        end        end
451        else        else
452        begin        begin
453          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
454          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
455        end;        end;
456      end;      end;
# Line 472  begin Line 462  begin
462    
463    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
464    begin    begin
465       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
466    end    end
467    else    else
468    begin    begin
469       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
470    end;    end;
471    
472  end;  end;
# Line 490  procedure TMainForm.Automatisktjekkodest Line 480  procedure TMainForm.Automatisktjekkodest
480  begin  begin
481    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
482    begin    begin
483       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
484       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
485    end    end
486    else    else
487    begin    begin
488       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
489       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
490    end;    end;
491    
# Line 503  end; Line 493  end;
493    
494  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
495  begin  begin
 // 20150317: start  
 (*  
   if Automatiskvalg1.Checked then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
496  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
497  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
498       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
499       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
500       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
501  end;  end;
502    
503  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
# Line 531  const Line 505  const
505    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
506  var  var
507    printerInd : integer;    printerInd : integer;
   i : Integer;  
 // 20150310: start  
508    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
509    
510  begin  begin
511    // Initierer nogle variabler    // Initierer nogle variabler
# Line 542  begin Line 513  begin
513    Application.ShowHint := True;    Application.ShowHint := True;
514    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
515    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
516  // 20150306: start  
517    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
518  // 20150306: slut  
519  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
520    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
521    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
522    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
523    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
524    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
525    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
526    
527    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp
528    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 579  begin Line 549  begin
549      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');
550      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');
551      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');
552  // 20150330: start  
553      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');
554  // 20150330: slut  
555      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');
556      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');
557      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');
558      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
559    
560    
561        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
562        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
563    
564    
565    
566      LabelType := ReadInteger('Settings','LabelType',1);      LabelType := ReadInteger('Settings','LabelType',1);
567      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
568      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
# Line 597  begin Line 574  begin
574      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
575      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
576      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
577    
578      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
579      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
580    
581        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
582        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
583    
584    
585      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
586      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
587      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 591  begin
591      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
592      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
593      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
594  // 20150317: start  
595      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
596  // 20150317: slut  
597      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
598      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
599      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
600    
601      if (SkrivLog = '1') then      if (SkrivLog = '1') then
602      begin      begin
603        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);        logTekst := 'Program start (Version: ' + TUtils.Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
604        try        try
605          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
606          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
607          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
608          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
609          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
610          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 711  begin Line 694  begin
694    
695      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
696      begin      begin
697        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
698        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
699      end      end
700      else      else
701      begin      begin
702        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
703        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
704      end;      end;
705    
706      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
707      begin      begin
708        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
709        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
710      end      end
711      else      else
712      begin      begin
713        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
714        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
715      end;      end;
716    
717      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
718      begin      begin
719        Automatisktjekkodestyring1.Checked := true;        Automatisktjekkodestyring1.Checked := true;
720        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
721        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
722      end;      end;
723    
# Line 760  begin Line 743  begin
743      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
744      // *************************** //      // *************************** //
745    
746    {$IfDef STED_BK}
747        SpecialVersionSted := 'BK';
748    {$EndIf}
749    {$IfDef STED_DBK}
750        SpecialVersionSted := 'DBK';
751    {$EndIf}
752    {$IfDef STED_FD}
753        SpecialVersionSted := 'FD';
754    {$EndIf}
755    {$IfDef STED_NS}
756        SpecialVersionSted := 'NS';
757    {$EndIf}
758    
759    
760      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
761      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
762      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 772  begin
772      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
773      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
774    
 // 20150313: start  
775      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
776      begin      begin
777         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 786  begin Line 782  begin
782         SpecialVersionSted := '03';         SpecialVersionSted := '03';
783         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
784      end;      end;
 // 20150313: slut  
785    
786      if SpecialVersionSted = 'BK' then      if SpecialVersionSted = 'BK' then
787      begin      begin
# Line 826  begin Line 821  begin
821        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
822        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
823        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
824          PanelValg7.Enabled := false;
825          PanelValg7.Font.Color := clInactiveCaption;
826    
827       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
828        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
829        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
830  // 20150317: start  
831        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
832        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
833  // 20150317: slut  
834        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
835        begin        begin
836           Scanningtype := '1';           Scanningtype := '1';
# Line 862  begin Line 860  begin
860        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
861        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
862        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
863          PanelValg7.Enabled := false;
864          PanelValg7.Font.Color := clInactiveCaption;
865       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge       // her skal vi også disable de menupunkter Bladhusene (01, 02, 03 og 04) ikke kan bruge
866  // 20150317: start  
867        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
868  // 20150317: slut  
869        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
870        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
871        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 957  begin Line 957  begin
957             RutenummerST.Caption := '';             RutenummerST.Caption := '';
958             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
959             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
960             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
961             exit;             exit;
962          end;          end;
963      end      end
# Line 1000  begin Line 1000  begin
1000      if Pakketype = '1' then      if Pakketype = '1' then
1001      begin      begin
1002        Storepakker1.Checked := true;        Storepakker1.Checked := true;
1003        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
1004      end      end
1005      else      else
1006      begin      begin
1007        Smpakker1.Checked := true;        Smpakker1.Checked := true;
1008        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
1009      end;      end;
1010    
1011      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 1045  begin
1045        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
1046      end;      end;
1047    
1048  // 20150317: start  
1049      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
1050      begin      begin
1051        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
1052      end;      end;
1053  // 20150317: slut  
1054    
1055      if (PrinterNavn <> '') then      if (PrinterNavn <> '') then
1056      begin      begin
# Line 1083  begin Line 1083  begin
1083          InitBladhus();          InitBladhus();
1084        end;        end;
1085    
1086  // 20150310: start  
1087      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1088      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1089    
# Line 1124  begin Line 1124  begin
1124      end;      end;
1125    
1126      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1127    
1128      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1129      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1130    
1131  end;  end;
1132    
# Line 1145  var Line 1144  var
1144    BoghandlerNavn : String;    BoghandlerNavn : String;
1145    Koreliste : String;    Koreliste : String;
1146    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1147    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1148    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1149    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1168  begin
1168      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1169      numberString := ClipboardData;      numberString := ClipboardData;
1170      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1171  // 20150311: start  
1172  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1173      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1174      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1175      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1186  begin Line 1184  begin
1184      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1185      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1186      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1187  // 20150311: slut  
1188      begin      begin
1189        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1190        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1199  begin Line 1197  begin
1197    
1198    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1199    begin    begin
 // 20150306: start  
1200      if (Length(Trim(Stregkode)) = 0) then      if (Length(Trim(Stregkode)) = 0) then
1201      begin      begin
1202        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1203        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;  
1204        exit;        exit;
1205      end;      end;
 // 20150306: slut  
1206    
 // 20150311: start  
1207      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1208      begin      begin
1209         PakkeshopNulstil.Click();         btnNulstil.Click();
1210         exit;         exit;
1211      end;      end;
1212    
1213      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1214      begin      begin
1215         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1216  // 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  
1217         exit;         exit;
1218      end;      end;
1219    
1220      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1221      begin      begin
1222         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1223         begin         begin
1224            InitLillePakke();            InitLillePakke();
1225         end         end
1226         else         else
1227         begin         begin
1228          //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;  
1229         end;         end;
1230         Stregkode := '';         Stregkode := '';
1231         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1234  begin
1234    
1235      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1236      begin      begin
1237         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1238         begin         begin
1239            InitStorPakke();            InitStorPakke();
1240         end         end
1241         else         else
1242         begin         begin
1243          //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;  
1244         end;         end;
1245         Stregkode := '';         Stregkode := '';
1246         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1294  begin Line 1249  begin
1249    
1250      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1251      begin      begin
1252         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1253         begin         begin
1254           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1255           begin           begin
1256            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1257           end           end
1258           else           else
1259           begin           begin
1260            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1261           end;           end;
1262         end         end
1263         else         else
1264         begin         begin
1265          //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;  
1266         end;         end;
1267         Stregkode := '';         Stregkode := '';
1268         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1271  begin
1271    
1272      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
1273      begin      begin
1274        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1275        begin        begin
1276           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1277           begin           begin
1278            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1279           end           end
1280           else           else
1281           begin           begin
1282            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1283           end;           end;
1284        end        end
1285        else        else
1286        begin        begin
1287          //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;  
1288        end;        end;
1289        Stregkode := '';        Stregkode := '';
1290        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1299  begin
1299         end         end
1300         else         else
1301         begin         begin
1302          //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;  
1303         end;         end;
1304         Stregkode := '';         Stregkode := '';
1305         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1306         exit;         exit;
1307      end;      end;
1308    
1309  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1310      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  
1311      begin      begin
1312         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1313         begin         begin
# Line 1395  begin Line 1315  begin
1315         end         end
1316         else         else
1317         begin         begin
1318          //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;  
1319         end;         end;
1320         Stregkode := '';         Stregkode := '';
1321         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1330  begin
1330         end         end
1331         else         else
1332         begin         begin
1333          //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;  
1334         end;         end;
1335         Stregkode := '';         Stregkode := '';
1336         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1345  begin
1345         end         end
1346         else         else
1347         begin         begin
1348          //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;  
1349         end;         end;
1350         Stregkode := '';         Stregkode := '';
1351         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1360  begin
1360         end         end
1361         else         else
1362         begin         begin
1363          //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;  
1364         end;         end;
1365         Stregkode := '';         Stregkode := '';
1366         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1375  begin
1375         end         end
1376         else         else
1377         begin         begin
1378          //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;  
1379         end;         end;
1380         Stregkode := '';         Stregkode := '';
1381         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1390  begin
1390         end         end
1391         else         else
1392         begin         begin
1393          //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;  
1394         end;         end;
1395         Stregkode := '';         Stregkode := '';
1396         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1397         exit;         exit;
1398      end;      end;
1399  // 20150311: slut  
1400    
1401      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1402      begin      begin
# Line 1597  begin Line 1451  begin
1451          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)
1452          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then
1453      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1454         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1455         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  
1456         exit;         exit;
1457      end;      end;
1458    
# Line 1626  begin Line 1468  begin
1468              end;              end;
1469            end            end
1470        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1471  (*  
       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  
 *)  
1472        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1473            begin            begin
1474              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1661  begin Line 1486  begin
1486              end;              end;
1487            end            end
1488        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1489  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1490        else        else
1491            begin   // Her skal komme en alarm og rød skærm            begin
1492               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1493               List1msg := 'Pakken kan ikke scannes med automatisk valg';              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1494               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  
1495               exit;               exit;
1496            end;            end;
1497        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1498      end      end
1499      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1500      begin      begin
1501        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1502        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  
1503        exit;        exit;
1504      end;      end;
1505    
# Line 1714  begin Line 1507  begin
1507      begin      begin
1508        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1509        begin        begin
         PlaySound(PWideChar(AlarmLyd));  
         List1msg := 'Pakke findes som pakketype: ' + Pakketype;  
         ListBox1.Items.Insert(0,List1Msg);  
         MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
         KommentarST.Caption := List1msg;  
         PakkeshopNulstil.Visible := true;  
 // 20150312: start  
         StregKode := '';  
         StregkodeST.Caption := StregKode;  
 // 20150312: slut  
         exit;  
       end;  
     end;  
   
 // 20150311: start  
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
   
     if PakkeshopNulstil.Visible then  
     begin  
        PlaySound(PWideChar(AlarmLyd));  
        List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
        exit;  
     end;  
1510    
1511      if StregKode = 'Lille pakke' then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        InitLillePakke();  
        exit;  
     end;  
   
     if StregKode = 'Stor pakke' then  
     begin  
        InitStorPakke();  
        exit;  
     end;  
1512    
1513      if StregKode = 'Indtast kundenummer' then          exit;
1514      begin        end;
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
1515      end;      end;
1516    
     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  
1517    
1518    
1519      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1520      begin      begin
1521        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1522        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1523        begin        begin
1524          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1525          begin          begin
1526              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1527              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1528          end;          end;
1529        end;        end;
# Line 1812  begin Line 1535  begin
1535             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1536             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1537             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1538             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1539             Stregkode := '';             Stregkode := '';
1540             InitScreen();             InitScreen();
1541        end        end
# Line 1824  begin Line 1547  begin
1547             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1548             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1549             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1550             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1551             Stregkode := '';             Stregkode := '';
1552             InitScreen();             InitScreen();
1553        end        end
# Line 1836  begin Line 1559  begin
1559              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1560              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1561              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1562  // 20150317: start  
1563              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1564  // 20150317: slut  
1565             end             end
1566            else            else
1567             begin             begin
1568                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;  
1569             end;             end;
1570            Stregkode := '';            Stregkode := '';
1571            InitScreen();            InitScreen();
# Line 1861  begin Line 1578  begin
1578             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1579             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1580             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1581                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1582             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1583                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1584             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1585           end           end
1586          else          else
1587           begin           begin
1588                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1589                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1590                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1591                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1592                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  
1593                StregKode := '';                StregKode := '';
1594                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1595  // 20150323: slut  
1596                exit;                exit;
1597           end;           end;
1598          Stregkode := '';          Stregkode := '';
# Line 1891  begin Line 1601  begin
1601    
1602      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then
1603      begin      begin
1604    
1605         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1606            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1607         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
# Line 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  
1680             if not btnNulstil.Visible then
1681            begin            begin
1682  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1683              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1684              begin              begin
1685                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1693  begin
1693                InitLillePakke();                InitLillePakke();
1694              end;              end;
1695            end;            end;
1696  // 20150310: start  
1697            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1698  // 20150310: slut  
1699            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1700            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1701            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1726  begin
1726    
1727    Key := #0;    Key := #0;
1728    
1729  end;  end; //End of OnKeyPress
1730    
1731  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1732  const  const
# Line 2063  end; Line 1763  end;
1763    
1764  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1765  var  var
 // 20150309: start  
 //  i:integer;  
1766    i : Integer;    i : Integer;
1767    wrkAntal : String;    wrkAntal : String;
1768    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1769  // 20150309: slut  
1770    
1771  begin  begin
1772      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked or menuIndlevering.Checked then
1773      begin      begin
1774        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1775          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1776          begin          begin
1777  // 20150309: start  
1778            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1779            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1780            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1781            begin            begin
1782              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1783              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1784  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1785  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1786  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1787              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1788            end            end
1789            else     // kun idag            else     // kun idag
1790            begin            begin
# Line 2112  begin Line 1810  begin
1810            begin            begin
1811              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1812            end;            end;
 // 20150309: slut  
1813    
 // 20150310: start  
1814            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1815            begin            begin
1816              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2192  begin Line 1888  begin
1888                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1889              end;              end;
1890            end;            end;
1891  // 20150310: slut  
1892            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1893          end;          end;
1894      end;      end;
# Line 2219  begin Line 1915  begin
1915  end;  end;
1916    
1917  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1918    
1919  begin  begin
1920    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2230  begin Line 1924  begin
1924    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1925    ListBox1.Visible := true;    ListBox1.Visible := true;
1926  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1927  // 20150317: start  
 (*  
   if TestFunktionen = '1' then  
     begin  
       Testforbindelsen1.Visible := true;  
       Testprinter1.Visible := true;  
       Testlyd1.Visible := true;  
       Testlyd2.Visible := true;  
     end  
   else if TestFunktionen = '2' then  
     begin  
       Testforbindelsen1.Enabled := false;  
       Testprinter1.Enabled := false;  
       Testlyd1.Enabled := false;  
       Testlyd2.Enabled := false;  
     end  
   else  
     begin  
       Testforbindelsen1.Visible := false;  
       Testprinter1.Visible := false;  
       Testlyd1.Visible := false;  
       Testlyd2.Visible := false;  
     end;  
   Testprinter1.Visible := false;  
   AlarmLyd := 'Sounds\Alarm.wav';  
   if not FileExists(AlarmLyd) then  
     begin  
       AlarmLyd := '';  
     end;  
   ScannetOkLyd := 'Sounds\Ok.wav';  
   if not FileExists(ScannetOkLyd) then  
     begin  
       ScannetOkLyd := '';  
     end;  
   ScannetOkStorLyd := 'Sounds\Ok_stor.wav';  
   if not FileExists(ScannetOkStorLyd) then  
     begin  
       ScannetOkStorLyd := '';  
     end;  
 *)  
 // 20150317: slut  
1928    if Budlevering1.Checked then    if Budlevering1.Checked then
1929    begin    begin
1930      IndlesScanningLogFil();      IndlesScanningLogFil();
# Line 2283  begin Line 1937  begin
1937      01 :      01 :
1938            begin;      // NS            begin;      // NS
1939              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1940              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1941              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1942              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1943              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1944              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2297  begin Line 1951  begin
1951              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1952              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1953              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1954              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1955              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1956              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1957              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1958              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1959              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1960              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 1964  begin
1964              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1965             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
1966              begin              begin
1967                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1968              end              end
1969              else              else
1970              begin              begin
1971                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1972              end;              end;
1973              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1974              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1975              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1976              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1977              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2335  begin Line 1989  begin
1989              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1990              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1991              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1992              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1993              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1994              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
1995              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1996              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1997              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1998            end;            end;
# Line 2354  var Line 2008  var
2008    URLStr : String;    URLStr : String;
2009    pakkestorrelse : String;    pakkestorrelse : String;
2010    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2011    
2012      PakkeshopLabel: TPakkeshopLabel;
2013  begin  begin
2014    if RadioButton1.Checked then    if radioStorPakke.Checked then
2015    begin    begin
2016      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
2017    end;    end;
2018    if RadioButton2.Checked then    if radioLillePakke.Checked then
2019    begin    begin
2020      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2021    end;    end;
2022    
2023    
2024    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
2025    begin    begin
2026       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 2049  begin
2049    begin    begin
2050       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2051    end    end
2052      else if menuIndlevering.Checked then
2053      begin
2054        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2055      end
2056    else    else
2057    begin    begin
2058      exit;      exit;
# Line 2425  begin Line 2087  begin
2087        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2088        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2089        PrintNyLabel := False;        PrintNyLabel := False;
2090  // 20150310: start  
2091        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2092        begin        begin
 // 20150310: slut  
2093          try          try
2094            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2095          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2099  begin
2099          begin          begin
2100            PrintNyLabel := True;            PrintNyLabel := True;
2101          end;          end;
 // 20150310: start  
2102        end;        end;
 // 20150310: slut  
2103       end       end
2104        else if menuIndlevering.Checked then
2105        begin
2106    
2107    
2108    
2109    
2110         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2111         if (Kommentar = 'Ok') then
2112         begin
2113           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2114           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2115           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2116           Stregkode := PakkeshopLabel.Stregkode;
2117    
2118           PrintPakkeshopLabel( PakkeshopLabel );
2119    
2120         end;
2121    
2122    
2123        end
2124      else      else
2125       begin       begin
2126        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2153  begin
2153          PrintNyLabel := True;          PrintNyLabel := True;
2154        end;        end;
2155      end;      end;
2156    
2157    
2158      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2159      begin      begin
2160        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2195  begin
2195    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2196      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2197    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2198    if RadioButton1.Checked then    if radioStorPakke.Checked then
2199    begin    begin
2200      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2201    end;    end;
2202    if RadioButton2.Checked then    if radioLillePakke.Checked then
2203    begin    begin
2204      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2205    end;    end;
# Line 2540  begin Line 2221  begin
2221    if Budlevering1.Checked then    if Budlevering1.Checked then
2222    begin    begin
2223       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2224        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2225        begin        begin
2226          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2227        end;        end;
2228        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2229        begin        begin
2230          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2231        end;        end;
# Line 2566  begin Line 2247  begin
2247        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2248      end;      end;
2249    end;    end;
2250      if menuIndlevering.Checked then
2251      begin
2252        List1Msg := Stregkode;
2253      end;
2254    
2255    
2256    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2257    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2258    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2259  end;  end;
2260    
2261  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2262  begin  begin
2263    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2264    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2588  pakkeForkertSted : Integer; Line 2275  pakkeForkertSted : Integer;
2275    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2276  begin  begin
2277    if Budlevering1.Checked then    if Budlevering1.Checked then
2278       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2279    
2280    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2281    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2288  begin
2288    end;    end;
2289    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2290    
2291  // 20150306: start  
2292  //  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
2293    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  
2294    begin    begin
2295        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2296        begin        begin
# Line 2631  begin Line 2317  begin
2317       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2318       begin       begin
2319          PrintNyLabel := false;          PrintNyLabel := false;
2320  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2321          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2322          MainForm.Color := clRed;          MainForm.Color := clRed;
2323          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2324  // 20150306: slut  
2325       end       end
2326       else       else
2327       begin       begin
# Line 2646  begin Line 2331  begin
2331            PrintNyLabel := true;            PrintNyLabel := true;
2332            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2333            nyFarve := Farve;            nyFarve := Farve;
2334            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2335            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2336            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2337            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2338            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2339            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2340  // 20150213: start  
2341            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2342            begin            begin
2343               PrintNyLabel := false;               PrintNyLabel := false;
2344            end;            end;
2345  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2346            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
2347            begin            begin
2348              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2349              MainForm.Color := clRed;              MainForm.Color := clRed;
2350              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2351            end;            end;
2352  // 20150306: slut  
2353         end;         end;
2354         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2355         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2368  begin
2368            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2369            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2370            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2371  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2372            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
2373            begin            begin
2374              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2375              MainForm.Color := clRed;              MainForm.Color := clRed;
2376              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2377            end;            end;
2378  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2379         end;         end;
2380       end;       end;
2381    
# Line 2719  begin Line 2397  begin
2397                end;                end;
2398              end;              end;
2399        01 :  begin;        01 :  begin;
2400               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2401                    // 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
2402                    // 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')
2403                begin                begin
# Line 2733  begin Line 2411  begin
2411                end;                end;
2412              end;              end;
2413        03 :  begin;        03 :  begin;
2414               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2415                    // 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
2416                    // 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')
2417               begin               begin
# Line 2757  begin Line 2435  begin
2435      exit;      exit;
2436    end;    end;
2437    
2438    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
2439    begin    begin
2440    end    end
2441    else    else
2442    begin    begin
2443      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
2444      begin      begin
2445        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2446        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2447        begin        begin
2448          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2449        end        end
# Line 2832  begin Line 2510  begin
2510          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2
2511        end;        end;
2512        Canvas.Font.Size := FontSizeKommentar;        Canvas.Font.Size := FontSizeKommentar;
2513    
2514        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
 // 20150304: start  
2515        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);
2516  // 20150304: slut  
2517        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)
2518        if SmsKode <> '' then        if SmsKode <> '' then
2519        begin        begin
# Line 2849  begin Line 2527  begin
2527  end;  end;
2528    
2529    
2530  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2531  begin  begin
2532      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2533      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2534  end;  end;
2535    
2536  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2537  begin  begin
2538      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2539      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2540  end;  end;
2541    
2542    
2543  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2544  begin  begin
2545    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2546    begin    begin
2547       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2548    end    end
# Line 2875  begin Line 2553  begin
2553  end;  end;
2554    
2555    
2556  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2557  begin  begin
2558    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2559    begin    begin
2560       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2561    end    end
# Line 2888  begin Line 2566  begin
2566    
2567  end;  end;
2568    
2569  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2570  begin  begin
2571    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2572    begin    begin
2573       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2574    end    end
# Line 2912  begin Line 2590  begin
2590      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2591      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2592      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2593  // 20150317: start  
2594      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2595      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2596      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2597      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2598      begin      begin
2599        // 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)
2600        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 2936  begin Line 2614  begin
2614    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2615    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2616    
2617          // Tjekker urls    try
2618          logTekst := 'Tjekker urls.';      // Tjekker urls
2619          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2620          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2621        SkrivScanningLogFil(logTekst);
2622    
         // Tjekker UrlNormal  
         if PanelValg1.Enabled = true then  
         begin  
           if CheckUrl(UrlNormal) then  
           begin  
             logTekst := 'UrlNormal accepteret: ' + UrlNormal;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlNormal svarer ikke: ' + UrlNormal;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               TjekUrls := '-';   // markerer at der var fejl  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2623    
         // Tjekker UrlReturDAO  
         if PanelValg2.Enabled = true then  
         begin  
           if CheckUrl(UrlReturDAO) then  
           begin  
             logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2624    
2625          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2626          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2627          begin      begin
2628            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2629            begin      end;
             logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2630    
2631          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2632          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2633          begin      begin
2634            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2635            begin      end;
             logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlBudlevering svarer ikke: ' + UrlBudlevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2636    
2637          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2638          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2639          begin      begin
2640            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2641            begin      end;
             logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshoplevering svarer ikke: ' + UrlPakkeshoplevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2642    
2643          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2644          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2645          begin      begin
2646            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2647            begin      end;
             logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturPakkeshop svarer ikke: ' + UrlReturPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2648    
2649          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2650          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2651          or (PanelValg4.Enabled = true) then      begin
2652          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2653            if CheckUrl(UrlManglendeScanninger) then      end;
           begin  
             logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlManglendeScanninger svarer ikke: ' + UrlManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2654    
2655          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2656          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2657          begin      begin
2658            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2659            begin      end;
             logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeScanninger svarer ikke: ' + UrlPakkeshopManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2660    
2661          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2662          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2663          begin      begin
2664            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2665            begin      end;
             logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeReturScanninger svarer ikke: ' + UrlPakkeshopManglendeReturScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2666    
2667          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2668          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2669          begin      begin
2670            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2671            begin      end;
             logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforsel svarer ikke: ' + UrlEKLoverforsel;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2672    
2673  // 20150330: start      // Tjekker UrlPakkeshopManglendeReturScanninger
2674          // Tjekker UrlEKLoverforselPakkeshop      if PanelValg6.Enabled = true then
2675          if PanelValg5.Enabled = true then      begin
2676          begin        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2677            if CheckUrl(UrlEKLoverforselPakkeshop) then      end;
           begin  
             logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforselPakkeshop svarer ikke: ' + UrlEKLoverforselPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
 // 20150330: slut  
2678    
2679          // Tjekker UrlFindPakketype     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2680          if CheckUrl(UrlFindPakketype) then      if PanelValg7.Enabled = true then
2681          begin      begin
2682            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2683            SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2684          end      end;
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlFindPakketype svarer ikke: ' + UrlFindPakketype;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2685    
2686          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforsel
2687          if CheckUrl(UrlSendPrograminfo) then      if PanelValg1.Enabled = true then
2688          begin      begin
2689            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2690            SkrivScanningLogFil(logTekst);      end;
         end  
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2691    
         if urlFejl > 0 then  
         begin  
           TjekUrls := '-';   // markerer at der var fejl  
         end  
         else  
         begin  
           logTekst := 'urls er ok';  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
2692    
2693        // Tjekker UrlEKLoverforselPakkeshop
2694        if PanelValg5.Enabled = true then
2695        begin
2696          TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2697        end;
2698    
2699    
2700        // Tjekker UrlFindPakketype
2701        TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2702    
2703        // Tjekker UrlSendPrograminfo
2704        TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2705    
2706    
2707    
2708        logTekst := 'urls er ok';
2709        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2710        SkrivScanningLogFil(logTekst);
2711    
2712      Except
2713        TjekUrls := '-';   // markerer at der var fejl
2714    
2715      end;
2716  end;  end;
2717    
2718  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2719  var  const
2720     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2721  begin  begin
2722     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2723     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2724     Result := SystemTimeToDateTime(SystemTime) ;    begin
2725        logTekst := UrlNavn + ' accepteret: ' + Url;
2726        SkrivScanningLogFil(logTekst);
2727      end
2728      else
2729      begin
2730        inc(urlFejl);   // Optæller antal fejl
2731        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2732        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2733        if TjekUrls = '1' then
2734        begin
2735          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2736        end;
2737    
2738        SkrivScanningLogFil(logTekst);
2739    
2740        if TjekUrls = '1' then
2741        begin
2742          ShowMessage(logTekst);
2743          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2744          Application.Terminate;
2745    
2746          raise Exception.Create('UrlFejl');
2747    
2748        end;
2749      end;
2750    
2751  end;  end;
2752    
2753    
2754    
2755  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2756  var  var
2757    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 2768  begin
2768      repeat      repeat
2769        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2770        begin        begin
2771    
2772          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2773          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2774          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2775          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2776          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2777          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
# Line 3381  begin Line 2808  begin
2808    end;    end;
2809  end;  end;
2810    
2811  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2812  begin  begin
2813    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2814    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2815    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2816    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2817    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2818    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 2830  begin
2830  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2831    if Farve <> '' then    if Farve <> '' then
2832    begin    begin
2833       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
 // 20150312: start  
 (*  
   end  
   else  
   begin  
      ShowMessage('Programmet afbrydes...');  
      UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
      Application.Terminate;  
 *)  
 // 20150312: slut  
2834    end;    end;
2835    if (Budlevering1.Checked) then    if (Budlevering1.Checked) then
2836    begin    begin
# Line 3477  end; Line 2894  end;
2894    
2895  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2896  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;  
 *)  
2897  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2898  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2899       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
2900       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2901       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2902  // 20150311: slut  
2903    
2904    
2905  end;  end;
2906    
2907  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3514  var Line 2918  var
2918    BoghandlerNavn : String;    BoghandlerNavn : String;
2919    Koreliste : String;    Koreliste : String;
2920    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2921    SmsKode : String;    SmsKode : String;
2922    DBKbane : String;    DBKbane : String;
2923    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 2939  begin
2939      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2940      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2941      MainForm.Color := clRed;      MainForm.Color := clRed;
2942      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2943    end    end
2944    else    else
2945    begin    begin
2946      Falsk := False;      Falsk := False;
2947      Sand := True;  
2948      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2949      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2950      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 2964  var
2964    BoghandlerNavn : String;    BoghandlerNavn : String;
2965    Koreliste : String;    Koreliste : String;
2966    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2967    SmsKode : String;    SmsKode : String;
2968    DBKbane : String;    DBKbane : String;
2969    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 2972  begin
2972    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2973    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2974    Falsk := False;    Falsk := False;
2975    Sand := True;  
2976    
2977    if (Printer.Printers.Count = 0) then    if (Printer.Printers.Count = 0) then
2978    begin    begin
# Line 3605  begin Line 3007  begin
3007    end;    end;
3008  end;  end;
3009    
3010  {  
  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;  
3011    
3012  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3013  const  const
# Line 3643  var Line 3016  var
3016   tekst, filversion : String;   tekst, filversion : String;
3017  begin  begin
3018    
3019    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
3020    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';
3021    
3022    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 3038  begin
3038          end          end
3039          else          else
3040          begin          begin
3041            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3042          end;          end;
3043      end      end
3044      else      else
3045      begin      begin
3046        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3047      end;      end;
3048    end;    end;
3049    
# Line 3738  begin Line 3111  begin
3111    
3112    if FileExists(fileName) then    if FileExists(fileName) then
3113    begin    begin
3114      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3115      begin      begin
3116        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3117        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3135  begin
3135    
3136    if FileExists(fileName) then    if FileExists(fileName) then
3137    begin    begin
3138      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3139      begin      begin
3140        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3141        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3142      end      end
3143      else      else
3144      begin      begin
3145        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3146      end;      end;
3147    end    end
3148    else    else
# Line 3778  begin Line 3151  begin
3151    end;    end;
3152  end;  end;
3153    
3154    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3155    begin
3156      Scanningtype := '7';
3157      NulstilAutomatiskValg();
3158      InitIndleveringskode();
3159    end;
3160    
3161  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3162  begin  begin
3163    
3164    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3165    begin    begin
3166       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3167    end    end
3168    else    else
3169    begin    begin
3170       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3171    end;    end;
3172    
3173    
# Line 3810  end; Line 3190  end;
3190  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3191  begin  begin
3192        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3193        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3194        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3195        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3196        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3197        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3198        CheckBox1.Enabled := true;  
3199        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3200        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3201        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3202        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3203        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3204        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3205        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3206        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3207        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3208        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3209        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3210        ListBox1.Visible := true;        ListBox1.Visible := true;
3211        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3212        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3213        InitLillePakke();        InitLillePakke();
3214        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3215        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3223  procedure TMainForm.InitReturFraDao();
3223  begin  begin
3224        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3225        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3226        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3227        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3228        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3229        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3230        CheckBox1.Enabled := false;  
3231        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3232        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3233        CheckBox2.Checked := false;  
3234        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3235        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3236        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3237        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3238        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3239        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3240        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3241        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3242        ListBox1.Visible := true;        ListBox1.Visible := true;
3243        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3244        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3245        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3246        InitLillePakke();        InitLillePakke();
3247  end;  end;
3248    
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3250  procedure TMainForm.InitReturFraKunde();
3250  begin  begin
3251        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3252        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3253        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3254        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3255        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3256        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3257        CheckBox1.Enabled := false;  
3258        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3259        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3260        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3261        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3262        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3263        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3264        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3265        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3266        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3267        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3268        ListBox1.Visible := true;        ListBox1.Visible := true;
3269        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3270        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3271        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3272        InitLillePakke();        InitLillePakke();
3273  end;  end;
3274    
# Line 3897  procedure TMainForm.InitDirektelevering( Line 3276  procedure TMainForm.InitDirektelevering(
3276  begin  begin
3277        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3278        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3279        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3280        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3281        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3282        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3283        CheckBox1.Enabled := false;  
3284        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3285        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3286        CheckBox2.Checked := false;  
3287        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3288        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3289        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3290        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3291        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3292        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3293        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3294        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3295        ListBox1.Visible := true;        ListBox1.Visible := true;
3296        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3297        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3298        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3299        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3300        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3301        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3302        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3303        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
# Line 3933  procedure TMainForm.InitPakkeshopleverin Line 3312  procedure TMainForm.InitPakkeshopleverin
3312  begin  begin
3313        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3314        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3315        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3316        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3317        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3318        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3319        CheckBox1.Enabled := false;  
3320        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3321        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3322        CheckBox2.Checked := false;  
3323        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3324        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3325        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3326        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3327        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3328        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3329        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3330        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3331        ListBox1.Visible := true;        ListBox1.Visible := true;
3332        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3333        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3334        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3335  // 20150330: start  
3336  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3337        EKLoverforsel.Enabled := true;  
 // 20150330: slut  
3338        InitLillePakke();        InitLillePakke();
3339        IndlesScanningLogFil();        IndlesScanningLogFil();
3340        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3971  procedure TMainForm.InitReturFraPakkesho Line 3349  procedure TMainForm.InitReturFraPakkesho
3349  begin  begin
3350        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3351        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3352        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3353        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3354        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3355        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3356        CheckBox1.Enabled := false;  
3357        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3358        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3359        CheckBox2.Checked := false;  
3360        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3361        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3362        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3363        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3364        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3365        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3366        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3367        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3368        ListBox1.Visible := true;        ListBox1.Visible := true;
3369        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3370        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3371        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3372        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3373        InitLillePakke();        InitLillePakke();
3374        IndlesScanningLogFil();        IndlesScanningLogFil();
3375        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4011  end; Line 3389  end;
3389    
3390  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3391  begin  begin
3392          menuIndlevering.Checked := true;
3393        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3394        Returpakkerfrapakkeshop1.Checked := true;  
3395        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3396        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3397        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3398        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3399        CheckBox1.Enabled := false;  
3400        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3401        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3402        CheckBox2.Checked := false;  
3403        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3404        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3405        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3406          chkSporgEfterKunde.Checked := false;
3407    
3408    
3409    
3410        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3411        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3412        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3413        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3414        ListBox1.Visible := true;        ListBox1.Visible := true;
3415        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3416        DownloadButton01.Enabled := false;  
3417        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3418        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3419          BtnEKLoverforsel.Enabled := false;
3420        InitLillePakke();        InitLillePakke();
3421        IndlesScanningLogFil();        IndlesScanningLogFil();
3422        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4057  end; Line 3440  end;
3440    
3441  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3442  begin  begin
3443    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3444    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3445  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3446  end;  end;
3447    
3448  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3449  begin  begin
3450    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3451    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3452  // 20150310: start  // 20150310: start
3453  //  Stregkode := '';  //  Stregkode := '';
3454  // 20150310: slut  // 20150310: slut
3455  end;  end;
3456    
 /// <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]]);  
3457    
     // 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;  
3458    
3459  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3460  begin  begin
# Line 4163  end; Line 3479  end;
3479    
3480  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3481  begin  begin
 // 20150317: start  
3482    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3483    begin    begin
3484       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3491  begin
3491       end;       end;
3492       exit;       exit;
3493    end;    end;
 // 20150317: slut  
3494    
3495    if Smpakker1.Checked then    if Smpakker1.Checked then
3496       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4185  begin Line 3499  begin
3499       end       end
3500       else       else
3501       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3502         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3503       end;       end;
3504    if Storepakker1.Checked then    if Storepakker1.Checked then
3505       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4197  begin Line 3508  begin
3508       end       end
3509       else       else
3510       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3511         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3512       end;       end;
3513  end;  end;
3514    
# Line 4217  begin; Line 3525  begin;
3525    CheckCode();    CheckCode();
3526  end;  end;
3527    
3528  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3529  var  var
3530    WebSvar : String;    WebSvar : String;
3531    URLStr : String;    URLStr : String;
# Line 4227  var Line 3535  var
3535    status, kommentar : String;    status, kommentar : String;
3536    
3537  begin  begin
3538      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3539    
3540      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');
3541      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3542      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3543      StedKode := Sted;      StedKode := Sted;
3544      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3545  // 20150330: start  
3546      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3547      begin      begin
3548        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3549      end;      end;
3550  // 20150330: slut  
3551    
3552      try      try
3553      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4290  begin Line 3598  begin
3598        end;        end;
3599      end;      end;
3600    
3601      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3602    
3603      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
3604    
# Line 4307  begin Line 3615  begin
3615           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3616         end;         end;
3617         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3618         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3619      end;      end;
3620    
3621  end;  end;
# Line 4331  begin Line 3639  begin
3639    else    else
3640      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3641  }  }
3642    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3643    
3644    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3645    CheckCode();    CheckCode();
# Line 4339  end; Line 3647  end;
3647    
3648  end;  end;
3649    
 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;  
3650    
3651  //  //
3652  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 4124  begin
4124    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
4125  end;  end;
4126    
4127  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4128  begin  begin
4129      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4130      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
4131  end;  end;
4132    
4133  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4134  const  const
4135    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4136    
# Line 4870  begin Line 4139  begin
4139      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
4140  end;  end;
4141    
4142  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4143  begin  begin
4144      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4145      begin      begin
# Line 4879  begin Line 4148  begin
4148      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
4149  end;  end;
4150    
4151  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
4152    // ToDo: PrintPakkeshopLabel()
4153    procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4154  var  var
4155    S2: string;    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4156      Angle: integer;
4157      gMode: integer;
4158      Dirigering: string;
4159    
4160  begin  begin
4161    Result  := 0;      with Printer do
4162    S2 := S + Border;      begin
4163    repeat        BeginDoc();
4164      SetLength(A, Length(A) + 1);  
4165      a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);  
4166      Delete(S2, 1,Length(a[Result] + Border));        Canvas.Font.Size := 16;
4167      Inc(Result);        Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4168    until S2 = '';  
4169    
4170    
4171          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4172          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4173          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4174    
4175    
4176          Canvas.Font.Size := 9;
4177          Canvas.TextOut(110, 240, 'Pakkeshop:');
4178          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4179          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4180          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4181    
4182          Canvas.TextOut(350, 240, 'Afsender:');
4183          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4184          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4185          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4186    
4187          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4188          if ( PakkeshopLabel.Koreliste <> '') then
4189          begin
4190            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4191          end;
4192    
4193    
4194          Canvas.Font.Size := 12;
4195          Canvas.TextOut(15, 370, Dirigering);
4196    
4197    
4198    
4199    
4200    
4201          //Tegn adskillelses linier
4202          Canvas.Pen.Width := 2;
4203          //Øverste linie
4204          Canvas.MoveTo(20,80);
4205          Canvas.LineTo(600,80);
4206    
4207          // Midterste linie
4208          Canvas.MoveTo( 20, 240);
4209          Canvas.LineTo(600, 240);
4210    
4211          //Nederste linie
4212          Canvas.MoveTo( 20, 370);
4213          Canvas.LineTo(600, 370);
4214    
4215    
4216          //Tegn skrå streger over afsender
4217          Canvas.Pen.Width := 1;
4218          Canvas.MoveTo(600, 250);
4219          Canvas.LineTo(350, 360);
4220          Canvas.MoveTo(600, 360);
4221          Canvas.LineTo(350, 250);
4222    
4223    
4224    
4225    
4226          // Resten af rutinen vedr genering og placering af Barcode
4227    
4228          BarCode.BarCodeType := bcCode128;
4229          BarCode.Code128Subset := csCodeC;
4230          BarCode.Code := PakkeshopLabel.Stregkode;
4231          BarCode.Validate(True);
4232    
4233          //Start X-formation
4234          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4235          GetWorldTransform(Canvas.Handle, XFormOld);
4236    
4237          Angle := 270;
4238          XForm.eM11 := Cos(DegToRad(Angle));
4239          XForm.eM12 := Sin(DegToRad(Angle));
4240          XForm.eM21 := -Sin(DegToRad(Angle));
4241          XForm.eM22 := Cos(DegToRad(Angle));
4242          XForm.eDx := 0;
4243          XForm.eDy := 0;
4244    
4245          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4246          SetWorldTransform(Canvas.Handle, XForm);
4247    
4248          // PaintToCanvasSize arbejder i Inches
4249          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4250          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4251    
4252          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4253    
4254    
4255          SetWorldTransform(Canvas.Handle, XFormOld);
4256          SetGraphicsMode(Canvas.Handle, gMode);
4257    
4258          EndDoc();
4259        end;
4260    
4261    
4262    end;
4263    
4264    function GetPixelsPerInchX(): Integer;
4265    begin
4266      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
4267  end;  end;
4268    
4269    function GetPixelsPerInchY(): Integer;
4270    begin
4271      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
4272    end;
4273    
4274    
4275  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4276  var  var
4277    WebSvar : String;    WebSvar : String;
# Line 4905  var Line 4284  var
4284    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4285    pakketyper : TStrings;    pakketyper : TStrings;
4286    antlin : Integer;    antlin : Integer;
4287  // 20150306: start  
4288    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4289  // 20150306: slut  
4290    XmlFelter : TStrings;    XmlFelter : TStrings;
4291    
4292   begin   begin
# Line 4927  var Line 4306  var
4306          StedKode := Sted;          StedKode := Sted;
4307        end;        end;
4308    
4309  // 20150310: start  
4310  (*  
4311      if Returpakkerfrapakkeshop1.Checked then      if (Scanningtype = '7') then
4312       begin       begin
4313        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4314       end       end
4315      else if Pakkeshoplevering1.Checked then      else if (Scanningtype = '6') then
4316       begin       begin
4317        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
      end  
     else if Pakkernormal1.Checked then  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);  
      end  
     else  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
     if (Scanningtype = '6') then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
4318       end       end
4319      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4320       begin       begin
4321        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4322       end       end
4323      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4324       begin       begin
# Line 4989  var Line 4355  var
4355      try      try
4356        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4357    
4358  // 20150206: start  
4359        antlin := 0;        antlin := 0;
4360        antlinIdag := 0;        antlinIdag := 0;
4361        antlinSenere := 0;        antlinSenere := 0;
4362  // 20150306: slut  
       antalFelterFundet := 0;  
4363        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4364            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4365            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 5026  var Line 4391  var
4391        antalFelterFundet := 0;        antalFelterFundet := 0;
4392        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4393        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4394  // 20150206: start  
 //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4395        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4396        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4397        begin        begin
4398          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4399        end;        end;
4400        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4401  // 20150306: slut  
4402        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4403        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4404            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
# Line 5074  var Line 4438  var
4438                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4439                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4440                  begin                  begin
4441  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4442                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4443                    begin                    begin
4444                      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
4445                    end                    end
4446                    else                    else
4447                    begin                    begin
4448                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4449                    end;                    end;
4450  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4451                  end;                  end;
4452              end;              end;
4453              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
# Line 5110  var Line 4472  var
4472    
4473          // Free up the list object          // Free up the list object
4474        pakketyper.Free;        pakketyper.Free;
 // 20150306: start  
4475  //      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.');
4476        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4477        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4480  var
4480        end;        end;
4481        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4482        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4483        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4484        begin        begin
4485          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4488  var
4488        begin        begin
4489          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4490        end;        end;
 // 20150309: slut  
4491    
 // 20150310: start  
4492        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4493        begin        begin
4494          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4567  var
4567            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4568          end;          end;
4569        end;        end;
 // 20150310: slut  
4570    
4571      except on e:exception do      except on e:exception do
4572        begin        begin
# Line 5272  end; Line 4628  end;
4628  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4629  var  var
4630     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4631     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4632     imorgenYmd : string;     imorgenYmd : string;
4633     logFilnavn : string;     logFilnavn : string;
4634      error : Integer;     //error : Integer;
4635    
4636  begin  begin
4637    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 4723  begin
4723          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4724          S := buffer;          S := buffer;
4725          SetLength(A,0);          SetLength(A,0);
4726          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4727          if (length(A) < 2) then          if (length(A) < 2) then
4728          begin          begin
4729            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4730          end;          end;
4731            if (length(A) > 1) then            if (length(A) > 1) then
4732            begin            begin
# Line 5446  begin Line 4800  begin
4800          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4801          S := buffer;          S := buffer;
4802          SetLength(A,0);          SetLength(A,0);
4803          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4804          if (length(A) < 3) then          if (length(A) < 3) then
4805          begin          begin
4806            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4807          end;          end;
4808          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4809          begin          begin
# Line 5541  begin Line 4895  begin
4895    result := svar;    result := svar;
4896  end;  end;
4897    
4898    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4899    begin
4900      //ShowMessage('Ændring ikke tilladt');
4901      // Her skal komme en 'rød skærm' alarm
4902      PlaySound(PWideChar(AlarmLyd));
4903      MainForm.Color := clRed;
4904    
4905    
4906      RuteNummerST.Caption := '';
4907      BoghandlerNavnST.Caption := '';
4908      btnNulstil.Visible := true;
4909    
4910      if (strMessage <> '') then
4911      begin
4912        ListBox1.Items.Insert(0, strMessage);
4913        KommentarST.Caption := strMessage;
4914      end;
4915    
4916    end;
4917    
4918  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
4919  var  var
4920     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5622  procedure TMainForm.Scanogstjekkoden1Cli Line 4996  procedure TMainForm.Scanogstjekkoden1Cli
4996  begin  begin
4997    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
4998    begin    begin
4999       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
5000    end    end
5001    else    else
5002    begin    begin
5003       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
5004    end;    end;
5005  end;  end;
5006    
5007  function TMainForm.AdobeReaderExists: Boolean;  
5008  var  
5009    AReg: TRegistry;  
5010  begin  
5011    result:= false;  
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
 end;  
5012    
5013  procedure TMainForm.CheckPrintQue(tjektype : string);  procedure TMainForm.CheckPrintQue(tjektype : string);
5014  type  type
# Line 5745  begin Line 5113  begin
5113    end;    end;
5114  end;  end;
5115    
 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  
5116    
5117  end.  end.
5118    

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

  ViewVC Help
Powered by ViewVC 1.1.20