/[projects]/dao/DelphiScanner/Main.pas
ViewVC logotype

Diff of /dao/DelphiScanner/Main.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Main.pas revision 2645 by torben, Thu Aug 20 20:12:11 2015 UTC dao/DelphiScanner/Main.pas revision 2682 by torben, Wed Aug 26 19:52:38 2015 UTC
# Line 8  uses Line 8  uses
8    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
9    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
10    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,
11    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet,
12      UITypes,
13      PakkeshopLabels,
14      StBarC,
15      Math, // DegToRad() bruges i PrintPakkeshopLabel
16      Utils
17    
18    ;    ;
19    
20  type  type
   TStrArray = array of string;  
21    TMainForm = class(TForm)    TMainForm = class(TForm)
22      StregkodeST: TStaticText;      StregkodeST: TStaticText;
23      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
# Line 20  type Line 25  type
25      IdHTTP1: TIdHTTP;      IdHTTP1: TIdHTTP;
26      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
27      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
28      CheckBox1: TCheckBox;      chkSporgEfterKunde: TCheckBox;
29      KommentarST: TStaticText;      KommentarST: TStaticText;
30      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
31      N1: TMenuItem;      N1: TMenuItem;
# Line 36  type Line 41  type
41      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
42      N2: TMenuItem;      N2: TMenuItem;
43      N3: TMenuItem;      N3: TMenuItem;
44      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
45      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
46      N4: TMenuItem;      N4: TMenuItem;
47      Storepakker1: TMenuItem;      Storepakker1: TMenuItem;
48      Smpakker1: TMenuItem;      Smpakker1: TMenuItem;
# Line 56  type Line 61  type
61      DownloadButton03: TButton;      DownloadButton03: TButton;
62      Pakkeshoplevering1: TMenuItem;      Pakkeshoplevering1: TMenuItem;
63      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
64      PakkeshopNulstil: TButton;      btnNulstil: TButton;
65      Returpakkerfrapakkeshop1: TMenuItem;      Returpakkerfrapakkeshop1: TMenuItem;
66      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
67      CheckBox2: TCheckBox;      chkAltidPrintLabel: TCheckBox;
68      EKLoverforsel: TButton;      EKLoverforsel: TButton;
69      N5: TMenuItem;      N5: TMenuItem;
70      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
71      Manual1: TMenuItem;      Manual1: TMenuItem;
72      PrinterstatusStaticText1: TStaticText;      PrinterstatusStaticText1: TStaticText;
73      Timer1: TTimer;      Timer1: TTimer;
74      CheckBox3: TCheckBox;      chkScanTjekkode: TCheckBox;
75      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
76      Automatisktjekkodestyring1: TMenuItem;      Automatisktjekkodestyring1: TMenuItem;
77      Automatiskvalg1: TMenuItem;      Automatiskvalg1: TMenuItem;
# Line 77  type Line 82  type
82      PanelValg4: TPanel;      PanelValg4: TPanel;
83      PanelValg5: TPanel;      PanelValg5: TPanel;
84      PanelValg6: TPanel;      PanelValg6: TPanel;
85        PanelValg7: TPanel;
86      Manualgenerel1: TMenuItem;      Manualgenerel1: TMenuItem;
87      StaticTextManglendePakker: TStaticText;      StaticTextManglendePakker: TStaticText;
88      PanelManglendePakker1: TPanel;      PanelManglendePakker1: TPanel;
# Line 85  type Line 91  type
91      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
92      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
93      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
94        menuIndlevering: TMenuItem;
95    
96    
97      function Sto_GetFmtFileVersion(const FileName: String = ''): String;
98    
   function Explode(var a: TStrArray; Border, S: string): Integer;  
   function BarCodeValid (ACode: string): boolean;  
   function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String;  
   function TColorToHex(Color : TColor) : string;  
   function HexToTColor(sColor : string) : TColor;  
99    function getProddato() : TDate;    function getProddato() : TDate;
100    function getProddag() : String;    function getProddag() : String;
101    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
# Line 98  type Line 103  type
103    function SavePChar(p: PChar): PChar;    function SavePChar(p: PChar): PChar;
104    function AdobeReaderExists(): Boolean;    function AdobeReaderExists(): Boolean;
105    function FileTime2DateTime(FileTime: TFileTime): TDateTime;    function FileTime2DateTime(FileTime: TFileTime): TDateTime;
   function split(input: string; schar: Char; s: Integer): string;  
106    function CheckUrl(url:string):boolean;    function CheckUrl(url:string):boolean;
107    
108    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
# Line 112  type Line 116  type
116    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
117    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
118    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
119    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
120    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
121    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
122    procedure Pakkernormal1Click(Sender: TObject);    procedure Pakkernormal1Click(Sender: TObject);
123    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
124    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
# Line 142  type Line 146  type
146    procedure UploadButton01Click(Sender: TObject);    procedure UploadButton01Click(Sender: TObject);
147    procedure DownloadButton03Click(Sender: TObject);    procedure DownloadButton03Click(Sender: TObject);
148    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
149    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
150    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
151    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
152    procedure InitReturFraDao();    procedure InitReturFraDao();
# Line 150  type Line 154  type
154    procedure InitDirektelevering();    procedure InitDirektelevering();
155    procedure InitPakkeshoplevering();    procedure InitPakkeshoplevering();
156    procedure InitReturFraPakkeshop();    procedure InitReturFraPakkeshop();
157      procedure InitIndleveringskode();
158    
159    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
160    procedure CheckBox2Click(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
161    procedure EKLoverforselClick(Sender: TObject);    procedure EKLoverforselClick(Sender: TObject);
162    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
163    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
164    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
165    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
166    procedure CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
167    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure Automatisktjekkodestyring1Click(Sender: TObject);
168    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
169    procedure Automatiskvalg1Click(Sender: TObject);    procedure Automatiskvalg1Click(Sender: TObject);
# Line 169  type Line 174  type
174    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
175    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
176    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
177      procedure PanelValg7Click(Sender: TObject);
178    
179    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
180    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
181    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
182    procedure TjekkerUrls();    procedure TjekkerUrls();
183  // 20150310: start  
184    procedure RoundCornerOf(Control: TWinControl);    procedure menuIndleveringClick(Sender: TObject);
185  // 20150310: slut  
186      procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
187      procedure CheckPrintQue(tjektype : string);
188    
189    
190    private    private
191      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder
# Line 183  type Line 193  type
193      SkrivLog : String;      SkrivLog : String;
194      Sted : String;      Sted : String;
195      StedNavn : String;      StedNavn : String;
196      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlEKLoverforsel : String;
197  // 29150330: start  // 29150330: start
198      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
199  // 20150330: slut  // 20150330: slut
# Line 191  type Line 201  type
201      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
202      ScanTjekkode : String;      ScanTjekkode : String;
203      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
204      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;
205      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;
206      LabelType : integer;      LabelType : integer;
207      AlarmLyd : String;      AlarmLyd : String;
208      ScannetOkLyd : String;      ScannetOkLyd : String;
# Line 238  type Line 248  type
248      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
249      TjekUrls : String;      TjekUrls : String;
250    
251            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      Barcode : TStBarcode;
252    
253    
254      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');      procedure PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : String = '');
255      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
# Line 250  type Line 261  type
261      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
262      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
263      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
264        procedure VisAlarmSkaerm(strMessage: string);
265    
266    public    public
267      { Public declarations }      { Public declarations }
268    end;    end;
269    
270          function GetPixelsPerInchX(): Integer;
271        function GetPixelsPerInchY(): Integer;
272    
273  var  var
274    MainForm: TMainForm;    MainForm: TMainForm;
275    
# Line 268  var Line 283  var
283  implementation  implementation
284  {$R *.dfm}  {$R *.dfm}
285    
 function TMainForm.TColorToHex(Color : TColor) : string;  
 begin  
    Result :=  
      IntToHex(GetRValue(Color), 2) +  
      IntToHex(GetGValue(Color), 2) +  
      IntToHex(GetBValue(Color), 2) ;  
 end;  
   
 function TMainForm.HexToTColor(sColor : string) : TColor;  
 begin  
    Result :=  
      RGB(  
        StrToInt('$'+Copy(sColor, 1, 2)),  
        StrToInt('$'+Copy(sColor, 3, 2)),  
        StrToInt('$'+Copy(sColor, 5, 2))  
      ) ;  
 end;  
286    
287  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
288  begin  begin
# Line 293  begin Line 291  begin
291      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
292  // 20150309: slut  // 20150309: slut
293    
294        Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
295    
296      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
297      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
298      begin      begin
# Line 329  begin Line 329  begin
329        PanelValg6.Font.Color := clWindowText;        PanelValg6.Font.Color := clWindowText;
330      end;      end;
331    
332        PanelValg7.Color := clBtnFace;
333        if PanelValg7.Enabled = true then
334        begin
335          PanelValg7.Font.Color := clWindowText;
336        end;
337    
338      OpdaterListenButton01.Enabled := false;      OpdaterListenButton01.Enabled := false;
339    
340      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
# Line 383  begin Line 389  begin
389    
390      StartScreen();      StartScreen();
391      MainForm.Caption := Titel;      MainForm.Caption := Titel;
392      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
393      MainForm.Farve := Farve;      MainForm.Farve := Farve;
394      MainForm.Titel := Titel;      MainForm.Titel := Titel;
395      MainForm.Url := Url;      MainForm.Url := Url;
# Line 398  begin Line 404  begin
404      else      else
405        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
406    
407      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
408      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
409      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
410    
411      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
412      begin      begin
413        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
414        begin        begin
415          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
416          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
417          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
418        end        end
419        else        else
420        begin        begin
421          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
422          CheckBox3.Enabled := true;         // False vil forhindre indtastning af tjekkode i nat x-press scanning          chkScanTjekkode.Enabled := true;         // False vil forhindre indtastning af tjekkode i nat x-press scanning
423          Scanogstjekkoden1.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning          Scanogstjekkoden1.Enabled := true; // False vil forhindre indtastning af tjekkode i nat x-press scanning
424        end;        end;
425      end;      end;
426    
427      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
428      begin      begin
429        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
430        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
431      end;      end;
432    
# Line 443  begin Line 449  begin
449          end          end
450          else          else
451          begin          begin
452            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
453          end;          end;
454          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
455        end        end
456        else        else
457        begin        begin
458          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
459          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
460        end;        end;
461      end;      end;
# Line 461  begin Line 467  begin
467    
468    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
469    begin    begin
470       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
471    end    end
472    else    else
473    begin    begin
474       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
475    end;    end;
476    
477  end;  end;
# Line 479  procedure TMainForm.Automatisktjekkodest Line 485  procedure TMainForm.Automatisktjekkodest
485  begin  begin
486    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
487    begin    begin
488       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
489       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
490    end    end
491    else    else
492    begin    begin
493       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
494       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
495    end;    end;
496    
# Line 520  const Line 526  const
526    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
527  var  var
528    printerInd : integer;    printerInd : integer;
   i : Integer;  
 // 20150310: start  
529    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
530    
531  begin  begin
532    // Initierer nogle variabler    // Initierer nogle variabler
# Line 531  begin Line 534  begin
534    Application.ShowHint := True;    Application.ShowHint := True;
535    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
536    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
537  // 20150306: start  
538    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
539  // 20150306: slut  
540  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
541    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
542    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
543    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
544    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
545    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
546    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
547    
548    // 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
549    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 552  begin Line 554  begin
554    
555  // Sætter lige en default panel størrelse  // Sætter lige en default panel størrelse
556    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
557    MainForm.ClientHeight := 700;    MainForm.ClientHeight := 750;
558    
559    // Læser parametre fra ini filen    // Læser parametre fra ini filen
560    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
# Line 568  begin Line 570  begin
570      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');
571      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');
572      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');
573  // 20150330: start  
574      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');
575  // 20150330: slut  
576      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');
577      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');
578      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');
579      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');
580    
581        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
582    
583    
584      LabelType := ReadInteger('Settings','LabelType',1);      LabelType := ReadInteger('Settings','LabelType',1);
585      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
586      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
# Line 586  begin Line 592  begin
592      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
593      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
594      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
595    
596      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
597      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
598    
599        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
600        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
601    
602    
603      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
604      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
605      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 597  begin Line 609  begin
609      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
610      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
611      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
612  // 20150317: start  
613      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
614  // 20150317: slut  
615      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
616      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
617      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
618    
619      if (SkrivLog = '1') then      if (SkrivLog = '1') then
620      begin      begin
621        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
622        try        try
623          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
624          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
# Line 700  begin Line 712  begin
712    
713      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
714      begin      begin
715        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
716        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
717      end      end
718      else      else
719      begin      begin
720        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
721        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
722      end;      end;
723    
724      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
725      begin      begin
726        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
727        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
728      end      end
729      else      else
730      begin      begin
731        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
732        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
733      end;      end;
734    
735      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
736      begin      begin
737        Automatisktjekkodestyring1.Checked := true;        Automatisktjekkodestyring1.Checked := true;
738        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
739        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
740      end;      end;
741    
# Line 749  begin Line 761  begin
761      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
762      // *************************** //      // *************************** //
763    
764    {$IfDef STED_BK}
765        SpecialVersionSted := 'BK';
766    {$EndIf}
767    {$IfDef STED_DBK}
768        SpecialVersionSted := 'DBK';
769    {$EndIf}
770    {$IfDef STED_FD}
771        SpecialVersionSted := 'FD';
772    {$EndIf}
773    {$IfDef STED_NS}
774        SpecialVersionSted := 'NS';
775    {$EndIf}
776    
777    
778      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
779      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
780      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 815  begin Line 841  begin
841        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
842        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
843        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
844          PanelValg7.Enabled := false;
845          PanelValg7.Font.Color := clInactiveCaption;
846    
847       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
848        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
849        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
850  // 20150317: start  
851        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
852        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
853  // 20150317: slut  
854        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
855        begin        begin
856           Scanningtype := '1';           Scanningtype := '1';
# Line 851  begin Line 880  begin
880        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
881        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
882        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
883          PanelValg7.Enabled := false;
884          PanelValg7.Font.Color := clInactiveCaption;
885       // 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
886  // 20150317: start  
887        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
888  // 20150317: slut  
889        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
890        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
891        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 946  begin Line 977  begin
977             RutenummerST.Caption := '';             RutenummerST.Caption := '';
978             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
979             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
980             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
981             exit;             exit;
982          end;          end;
983      end      end
# Line 989  begin Line 1020  begin
1020      if Pakketype = '1' then      if Pakketype = '1' then
1021      begin      begin
1022        Storepakker1.Checked := true;        Storepakker1.Checked := true;
1023        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
1024      end      end
1025      else      else
1026      begin      begin
1027        Smpakker1.Checked := true;        Smpakker1.Checked := true;
1028        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
1029      end;      end;
1030    
1031      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1034  begin Line 1065  begin
1065        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
1066      end;      end;
1067    
1068  // 20150317: start  
1069      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
1070      begin      begin
1071        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
1072      end;      end;
1073  // 20150317: slut  
1074    
1075      if (PrinterNavn <> '') then      if (PrinterNavn <> '') then
1076      begin      begin
# Line 1072  begin Line 1103  begin
1103          InitBladhus();          InitBladhus();
1104        end;        end;
1105    
1106  // 20150310: start  
1107      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1108      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1109    
# Line 1113  begin Line 1144  begin
1144      end;      end;
1145    
1146      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1147    
1148      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1149      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion(''));
1150    
1151  end;  end;
1152    
# Line 1134  var Line 1164  var
1164    BoghandlerNavn : String;    BoghandlerNavn : String;
1165    Koreliste : String;    Koreliste : String;
1166    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1167    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1168    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1169    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1159  begin Line 1188  begin
1188      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1189      numberString := ClipboardData;      numberString := ClipboardData;
1190      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1191  // 20150311: start  
1192  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1193      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1194      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1195      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1175  begin Line 1204  begin
1204      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1205      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1206      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1207  // 20150311: slut  
1208      begin      begin
1209        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1210        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1188  begin Line 1217  begin
1217    
1218    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1219    begin    begin
 // 20150306: start  
1220      if (Length(Trim(Stregkode)) = 0) then      if (Length(Trim(Stregkode)) = 0) then
1221      begin      begin
1222        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1223        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;  
1224        exit;        exit;
1225      end;      end;
 // 20150306: slut  
1226    
 // 20150311: start  
1227      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1228      begin      begin
1229         PakkeshopNulstil.Click();         btnNulstil.Click();
1230         exit;         exit;
1231      end;      end;
1232    
1233      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1234      begin      begin
1235         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1236  // 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  
1237         exit;         exit;
1238      end;      end;
1239    
1240      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1241      begin      begin
1242         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1243         begin         begin
1244            InitLillePakke();            InitLillePakke();
1245         end         end
1246         else         else
1247         begin         begin
1248          //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;  
1249         end;         end;
1250         Stregkode := '';         Stregkode := '';
1251         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1257  begin Line 1254  begin
1254    
1255      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1256      begin      begin
1257         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1258         begin         begin
1259            InitStorPakke();            InitStorPakke();
1260         end         end
1261         else         else
1262         begin         begin
1263          //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;  
1264         end;         end;
1265         Stregkode := '';         Stregkode := '';
1266         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1283  begin Line 1269  begin
1269    
1270      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1271      begin      begin
1272         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1273         begin         begin
1274           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1275           begin           begin
1276            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1277           end           end
1278           else           else
1279           begin           begin
1280            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1281           end;           end;
1282         end         end
1283         else         else
1284         begin         begin
1285          //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;  
1286         end;         end;
1287         Stregkode := '';         Stregkode := '';
1288         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1316  begin Line 1291  begin
1291    
1292      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
1293      begin      begin
1294        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1295        begin        begin
1296           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1297           begin           begin
1298            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1299           end           end
1300           else           else
1301           begin           begin
1302            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1303           end;           end;
1304        end        end
1305        else        else
1306        begin        begin
1307          //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;  
1308        end;        end;
1309        Stregkode := '';        Stregkode := '';
1310        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1355  begin Line 1319  begin
1319         end         end
1320         else         else
1321         begin         begin
1322          //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;  
1323         end;         end;
1324         Stregkode := '';         Stregkode := '';
1325         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1326         exit;         exit;
1327      end;      end;
1328    
1329  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1330      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  
1331      begin      begin
1332         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1333         begin         begin
# Line 1384  begin Line 1335  begin
1335         end         end
1336         else         else
1337         begin         begin
1338          //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;  
1339         end;         end;
1340         Stregkode := '';         Stregkode := '';
1341         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1410  begin Line 1350  begin
1350         end         end
1351         else         else
1352         begin         begin
1353          //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;  
1354         end;         end;
1355         Stregkode := '';         Stregkode := '';
1356         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1436  begin Line 1365  begin
1365         end         end
1366         else         else
1367         begin         begin
1368          //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;  
1369         end;         end;
1370         Stregkode := '';         Stregkode := '';
1371         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1462  begin Line 1380  begin
1380         end         end
1381         else         else
1382         begin         begin
1383          //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;  
1384         end;         end;
1385         Stregkode := '';         Stregkode := '';
1386         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1488  begin Line 1395  begin
1395         end         end
1396         else         else
1397         begin         begin
1398          //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;  
1399         end;         end;
1400         Stregkode := '';         Stregkode := '';
1401         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1514  begin Line 1410  begin
1410         end         end
1411         else         else
1412         begin         begin
1413          //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;  
1414         end;         end;
1415         Stregkode := '';         Stregkode := '';
1416         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1417         exit;         exit;
1418      end;      end;
1419  // 20150311: slut  
1420    
1421      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1422      begin      begin
# Line 1586  begin Line 1471  begin
1471          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)
1472          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then
1473      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1474         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1475         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  
1476         exit;         exit;
1477      end;      end;
1478    
# Line 1615  begin Line 1488  begin
1488              end;              end;
1489            end            end
1490        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1491  (*  
       else if Pakketype = '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  
 *)  
1492        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1493            begin            begin
1494              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1650  begin Line 1506  begin
1506              end;              end;
1507            end            end
1508        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1509  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1510        else        else
1511            begin   // Her skal komme en alarm og rød skærm            begin
1512               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1513               List1msg := 'Pakken kan ikke scannes med automatisk valg';              VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1514               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  
1515               exit;               exit;
1516            end;            end;
1517        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1518      end      end
1519      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1520      begin      begin
1521        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1522        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  
1523        exit;        exit;
1524      end;      end;
1525    
# Line 1703  begin Line 1527  begin
1527      begin      begin
1528        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1529        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;  
1530    
1531      if PakkeshopNulstil.Visible then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        PlaySound(PWideChar(AlarmLyd));  
        List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
        exit;  
     end;  
1532    
1533      if StregKode = 'Lille pakke' then          exit;
1534      begin        end;
        InitLillePakke();  
        exit;  
1535      end;      end;
1536    
     if StregKode = 'Stor pakke' then  
     begin  
        InitStorPakke();  
        exit;  
     end;  
   
     if StregKode = 'Indtast kundenummer' then  
     begin  
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
     end;  
   
     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  
1537    
1538    
1539      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1540      begin      begin
1541        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1542        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1543        begin        begin
1544          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1545          begin          begin
1546              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1547              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1548          end;          end;
1549        end;        end;
# Line 1801  begin Line 1555  begin
1555             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1556             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1557             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1558             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1559             Stregkode := '';             Stregkode := '';
1560             InitScreen();             InitScreen();
1561        end        end
# Line 1813  begin Line 1567  begin
1567             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1568             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1569             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1570             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1571             Stregkode := '';             Stregkode := '';
1572             InitScreen();             InitScreen();
1573        end        end
# Line 1825  begin Line 1579  begin
1579              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1580              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1581              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1582  // 20150317: start  
1583              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1584  // 20150317: slut  
1585             end             end
1586            else            else
1587             begin             begin
1588                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;  
1589             end;             end;
1590            Stregkode := '';            Stregkode := '';
1591            InitScreen();            InitScreen();
# Line 1850  begin Line 1598  begin
1598             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1599             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1600             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1601                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1602             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1603                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1604             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1605           end           end
1606          else          else
1607           begin           begin
1608                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1609                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1610                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1611                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1612                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  
1613                StregKode := '';                StregKode := '';
1614                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1615  // 20150323: slut  
1616                exit;                exit;
1617           end;           end;
1618          Stregkode := '';          Stregkode := '';
# Line 1892  begin Line 1633  begin
1633            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1634            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1635            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1636               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1637               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1638              exit;              exit;
1639            end;            end;
1640            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1917  begin Line 1654  begin
1654              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1655              begin              begin
1656                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1657                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1658                MainForm.Color := clRed;                MainForm.Color := clRed;
1659              end;              end;
1660           end;           end;
1661            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
1662            begin            begin
1663              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1664              if Storepakker1.Checked then              if Storepakker1.Checked then
1665              begin              begin
1666                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1932  begin Line 1669  begin
1669              begin              begin
1670                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1671              end;              end;
1672              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1673            end            end
1674            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1675            begin            begin
1676              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1677              if Storepakker1.Checked then              if Storepakker1.Checked then
1678              begin              begin
1679                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1945  begin Line 1682  begin
1682              begin              begin
1683                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1684              end;              end;
1685              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1686            end            end
1687            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1688            begin            begin
1689              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;  
1690            end            end
1691            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1692            begin            begin
1693            end            end
1694            else            else
1695            begin            begin
1696              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1697            end;            end;
1698           if not PakkeshopNulstil.Visible then           if not btnNulstil.Visible then
1699            begin            begin
1700  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1701              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1702              begin              begin
1703                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1982  begin Line 1711  begin
1711                InitLillePakke();                InitLillePakke();
1712              end;              end;
1713            end;            end;
1714  // 20150310: start  
1715            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1716  // 20150310: slut  
1717            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1718            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1719            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2015  begin Line 1744  begin
1744    
1745    Key := #0;    Key := #0;
1746    
1747  end;  end; //End of OnKeyPress
1748    
1749  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1750  const  const
# Line 2052  end; Line 1781  end;
1781    
1782  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1783  var  var
 // 20150309: start  
 //  i:integer;  
1784    i : Integer;    i : Integer;
1785    wrkAntal : String;    wrkAntal : String;
1786    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1787  // 20150309: slut  
1788    
1789  begin  begin
1790      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then
# Line 2065  begin Line 1792  begin
1792        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1793          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1794          begin          begin
1795  // 20150309: start  
1796            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1797            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1798            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1799            begin            begin
1800              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1801              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1802  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1803  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1804  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1805              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1806            end            end
1807            else     // kun idag            else     // kun idag
1808            begin            begin
# Line 2101  begin Line 1828  begin
1828            begin            begin
1829              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1830            end;            end;
 // 20150309: slut  
1831    
 // 20150310: start  
1832            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1833            begin            begin
1834              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2208  begin Line 1933  begin
1933  end;  end;
1934    
1935  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1936    
1937  begin  begin
1938    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2286  begin Line 2009  begin
2009              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2010              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
2011              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2012              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
2013              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
2014              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her
2015              OpdaterListenButton01.Enabled := true;              OpdaterListenButton01.Enabled := true;
2016              IdFTP1.Passive := true;              IdFTP1.Passive := true;
# Line 2324  begin Line 2047  begin
2047              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2048              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
2049              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2050              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
2051              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
2052              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her
2053              OpdaterListenButton01.Enabled := true;              OpdaterListenButton01.Enabled := true;
2054              IdFTP1.Passive := true;              IdFTP1.Passive := true;
# Line 2343  var Line 2066  var
2066    URLStr : String;    URLStr : String;
2067    pakkestorrelse : String;    pakkestorrelse : String;
2068    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2069    
2070      PakkeshopLabel: TPakkeshopLabel;
2071  begin  begin
2072    if RadioButton1.Checked then    if radioStorPakke.Checked then
2073    begin    begin
2074      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
2075    end;    end;
2076    if RadioButton2.Checked then    if radioLillePakke.Checked then
2077    begin    begin
2078      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
2079    end;    end;
2080    
2081    
2082    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
2083    begin    begin
2084       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2380  begin Line 2107  begin
2107    begin    begin
2108       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
2109    end    end
2110      else if menuIndlevering.Checked then
2111      begin
2112        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
2113      end
2114    else    else
2115    begin    begin
2116      exit;      exit;
# Line 2414  begin Line 2145  begin
2145        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2146        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2147        PrintNyLabel := False;        PrintNyLabel := False;
2148  // 20150310: start  
2149        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2150        begin        begin
 // 20150310: slut  
2151          try          try
2152            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2153          except on e:exception do          except on e:exception do
# Line 2427  begin Line 2157  begin
2157          begin          begin
2158            PrintNyLabel := True;            PrintNyLabel := True;
2159          end;          end;
 // 20150310: start  
2160        end;        end;
 // 20150310: slut  
2161       end       end
2162        else if menuIndlevering.Checked then
2163        begin
2164    
2165    
2166    
2167    
2168         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2169         if (Kommentar = 'Ok') then
2170         begin
2171           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2172           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2173           RuteNummer := PakkeshopLabel.Koreliste;
2174    
2175           PrintPakkeshopLabel( PakkeshopLabel );
2176    
2177         end;
2178    
2179    
2180        end
2181      else      else
2182       begin       begin
2183        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2463  begin Line 2210  begin
2210          PrintNyLabel := True;          PrintNyLabel := True;
2211        end;        end;
2212      end;      end;
2213    
2214    
2215      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2216      begin      begin
2217        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2503  begin Line 2252  begin
2252    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2253      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2254    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2255    if RadioButton1.Checked then    if radioStorPakke.Checked then
2256    begin    begin
2257      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2258    end;    end;
2259    if RadioButton2.Checked then    if radioLillePakke.Checked then
2260    begin    begin
2261      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2262    end;    end;
# Line 2529  begin Line 2278  begin
2278    if Budlevering1.Checked then    if Budlevering1.Checked then
2279    begin    begin
2280       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2281        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2282        begin        begin
2283          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2284        end;        end;
2285        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2286        begin        begin
2287          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2288        end;        end;
# Line 2577  pakkeForkertSted : Integer; Line 2326  pakkeForkertSted : Integer;
2326    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2327  begin  begin
2328    if Budlevering1.Checked then    if Budlevering1.Checked then
2329       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2330    
2331    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2332    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2590  begin Line 2339  begin
2339    end;    end;
2340    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2341    
2342  // 20150306: start  
2343  //  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
2344    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  
2345    begin    begin
2346        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2347        begin        begin
# Line 2620  begin Line 2368  begin
2368       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2369       begin       begin
2370          PrintNyLabel := false;          PrintNyLabel := false;
2371  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2372          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2373          MainForm.Color := clRed;          MainForm.Color := clRed;
2374          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2375  // 20150306: slut  
2376       end       end
2377       else       else
2378       begin       begin
# Line 2635  begin Line 2382  begin
2382            PrintNyLabel := true;            PrintNyLabel := true;
2383            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2384            nyFarve := Farve;            nyFarve := Farve;
2385            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2386            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2387            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2388            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2389            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2390            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2391  // 20150213: start  
2392            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2393            begin            begin
2394               PrintNyLabel := false;               PrintNyLabel := false;
2395            end;            end;
2396  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2397            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
2398            begin            begin
2399              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2400              MainForm.Color := clRed;              MainForm.Color := clRed;
2401              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2402            end;            end;
2403  // 20150306: slut  
2404         end;         end;
2405         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2406         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2674  begin Line 2419  begin
2419            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2420            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2421            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2422  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2423            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
2424            begin            begin
2425              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2426              MainForm.Color := clRed;              MainForm.Color := clRed;
2427              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2428            end;            end;
2429  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2430         end;         end;
2431       end;       end;
2432    
# Line 2708  begin Line 2448  begin
2448                end;                end;
2449              end;              end;
2450        01 :  begin;        01 :  begin;
2451               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2452                    // 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
2453                    // 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')
2454                begin                begin
# Line 2722  begin Line 2462  begin
2462                end;                end;
2463              end;              end;
2464        03 :  begin;        03 :  begin;
2465               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2466                    // 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
2467                    // 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')
2468               begin               begin
# Line 2746  begin Line 2486  begin
2486      exit;      exit;
2487    end;    end;
2488    
2489    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
2490    begin    begin
2491    end    end
2492    else    else
2493    begin    begin
2494      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
2495      begin      begin
2496        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2497        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2498        begin        begin
2499          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2500        end        end
# Line 2821  begin Line 2561  begin
2561          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2          Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2
2562        end;        end;
2563        Canvas.Font.Size := FontSizeKommentar;        Canvas.Font.Size := FontSizeKommentar;
2564    
2565        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);
 // 20150304: start  
2566        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);        Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);
2567  // 20150304: slut  
2568        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)
2569        if SmsKode <> '' then        if SmsKode <> '' then
2570        begin        begin
# Line 2838  begin Line 2578  begin
2578  end;  end;
2579    
2580    
2581  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2582  begin  begin
2583      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2584      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2585  end;  end;
2586    
2587  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2588  begin  begin
2589      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2590      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2591  end;  end;
2592    
2593    
2594  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2595  begin  begin
2596    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2597    begin    begin
2598       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2599    end    end
# Line 2864  begin Line 2604  begin
2604  end;  end;
2605    
2606    
2607  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2608  begin  begin
2609    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2610    begin    begin
2611       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2612    end    end
# Line 2877  begin Line 2617  begin
2617    
2618  end;  end;
2619    
2620  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2621  begin  begin
2622    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2623    begin    begin
2624       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2625    end    end
# Line 2901  begin Line 2641  begin
2641      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2642      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2643      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2644  // 20150317: start  
2645      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2646      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2647      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2648      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2649      begin      begin
2650        // 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)
2651        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 3212  begin Line 2952  begin
2952            end;            end;
2953          end;          end;
2954    
2955  // 20150330: start  
2956          // Tjekker UrlEKLoverforselPakkeshop          // Tjekker UrlEKLoverforselPakkeshop
2957          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2958          begin          begin
# Line 3240  begin Line 2980  begin
2980              end;              end;
2981            end;            end;
2982          end;          end;
2983  // 20150330: slut  
2984    
2985          // Tjekker UrlFindPakketype          // Tjekker UrlFindPakketype
2986          if CheckUrl(UrlFindPakketype) then          if CheckUrl(UrlFindPakketype) then
# Line 3331  begin Line 3071  begin
3071      repeat      repeat
3072        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
3073        begin        begin
3074    
3075          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
3076          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
3077          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
# Line 3370  begin Line 3111  begin
3111    end;    end;
3112  end;  end;
3113    
3114  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
3115  begin  begin
3116    PakkeshopStregkode := '';    PakkeshopStregkode := '';
3117    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
3118    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
3119    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
3120    BoghandlerStregkode := '';    BoghandlerStregkode := '';
3121    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3392  begin Line 3133  begin
3133  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
3134    if Farve <> '' then    if Farve <> '' then
3135    begin    begin
3136       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
3137  // 20150312: start  // 20150312: start
3138  (*  (*
3139    end    end
# Line 3412  begin Line 3153  begin
3153    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
3154  end;  end;
3155    
3156    
3157  procedure TMainForm.PanelValg1Click(Sender: TObject);  procedure TMainForm.PanelValg1Click(Sender: TObject);
3158  begin  begin
3159        Scanningtype := '1';        Scanningtype := '1';
# Line 3454  begin Line 3196  begin
3196        NulstilAutomatiskValg();        NulstilAutomatiskValg();
3197  end;  end;
3198    
3199    
3200    procedure TMainForm.PanelValg7Click(Sender: TObject);
3201    begin
3202          Scanningtype := '7';
3203          InitIndleveringskode();
3204          NulstilAutomatiskValg();
3205    
3206    end;
3207    
3208  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
3209  begin  begin
3210  // 20150311: start  // 20150311: start
# Line 3493  var Line 3244  var
3244    BoghandlerNavn : String;    BoghandlerNavn : String;
3245    Koreliste : String;    Koreliste : String;
3246    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3247    SmsKode : String;    SmsKode : String;
3248    DBKbane : String;    DBKbane : String;
3249    Leveringssted : String;    Leveringssted : String;
# Line 3515  begin Line 3265  begin
3265      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
3266      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
3267      MainForm.Color := clRed;      MainForm.Color := clRed;
3268      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
3269    end    end
3270    else    else
3271    begin    begin
3272      Falsk := False;      Falsk := False;
3273      Sand := True;  
3274      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
3275      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
3276      SmsKode := '999999';      SmsKode := '999999';
# Line 3540  var Line 3290  var
3290    BoghandlerNavn : String;    BoghandlerNavn : String;
3291    Koreliste : String;    Koreliste : String;
3292    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
3293    SmsKode : String;    SmsKode : String;
3294    DBKbane : String;    DBKbane : String;
3295    Leveringssted : String;    Leveringssted : String;
# Line 3549  begin Line 3298  begin
3298    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
3299    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
3300    Falsk := False;    Falsk := False;
3301    Sand := True;  
3302    
3303    if (Printer.Printers.Count = 0) then    if (Printer.Printers.Count = 0) then
3304    begin    begin
# Line 3584  begin Line 3333  begin
3333    end;    end;
3334  end;  end;
3335    
3336  {  
  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;  
3337    
3338  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3339  const  const
# Line 3622  var Line 3342  var
3342   tekst, filversion : String;   tekst, filversion : String;
3343  begin  begin
3344    
3345    filversion := Sto_GetFmtFileVersion('','');    filversion := Sto_GetFmtFileVersion('');
3346    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';
3347    
3348    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3644  begin Line 3364  begin
3364          end          end
3365          else          else
3366          begin          begin
3367            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3368          end;          end;
3369      end      end
3370      else      else
3371      begin      begin
3372        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3373      end;      end;
3374    end;    end;
3375    
# Line 3757  begin Line 3477  begin
3477    end;    end;
3478  end;  end;
3479    
3480    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3481    begin
3482      Scanningtype := '7';
3483      NulstilAutomatiskValg();
3484      InitIndleveringskode();
3485    end;
3486    
3487  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3488  begin  begin
3489    
3490    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3491    begin    begin
3492       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3493    end    end
3494    else    else
3495    begin    begin
3496       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3497    end;    end;
3498    
3499    
# Line 3789  end; Line 3516  end;
3516  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3517  begin  begin
3518        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3519        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3520        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3521        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3522        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3523        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3524        CheckBox1.Enabled := true;  
3525        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3526        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3527        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3528        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3529        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3530        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3531        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3532        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3533        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3534        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3535        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3536        ListBox1.Visible := true;        ListBox1.Visible := true;
3537        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3538        EKLoverforsel.Enabled := true;        EKLoverforsel.Enabled := true;
# Line 3822  procedure TMainForm.InitReturFraDao(); Line 3549  procedure TMainForm.InitReturFraDao();
3549  begin  begin
3550        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3551        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3552        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3553        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3554        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3555        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3556        CheckBox1.Enabled := false;  
3557        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3558        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3559        CheckBox2.Checked := false;  
3560        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3561        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3562        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3563        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3564        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3565        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3566        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3567        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3568        ListBox1.Visible := true;        ListBox1.Visible := true;
3569        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3570        ListBox2.Items.Clear;        ListBox2.Items.Clear;
# Line 3849  procedure TMainForm.InitReturFraKunde(); Line 3576  procedure TMainForm.InitReturFraKunde();
3576  begin  begin
3577        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3578        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3579        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3580        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3581        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3582        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3583        CheckBox1.Enabled := false;  
3584        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3585        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3586        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3587        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3588        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3589        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3590        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3591        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3592        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3593        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3594        ListBox1.Visible := true;        ListBox1.Visible := true;
3595        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3596        ListBox2.Items.Clear;        ListBox2.Items.Clear;
# Line 3876  procedure TMainForm.InitDirektelevering( Line 3602  procedure TMainForm.InitDirektelevering(
3602  begin  begin
3603        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3604        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3605        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3606        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3607        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3608        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3609        CheckBox1.Enabled := false;  
3610        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3611        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3612        CheckBox2.Checked := false;  
3613        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3614        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3615        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3616        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3617        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3618        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3619        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3620        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3621        ListBox1.Visible := true;        ListBox1.Visible := true;
3622        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3623        DownloadButton01.Enabled := false;        DownloadButton01.Enabled := false;
# Line 3912  procedure TMainForm.InitPakkeshopleverin Line 3638  procedure TMainForm.InitPakkeshopleverin
3638  begin  begin
3639        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3640        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3641        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3642        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3643        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3644        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3645        CheckBox1.Enabled := false;  
3646        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3647        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3648        CheckBox2.Checked := false;  
3649        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3650        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3651        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3652        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3653        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3654        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3655        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3656        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3657        ListBox1.Visible := true;        ListBox1.Visible := true;
3658        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3659        DownloadButton01.Enabled := false;        DownloadButton01.Enabled := false;
3660        OpdaterListenButton01.Enabled := true;        OpdaterListenButton01.Enabled := true;
3661  // 20150330: start  
 //      EKLoverforsel.Enabled := false;  
3662        EKLoverforsel.Enabled := true;        EKLoverforsel.Enabled := true;
3663  // 20150330: slut  
3664        InitLillePakke();        InitLillePakke();
3665        IndlesScanningLogFil();        IndlesScanningLogFil();
3666        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3950  procedure TMainForm.InitReturFraPakkesho Line 3675  procedure TMainForm.InitReturFraPakkesho
3675  begin  begin
3676        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3677        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3678        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3679        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3680        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3681        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3682        CheckBox1.Enabled := false;  
3683        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3684        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3685        CheckBox2.Checked := false;  
3686        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3687        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3688        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3689        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3690        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3691        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3692        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3693        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3694        ListBox1.Visible := true;        ListBox1.Visible := true;
3695        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3696        DownloadButton01.Enabled := false;        DownloadButton01.Enabled := false;
# Line 3988  begin Line 3713  begin
3713        InitReturFraKunde();        InitReturFraKunde();
3714  end;  end;
3715    
3716    procedure TMainForm.InitIndleveringskode();
3717    begin
3718          menuIndlevering.Checked := true;
3719          AutomatiskTjekkodeStyring1.Enabled := false;
3720    
3721          btnNulstil.Visible := false;
3722          InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3723          PanelValg7.Color := clGreen;
3724          PanelValg7.Font.Color := clWhite;
3725    
3726          chkAltidPrintLabel.Enabled := false;
3727          Altidprintepakkelabel1.Enabled := false;
3728    
3729          Altidprintepakkelabel1.Checked := false;
3730          Sprgefterboghandlernummer1.Checked := false;
3731          Sprgefterboghandlernummer1.Enabled := false;
3732          chkSporgEfterKunde.Checked := false;
3733    
3734    
3735    
3736          Smpakker1.Enabled := false;
3737          Storepakker1.Enabled := false;
3738          radioStorPakke.Enabled := false;
3739          radioLillePakke.Enabled := false;
3740          ListBox1.Visible := true;
3741          ListBox1.Items.Clear();
3742    
3743          DownloadButton01.Enabled := false;
3744          OpdaterListenButton01.Enabled := true;
3745          EKLoverforsel.Enabled := false;
3746          InitLillePakke();
3747          IndlesScanningLogFil();
3748          if BladhusSted = 0 then
3749          begin
3750            IndlesManglendeScanninger();
3751          end;
3752          IdFTP1.Passive := true;
3753          IdFTP1.PassiveUseControlHost := true;
3754    end;
3755    
3756    
3757  procedure TMainForm.Storepakker1Click(Sender: TObject);  procedure TMainForm.Storepakker1Click(Sender: TObject);
3758  begin  begin
3759    InitStorPakke();    InitStorPakke();
# Line 4000  end; Line 3766  end;
3766    
3767  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3768  begin  begin
3769    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3770    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3771  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3772  end;  end;
3773    
3774  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3775  begin  begin
3776    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3777    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3778  // 20150310: start  // 20150310: start
3779  //  Stregkode := '';  //  Stregkode := '';
# Line 4032  end; Line 3796  end;
3796  ///   values.</param>  ///   values.</param>
3797  /// <returns>Formatted version number of file, '' if no version  /// <returns>Formatted version number of file, '' if no version
3798  ///   resource found.</returns>  ///   resource found.</returns>
3799  function TMainForm.Sto_GetFmtFileVersion(const FileName: String = '';  function TMainForm.Sto_GetFmtFileVersion(const FileName: String = ''): String;
   const Fmt: String = '%d.%d.%d.%d'): String;  
3800  var  var
3801    sFileName: String;    sFileName: String;
3802    iBufferSize: DWORD;    iBufferSize: DWORD;
3803    iDummy: DWORD;    iDummy: DWORD;
3804    pBuffer: Pointer;    pBuffer: Pointer;
3805    pFileInfo: Pointer;    pFileInfo: Pointer;
3806    iVer: array[1..4] of Word;    iVer: array[1..4] of Integer;
   S : String;  
3807  begin  begin
3808    // set default value    // set default value
3809    Result := '';    Result := '';
# Line 4066  begin Line 3828  begin
3828      finally      finally
3829        FreeMem(pBuffer);        FreeMem(pBuffer);
3830      end;      end;
3831    
3832      // format result string      // format result string
3833      Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]);      Result := Format('%d.%d.%d.%d', [iVer[1], iVer[2], iVer[3], iVer[4]]);
3834    
     // 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;  
3835    end;    end;
3836  end;  end;
3837    
# Line 4106  end; Line 3858  end;
3858    
3859  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3860  begin  begin
 // 20150317: start  
3861    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3862    begin    begin
3863       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4119  begin Line 3870  begin
3870       end;       end;
3871       exit;       exit;
3872    end;    end;
 // 20150317: slut  
3873    
3874    if Smpakker1.Checked then    if Smpakker1.Checked then
3875       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4128  begin Line 3878  begin
3878       end       end
3879       else       else
3880       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3881         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3882       end;       end;
3883    if Storepakker1.Checked then    if Storepakker1.Checked then
3884       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4140  begin Line 3887  begin
3887       end       end
3888       else       else
3889       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3890         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3891       end;       end;
3892  end;  end;
3893    
# Line 4250  begin Line 3994  begin
3994           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3995         end;         end;
3996         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3997         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3998      end;      end;
3999    
4000  end;  end;
# Line 4274  begin Line 4018  begin
4018    else    else
4019      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
4020  }  }
4021    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
4022    
4023    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
4024    CheckCode();    CheckCode();
# Line 4282  end; Line 4026  end;
4026    
4027  end;  end;
4028    
 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;  
4029    
4030  //  //
4031  // Bladhus ***  // Bladhus ***
# Line 4822  begin Line 4527  begin
4527      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
4528  end;  end;
4529    
4530  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
4531    // ToDo: PrintPakkeshopLabel()
4532    procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4533  var  var
4534    S2: string;    XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4535      Angle: integer;
4536      gMode: integer;
4537      BarcodeArea: TRect;
4538      Dirigering: string;
4539    
4540    begin
4541        with Printer do
4542        begin
4543          BeginDoc();
4544    
4545    
4546          Canvas.Font.Size := 16;
4547          Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4548    
4549    
4550    
4551          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4552          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4553          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4554    
4555    
4556          Canvas.Font.Size := 9;
4557          Canvas.TextOut(110, 240, 'Pakkeshop:');
4558          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4559          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4560          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4561    
4562          Canvas.TextOut(350, 240, 'Afsender:');
4563          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4564          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4565          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4566    
4567          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4568          if ( PakkeshopLabel.Koreliste <> '') then
4569          begin
4570            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4571          end;
4572    
4573    
4574          Canvas.Font.Size := 12;
4575          Canvas.TextOut(15, 370, Dirigering);
4576    
4577    
4578    
4579    
4580    
4581          //Tegn adskillelses linier
4582          Canvas.Pen.Width := 2;
4583          //Øverste linie
4584          Canvas.MoveTo(20,80);
4585          Canvas.LineTo(600,80);
4586    
4587          // Midterste linie
4588          Canvas.MoveTo( 20, 240);
4589          Canvas.LineTo(600, 240);
4590    
4591          //Nederste linie
4592          Canvas.MoveTo( 20, 370);
4593          Canvas.LineTo(600, 370);
4594    
4595    
4596          //Tegn skrå streger over afsender
4597          Canvas.Pen.Width := 1;
4598          Canvas.MoveTo(600, 250);
4599          Canvas.LineTo(350, 360);
4600          Canvas.MoveTo(600, 360);
4601          Canvas.LineTo(350, 250);
4602    
4603    
4604    
4605    
4606          // Resten af rutinen vedr genering og placering af Barcode
4607    
4608          BarCode.BarCodeType := bcCode128;
4609          BarCode.Code128Subset := csCodeC;
4610          BarCode.Code := PakkeshopLabel.Stregkode;
4611          BarCode.Validate(True);
4612    
4613          //Start X-formation
4614          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4615          GetWorldTransform(Canvas.Handle, XFormOld);
4616    
4617          Angle := 270;
4618          XForm.eM11 := Cos(DegToRad(Angle));
4619          XForm.eM12 := Sin(DegToRad(Angle));
4620          XForm.eM21 := -Sin(DegToRad(Angle));
4621          XForm.eM22 := Cos(DegToRad(Angle));
4622          XForm.eDx := 0;
4623          XForm.eDy := 0;
4624    
4625          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4626          SetWorldTransform(Canvas.Handle, XForm);
4627    
4628          // PaintToCanvasSize arbejder i Inches
4629          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4630          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4631    
4632          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4633    
4634    
4635          SetWorldTransform(Canvas.Handle, XFormOld);
4636          SetGraphicsMode(Canvas.Handle, gMode);
4637    
4638          EndDoc();
4639        end;
4640    
4641    
4642    end;
4643    
4644    function GetPixelsPerInchX(): Integer;
4645  begin  begin
4646    Result  := 0;    Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
   S2 := S + Border;  
   repeat  
     SetLength(A, Length(A) + 1);  
     a[Result] := Copy(S2, 0,Pos(Border, S2) - 1);  
     Delete(S2, 1,Length(a[Result] + Border));  
     Inc(Result);  
   until S2 = '';  
4647  end;  end;
4648    
4649    function GetPixelsPerInchY(): Integer;
4650    begin
4651      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
4652    end;
4653    
4654    
4655  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4656  var  var
4657    WebSvar : String;    WebSvar : String;
# Line 4848  var Line 4664  var
4664    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4665    pakketyper : TStrings;    pakketyper : TStrings;
4666    antlin : Integer;    antlin : Integer;
4667  // 20150306: start  
4668    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4669  // 20150306: slut  
4670    XmlFelter : TStrings;    XmlFelter : TStrings;
4671    
4672   begin   begin
# Line 4870  var Line 4686  var
4686          StedKode := Sted;          StedKode := Sted;
4687        end;        end;
4688    
4689  // 20150310: start  
 (*  
     if Returpakkerfrapakkeshop1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
      end  
     else if Pakkeshoplevering1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);  
      end  
     else if Pakkernormal1.Checked then  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);  
      end  
     else  
      begin  
       URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer  
      end;  
 *)  
4690      if (Scanningtype = '6') then      if (Scanningtype = '6') then
4691       begin       begin
4692        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);
# Line 4932  var Line 4730  var
4730      try      try
4731        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4732    
4733  // 20150206: start  
4734        antlin := 0;        antlin := 0;
4735        antlinIdag := 0;        antlinIdag := 0;
4736        antlinSenere := 0;        antlinSenere := 0;
4737  // 20150306: slut  
       antalFelterFundet := 0;  
4738        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4739            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4740            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
# Line 4969  var Line 4766  var
4766        antalFelterFundet := 0;        antalFelterFundet := 0;
4767        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4768        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4769  // 20150206: start  
 //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4770        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4771        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4772        begin        begin
4773          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4774        end;        end;
4775        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4776  // 20150306: slut  
4777        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4778        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4779            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
# Line 5021  var Line 4817  var
4817  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;
4818                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4819                    begin                    begin
4820                      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
4821                    end                    end
4822                    else                    else
4823                    begin                    begin
4824                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4825                    end;                    end;
4826  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4827                  end;                  end;
4828              end;              end;
4829              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
# Line 5053  var Line 4848  var
4848    
4849          // Free up the list object          // Free up the list object
4850        pakketyper.Free;        pakketyper.Free;
 // 20150306: start  
4851  //      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.');
4852        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4853        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5062  var Line 4856  var
4856        end;        end;
4857        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4858        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4859        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4860        begin        begin
4861          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5072  var Line 4864  var
4864        begin        begin
4865          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4866        end;        end;
 // 20150309: slut  
4867    
 // 20150310: start  
4868        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4869        begin        begin
4870          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5153  var Line 4943  var
4943            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4944          end;          end;
4945        end;        end;
 // 20150310: slut  
4946    
4947      except on e:exception do      except on e:exception do
4948        begin        begin
# Line 5215  end; Line 5004  end;
5004  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
5005  var  var
5006     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
5007     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
5008     imorgenYmd : string;     imorgenYmd : string;
5009     logFilnavn : string;     logFilnavn : string;
5010      error : Integer;     //error : Integer;
5011    
5012  begin  begin
5013    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5312  begin Line 5099  begin
5099          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5100          S := buffer;          S := buffer;
5101          SetLength(A,0);          SetLength(A,0);
5102          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5103          if (length(A) < 2) then          if (length(A) < 2) then
5104          begin          begin
5105            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5106          end;          end;
5107            if (length(A) > 1) then            if (length(A) > 1) then
5108            begin            begin
# Line 5389  begin Line 5176  begin
5176          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5177          S := buffer;          S := buffer;
5178          SetLength(A,0);          SetLength(A,0);
5179          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5180          if (length(A) < 3) then          if (length(A) < 3) then
5181          begin          begin
5182            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5183          end;          end;
5184          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
5185          begin          begin
# Line 5484  begin Line 5271  begin
5271    result := svar;    result := svar;
5272  end;  end;
5273    
5274    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
5275    begin
5276      //ShowMessage('Ændring ikke tilladt');
5277      // Her skal komme en 'rød skærm' alarm
5278      PlaySound(PWideChar(AlarmLyd));
5279      MainForm.Color := clRed;
5280    
5281    
5282      RuteNummerST.Caption := '';
5283      BoghandlerNavnST.Caption := '';
5284      btnNulstil.Visible := true;
5285    
5286      if (strMessage <> '') then
5287      begin
5288        ListBox1.Items.Insert(0, strMessage);
5289        KommentarST.Caption := strMessage;
5290      end;
5291    
5292    end;
5293    
5294  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
5295  var  var
5296     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5504  end; Line 5311  end;
5311  function TMainForm.getProddag() : String;  function TMainForm.getProddag() : String;
5312  begin  begin
5313  //  ShowMessage(LongDayNames[DayOfWeek(getProddato())]);  //  ShowMessage(LongDayNames[DayOfWeek(getProddato())]);
5314    result := LongDayNames[DayOfWeek(getProddato())];    result := FormatSettings.LongDayNames[DayOfWeek(getProddato())];
5315    //result := 'lørdag';     // MENS VI TESTER  kan vi fremtvinge lørdag situation her    //result := 'lørdag';     // MENS VI TESTER  kan vi fremtvinge lørdag situation her
5316  end;  end;
5317    
# Line 5565  procedure TMainForm.Scanogstjekkoden1Cli Line 5372  procedure TMainForm.Scanogstjekkoden1Cli
5372  begin  begin
5373    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
5374    begin    begin
5375       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
5376    end    end
5377    else    else
5378    begin    begin
5379       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
5380    end;    end;
5381  end;  end;
5382    
# Line 5585  begin Line 5392  begin
5392    AReg.Free;    AReg.Free;
5393  end;  end;
5394    
5395    
5396    function TMainForm.CheckUrl(url:string):boolean;
5397    var
5398      hSession, hfile: hInternet;
5399      dwindex,dwcodelen :dword;
5400      dwcode:array[1..20] of char;
5401      res : pchar;
5402    begin
5403      if pos('http://',lowercase(url))=0 then
5404        url := 'http://'+url;
5405      Result := false;
5406      hSession := InternetOpen('InetURL:/1.0',
5407                                INTERNET_OPEN_TYPE_PRECONFIG,
5408                                nil,
5409                                nil,
5410                                0);
5411      if assigned(hsession) then
5412      begin
5413        hfile := InternetOpenUrl(hsession,
5414                                 pchar(url),
5415                                 nil,
5416                                 0,
5417                                 INTERNET_FLAG_RELOAD,
5418                                 0);
5419        dwIndex := 0;
5420        dwCodeLen := 10;
5421        HttpQueryInfo(hfile,
5422                      HTTP_QUERY_STATUS_CODE,
5423                      @dwcode,
5424                      dwcodeLen,
5425                      dwIndex);
5426        res := pchar(@dwcode);
5427        result:= (res ='200') or (res ='302');
5428        if assigned(hfile) then
5429          InternetCloseHandle(hfile);
5430        InternetCloseHandle(hsession);
5431      end;
5432    
5433    end;
5434    
5435    
5436  procedure TMainForm.CheckPrintQue(tjektype : string);  procedure TMainForm.CheckPrintQue(tjektype : string);
5437  type  type
5438    TJobs  = array [0..1000] of JOB_INFO_1;    TJobs  = array [0..1000] of JOB_INFO_1;
# Line 5688  begin Line 5536  begin
5536    end;    end;
5537  end;  end;
5538    
 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  
5539    
5540  end.  end.
5541    

Legend:
Removed from v.2645  
changed lines
  Added in v.2682

  ViewVC Help
Powered by ViewVC 1.1.20