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

Diff of /dao/DelphiScanner/Main.pas

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

revision 2650 by torben, Thu Aug 20 20:58:26 2015 UTC revision 2792 by torben, Sun Dec 6 15:23:50 2015 UTC
# Line 1  Line 1 
1  unit Main;  unit Main;
2    
3    // ToDo: flyt PrinterNavn til hhv Configuration lg lad TLabelPrint om al håndtering heraf
4    // ToDo: flyt flere parametre til TConfiguration
5    
6    // ToDo: FormKeyPress() trænger til en seriøs oprydning / refactoring
7    // ToDo: flyt mere funktionalitet fra interface layer til application layer klasser
8    // ToDo: vil det give mening at bruge State Pattern ? Så der er en class per scanningstype ?
9    // ToDo: alternativt kan man bruge en Enum til de forskellige typer
10    // ToDo: en enklere måde at håndtere capabilities på de forskellige scannings steder
11    
12    
13  interface  interface
14    
15  uses  uses
16    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
17    Dialogs, StdCtrls, Printers, IdBaseComponent, IdComponent, IdTCPConnection,    Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
18    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
19    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
20    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, IdException,
21    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet    ShellApi, ClipBrd, Buttons, wininet,
22      UITypes,
23      PakkeshopLabels,
24      Utils,
25      ParentForm,
26      LabelPrint,
27      Configuration,
28      Vcl.Imaging.pngimage,
29      Generics.Collections
30    
31    ;    ;
32    
33  type  type
34    TStrArray = array of string;    TMainForm = class(TForm, IParentForm)
   TMainForm = class(TForm)  
35      StregkodeST: TStaticText;      StregkodeST: TStaticText;
36      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
37      BoghandlerNavnST: TStaticText;      BoghandlerNavnST: TStaticText;
38      IdHTTP1: TIdHTTP;      IdHTTP1: TIdHTTP;
39      XMLDocument1: TXMLDocument;      XMLDocument1: TXMLDocument;
40      ApplicationEvents1: TApplicationEvents;      ApplicationEvents1: TApplicationEvents;
41      CheckBox1: TCheckBox;      chkSporgEfterKunde: TCheckBox;
42      KommentarST: TStaticText;      KommentarST: TStaticText;
43      MainMenu1: TMainMenu;      MainMenu1: TMainMenu;
44      N1: TMenuItem;      N1: TMenuItem;
# Line 36  type Line 54  type
54      Lukprogrammet1: TMenuItem;      Lukprogrammet1: TMenuItem;
55      N2: TMenuItem;      N2: TMenuItem;
56      N3: TMenuItem;      N3: TMenuItem;
57      RadioButton1: TRadioButton;      radioStorPakke: TRadioButton;
58      RadioButton2: TRadioButton;      radioLillePakke: TRadioButton;
59      N4: TMenuItem;      N4: TMenuItem;
60      Storepakker1: TMenuItem;      Storepakker1: TMenuItem;
61      Smpakker1: TMenuItem;      Smpakker1: TMenuItem;
# Line 47  type Line 65  type
65      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
66      ListBox1: TListBox;      ListBox1: TListBox;
67      Budlevering1: TMenuItem;      Budlevering1: TMenuItem;
68      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
69      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
70      Image1: TImage;      Image1: TImage;
71      ListBox2: TListBox;      ListBox2: TListBox;
72      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
73      UploadButton01: TButton;      BtnUploadLogfil: TButton;
74      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
75      Pakkeshoplevering1: TMenuItem;      Pakkeshoplevering1: TMenuItem;
76      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
77      PakkeshopNulstil: TButton;      btnNulstil: TButton;
78      Returpakkerfrapakkeshop1: TMenuItem;      Returpakkerfrapakkeshop1: TMenuItem;
79      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
80      CheckBox2: TCheckBox;      chkAltidPrintLabel: TCheckBox;
81      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
82      N5: TMenuItem;      N5: TMenuItem;
83      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
84      Manual1: TMenuItem;      Manual1: TMenuItem;
85      PrinterstatusStaticText1: TStaticText;      PrinterstatusStaticText1: TStaticText;
86      Timer1: TTimer;      Timer1: TTimer;
87      CheckBox3: TCheckBox;      chkScanTjekkode: TCheckBox;
88      Scanogstjekkoden1: TMenuItem;      Scanogstjekkoden1: TMenuItem;
89      Automatisktjekkodestyring1: TMenuItem;      Automatisktjekkodestyring1: TMenuItem;
90      Automatiskvalg1: TMenuItem;      Automatiskvalg1: TMenuItem;
# Line 77  type Line 95  type
95      PanelValg4: TPanel;      PanelValg4: TPanel;
96      PanelValg5: TPanel;      PanelValg5: TPanel;
97      PanelValg6: TPanel;      PanelValg6: TPanel;
98        PanelValg7: TPanel;
99      Manualgenerel1: TMenuItem;      Manualgenerel1: TMenuItem;
100      StaticTextManglendePakker: TStaticText;      StaticTextManglendePakker: TStaticText;
101      PanelManglendePakker1: TPanel;      PanelManglendePakker1: TPanel;
# Line 85  type Line 104  type
104      PanelManglendePakker4: TPanel;      PanelManglendePakker4: TPanel;
105      PanelManglendePakker5: TPanel;      PanelManglendePakker5: TPanel;
106      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
107      PanelValg7: TPanel;      menuIndlevering: TMenuItem;
108        chkForstorTilDirekte: TCheckBox;
109    
110    
111    
   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;  
112    function getProddato() : TDate;    function getProddato() : TDate;
113    function getProddag() : String;    function getProddag() : String;
114    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
   function GetCurrentPrinterHandle() : THandle;  
   function SavePChar(p: PChar): PChar;  
   function AdobeReaderExists(): Boolean;  
   function FileTime2DateTime(FileTime: TFileTime): TDateTime;  
   function split(input: string; schar: Char; s: Integer): string;  
   function CheckUrl(url:string):boolean;  
115    
116    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
117    procedure StartScreen();    procedure StartScreen();
# Line 113  type Line 124  type
124    procedure FormKeyPress(Sender: TObject; var Key: Char);    procedure FormKeyPress(Sender: TObject; var Key: Char);
125    procedure FormCreate(Sender: TObject);    procedure FormCreate(Sender: TObject);
126    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);    procedure ApplicationEvents1Idle(Sender: TObject; var Done: Boolean);
127    procedure RadioButton1Click(Sender: TObject);    procedure radioStorPakkeClick(Sender: TObject);
128    procedure RadioButton2Click(Sender: TObject);    procedure radioLillePakkeClick(Sender: TObject);
129    procedure CheckBox1Click(Sender: TObject);    procedure chkSporgEfterKundeClick(Sender: TObject);
130    procedure Pakkernormal1Click(Sender: TObject);    procedure Pakkernormal1Click(Sender: TObject);
131    procedure Testforbindelsen1Click(Sender: TObject);    procedure Testforbindelsen1Click(Sender: TObject);
132    procedure Testprinter1Click(Sender: TObject);    procedure Testprinter1Click(Sender: TObject);
# Line 131  type Line 142  type
142    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
143    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
144    procedure Budlevering1Click(Sender: TObject);    procedure Budlevering1Click(Sender: TObject);
145    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
146    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
147    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
148    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
149    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 140  type Line 151  type
151    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
152    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
153    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
154    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
155    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
156    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
157    procedure PakkeshopNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
158    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
159    procedure InitNatxpresslevering();    procedure InitNatxpresslevering();
160    procedure InitReturFraDao();    procedure InitReturFraDao();
# Line 154  type Line 165  type
165    procedure InitIndleveringskode();    procedure InitIndleveringskode();
166    
167    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
168    procedure CheckBox2Click(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
169    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
170    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
171    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
   procedure CheckPrintQue(tjektype : string);  
172    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
173    procedure Scanogstjekkoden1Click(Sender: TObject);    procedure Scanogstjekkoden1Click(Sender: TObject);
174    procedure CheckBox3Click(Sender: TObject);    procedure chkScanTjekkodeClick(Sender: TObject);
175    procedure Automatisktjekkodestyring1Click(Sender: TObject);    procedure Automatisktjekkodestyring1Click(Sender: TObject);
176    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);    procedure SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
177    procedure Automatiskvalg1Click(Sender: TObject);    procedure Automatiskvalg1Click(Sender: TObject);
# Line 172  type Line 182  type
182    procedure PanelValg4Click(Sender: TObject);    procedure PanelValg4Click(Sender: TObject);
183    procedure PanelValg5Click(Sender: TObject);    procedure PanelValg5Click(Sender: TObject);
184    procedure PanelValg6Click(Sender: TObject);    procedure PanelValg6Click(Sender: TObject);
185      procedure PanelValg7Click(Sender: TObject);
186    
187    procedure NulstilAutomatiskValg();    procedure NulstilAutomatiskValg();
188    procedure SletLogfiler(Path: string; FileList: TStrings);    procedure SletLogfiler(Path: string; FileList: TStrings);
189    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
190    procedure TjekkerUrls();    procedure TjekkerUrls();
191  // 20150310: start    procedure TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
192    procedure RoundCornerOf(Control: TWinControl);  
193      procedure menuIndleveringClick(Sender: TObject);
194    
195    
196    
197    
198      //Nedarvet fra IParentForm
199      procedure LogMessage( msg : string);
200      procedure SetPrinterstatusText( txt: string; alert: boolean);
201      function GetFormObject() : TForm;
202    
     procedure PanelValg7Click(Sender: TObject);  
 // 20150310: slut  
203    
204    private    private
205      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder      SpecialVersionSted, SpecialVersionScanningtype: String;    // Bruges når programmet skal bruges udenfor DAO scanningssteder
# Line 188  type Line 207  type
207      SkrivLog : String;      SkrivLog : String;
208      Sted : String;      Sted : String;
209      StedNavn : String;      StedNavn : String;
210      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;
211  // 29150330: start  
212      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
213  // 20150330: slut  
214      UrlFindPakketype, UrlSendPrograminfo: String;      UrlFindPakketype, UrlSendPrograminfo: String;
215      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;      Scanningtype, TestFunktionen, Pakketype, SporgEfterBoghandler : String;
216      ScanTjekkode : String;      ScanTjekkode : String;
217      ScanTjekkodeAutomatik : string;      ScanTjekkodeAutomatik : string;
218      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop : String;      Farve, FarveNormal, FarveReturDAO, FarveReturBoghandler, FarveBudlevering, FarvePakkeshoplevering, FarveReturPakkeshop, FarveIndlevering : String;
219      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop : String;      Titel, TitelNormal, TitelReturDAO, TitelReturBoghandler, TitelBudlevering, TitelPakkeshoplevering, TitelReturPakkeshop, TitelIndlevering : String;
220      LabelType : integer;  
221      AlarmLyd : String;      AlarmLyd : String;
222      ScannetOkLyd : String;      ScannetOkLyd : String;
223      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
224  // 20150317: start  
225      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
226  // 20150317: slut  
227      PrinterNavn : String;      PrinterNavn : String;
228      TjekPrinter : String;      TjekPrinter : String;
229      XPosRute : integer;  
     YPosRute : integer;  
     FontSizeRute : integer;  
     FontSizeRuteLille : integer;  
     XPosKommentar : integer;  
     YPosKommentar : integer;  
     FontSizeKommentar : integer;  
     XPosBoghandler : integer;  
     YPosBoghandler : integer;  
     FontSizeBoghandler : integer;  
     XPosKoreliste : integer;  
     YPosKoreliste : integer;  
     FontSizeKoreliste : integer;  
     FontSizeKorelisteLille : integer;  
     XPosSorteringsfelt1 : integer;  
     YPosSorteringsfelt1 : integer;  
     FontSizeSorteringsfelt1 : integer;  
     XPosSorteringsfelt2 : integer;  
     YPosSorteringsfelt2 : integer;  
     FontSizeSorteringsfelt2 : integer;  
     XPosSmskode : integer;  
     YPosSmskode : integer;  
     FontSizeSmskode : integer;  
230      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;      Org_RuteNummerST, Org_BoghandlerNavnST, Org_KommentarST : String;
231      BladhusSted : Integer;      BladhusSted : Integer;
232      BladhusStedKode : Array of string;      BladhusStedKode : Array of string;
# Line 242  type Line 239  type
239      PakkeshopStregkode, PakkeshopTjekkode : String;      PakkeshopStregkode, PakkeshopTjekkode : String;
240      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
241      TjekUrls : String;      TjekUrls : String;
242        Config : TConfiguration;
243    
244    
245            function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }      LabelPrint: TLabelPrint;
246    
247      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 = '');
248      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
249      procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');      procedure HentPakkeInfoFraServer(const Sted, PakkeNr : String; var RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel: Boolean; BoghandlerNummer : String = '');
250      procedure CheckCode();      procedure CheckCode();
251      procedure IndlesManglendeScanninger();      procedure IndlesManglendeScanninger();
# Line 255  type Line 254  type
254      procedure IndlesScanningLogFil();      procedure IndlesScanningLogFil();
255      procedure SkrivScanningLogFil(var tekst : string);      procedure SkrivScanningLogFil(var tekst : string);
256      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;      function TjekKoreliste(var RuteNummer, Koreliste : string) : string;
257        procedure VisAlarmSkaerm(strMessage: string);
258    
259    public    public
260      { Public declarations }      { Public declarations }
261    end;    end;
262    
263    
264  var  var
265    MainForm: TMainForm;    MainForm: TMainForm;
266    
# Line 273  var Line 274  var
274  implementation  implementation
275  {$R *.dfm}  {$R *.dfm}
276    
277  function TMainForm.TColorToHex(Color : TColor) : string;  
278  begin  //FormCreate kaldes før InitForm
    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;  
279    
280  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
281  begin  begin
282    
 // 20150309: startr  
283      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
284  // 20150309: slut  
285    
286      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
287      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
# Line 340  begin Line 325  begin
325        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
326      end;      end;
327    
328      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
329    
330      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
331      begin      begin
# Line 394  begin Line 379  begin
379    
380      StartScreen();      StartScreen();
381      MainForm.Caption := Titel;      MainForm.Caption := Titel;
382      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
383      MainForm.Farve := Farve;      MainForm.Farve := Farve;
384      MainForm.Titel := Titel;      MainForm.Titel := Titel;
385      MainForm.Url := Url;      MainForm.Url := Url;
# Line 409  begin Line 394  begin
394      else      else
395        PakkeshopText1.Visible := false;        PakkeshopText1.Visible := false;
396    
397      CheckBox3.Checked := false;      chkScanTjekkode.Checked := false;
398      CheckBox3.Enabled := false;      chkScanTjekkode.Enabled := false;
399      Scanogstjekkoden1.Enabled := false;      Scanogstjekkoden1.Enabled := false;
400    
401      if (Scanningtype = '1') or (Scanningtype = '5') then      if (Scanningtype = '1') or (Scanningtype = '5') then
402      begin      begin
403        if (ScanTjekkode = '1') then        if (ScanTjekkode = '1') then
404        begin        begin
405          CheckBox3.Checked := true;          chkScanTjekkode.Checked := true;
406          CheckBox3.Enabled := true;          chkScanTjekkode.Enabled := true;
407          Scanogstjekkoden1.Enabled := true;          Scanogstjekkoden1.Enabled := true;
408        end        end
409        else        else
410        begin        begin
411          CheckBox3.Checked := false;          chkScanTjekkode.Checked := false;
412          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
413          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
414        end;        end;
415      end;      end;
416    
417      if Automatisktjekkodestyring1.Checked then      if Automatisktjekkodestyring1.Checked then
418      begin      begin
419        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
420        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
421      end;      end;
422    
# Line 454  begin Line 439  begin
439          end          end
440          else          else
441          begin          begin
442            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
443          end;          end;
444          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
445        end        end
446        else        else
447        begin        begin
448          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
449          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
450        end;        end;
451      end;      end;
452    
453    
454  end;  end;
455    
456  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);  procedure TMainForm.Altidprintepakkelabel1Click(Sender: TObject);
# Line 472  begin Line 458  begin
458    
459    if Altidprintepakkelabel1.Checked then    if Altidprintepakkelabel1.Checked then
460    begin    begin
461       CheckBox2.Checked := true;       chkAltidPrintLabel.Checked := true;
462    end    end
463    else    else
464    begin    begin
465       CheckBox2.Checked := false;       chkAltidPrintLabel.Checked := false;
466    end;    end;
467    
468  end;  end;
# Line 490  procedure TMainForm.Automatisktjekkodest Line 476  procedure TMainForm.Automatisktjekkodest
476  begin  begin
477    if Automatisktjekkodestyring1.Checked then    if Automatisktjekkodestyring1.Checked then
478    begin    begin
479       CheckBox3.Enabled := false;       chkScanTjekkode.Enabled := false;
480       Scanogstjekkoden1.Enabled := false;       Scanogstjekkoden1.Enabled := false;
481    end    end
482    else    else
483    begin    begin
484       CheckBox3.Enabled := true;       chkScanTjekkode.Enabled := true;
485       Scanogstjekkoden1.Enabled := true;       Scanogstjekkoden1.Enabled := true;
486    end;    end;
487    
# Line 503  end; Line 489  end;
489    
490  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
491  begin  begin
 // 20150317: start  
 (*  
   if Automatiskvalg1.Checked then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
492  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
493  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
494       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
495       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
496       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
497  end;  end;
498    
499    
500    //InitForm kaldes før FormCreate
501  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
502  const  const
503    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
504  var  var
   printerInd : integer;  
   i : Integer;  
 // 20150310: start  
505    gemScanningtype : String;    gemScanningtype : String;
 // 20150310: slut  
506    
507  begin  begin
508    
509    
510    // Initierer nogle variabler    // Initierer nogle variabler
511    BladhusSted := 00;    BladhusSted := 00;
512    Application.ShowHint := True;    Application.ShowHint := True;
513    PrinterstatusStaticText1.Caption := '';    PrinterstatusStaticText1.Caption := '';
514    PrinterstatusStaticText1.Color := MainForm.Color;    PrinterstatusStaticText1.Color := MainForm.Color;
515  // 20150306: start  
516    PakkeshopNulstil.BringToFront;    btnNulstil.BringToFront;
517  // 20150306: slut  
518  // 20150310: start    TUtils.RoundCornerOf(PanelManglendePakker1);
519    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker2);
520    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker3);
521    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker4);
522    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker5);
523    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker6);
524    RoundCornerOf(PanelManglendePakker6);  
 // 20150310: slut  
525    
526    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp    // Hvis mappen Docs eksisterer kan vi vælge Manual i menuen Hjælp
527    if DirectoryExists('Docs') then    if DirectoryExists('Docs') then
# Line 565  begin Line 534  begin
534    MainForm.ClientWidth := 1000;    MainForm.ClientWidth := 1000;
535    MainForm.ClientHeight := 750;    MainForm.ClientHeight := 750;
536    
537      Config := TConfiguration.Create();
538      Config.ReadFromInifile( TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) );    //ToDo: clean up duplicate ini ref
539      Config.Sted := Sted;
540    
541    // Læser parametre fra ini filen    // Læser parametre fra ini filen
542    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do    with TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini')) do
543    try    try
544    
545    
546      SkrivLog := ReadString('Settings','SkrivLog','0');      SkrivLog := ReadString('Settings','SkrivLog','0');
547      Sted := ReadString('Settings','Sted','');      Sted := ReadString('Settings','Sted','');
548      StedNavn := ReadString('Settings','Stednavn','');      StedNavn := ReadString('Settings','Stednavn','');
# Line 579  begin Line 554  begin
554      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');      UrlBudlevering := ReadString('Settings','UrlBudlevering','http://omdeling.info/webservices/bogpakkekontrol/bogpakkekontrol.php?sted=%s&pakkenummer=%s&leveringstype=%s&pakkestorrelse=%s');
555      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');      UrlManglendeScanninger := ReadString('Settings','UrlManglendeScanninger','http://omdeling.info/webservices/bogpakkekontrol/bogpakkemanglendescanninger.php?sted=%s&type=%s');
556      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');      UrlEKLoverforsel := ReadString('Settings','UrlEKLoverforsel','http://omdeling.info/webservices/bogpakkekontrol/bogpakkertilekl.php?sted=%s');
557  // 20150330: start  
558      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');      UrlEKLoverforselPakkeshop := ReadString('Settings','UrlEKLoverforselPakkeshop','http://omdeling.info/webservices/pakkeshop/pakkertilekl.php?sted=%s');
559  // 20150330: slut  
560      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');      UrlPakkeshoplevering := ReadString('Settings','UrlPakkeshoplevering','http://omdeling.info/webservices/pakkeshop/pakkekontrol.php?sted=%s&stregkode=%s&tjekkode=%s');
561      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');      UrlReturPakkeshop := ReadString('Settings','UrlReturPakkeshop','http://omdeling.info/webservices/pakkeshop/returpakkekontrol.php?sted=%s&stregkode=%s');
562      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');      UrlPakkeshopManglendeScanninger := ReadString('Settings','UrlPakkeshopManglendeScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendescanninger.php?sted=%s');
563      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');      UrlPakkeshopManglendeReturScanninger := ReadString('Settings','UrlPakkeshopManglendeReturScanninger','http://omdeling.info/webservices/pakkeshop/pakkemanglendereturscanninger.php?sted=%s');
564      LabelType := ReadInteger('Settings','LabelType',1);  
565    
566        UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
567        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
568    
569    
570    
571      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');      FarveNormal := ReadString('Settings','FarveNormal','D8D8D8');
572      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');      TitelNormal := ReadString('Settings','TitelNormal','Modtagelse af DAO NAT X-PRESS pakker');
573      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');      FarveReturDAO := ReadString('Settings','FarveReturDAO','A9F5A9');
# Line 597  begin Line 578  begin
578      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');      TitelBudlevering := ReadString('Settings','TitelBudlevering','Modtagelse af DAO DIREKTE pakker');
579      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');      FarvePakkeshoplevering := ReadString('Settings','FarvePakkeshoplevering','99FFFF');
580      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');      TitelPakkeshoplevering := ReadString('Settings','TitelPakkeshoplevering','Modtagelse af DAO PAKKESHOP pakker');
581    
582      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');      FarveReturPakkeshop := ReadString('Settings','FarveReturPakkeshop','99FFCC');
583      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');      TitelReturPakkeshop := ReadString('Settings','TitelReturPakkeshop','Returforsendelse fra pakkeshop');
584    
585        FarveIndlevering := ReadString('Settings', 'FarveIndlevering', 'E5B2CB');
586        TitelIndlevering := ReadString('Settings', 'TitelIndlevering', 'Indleveringskode');
587    
588    
589      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');      SporgEfterBoghandler := ReadString('Settings','SporgEfterBoghandler','0');
590      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');      ScanTjekkode := ReadString('Settings','ScanTjekkode','0');
591      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');      ScanTjekkodeAutomatik := ReadString('Settings','ScanTjekkodeAutomatik','1');
# Line 608  begin Line 595  begin
595      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');      AlarmLyd := ReadString('Settings','AlarmLyd','Sounds\Alarm.wav');
596      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');      ScannetOkLyd := ReadString('Settings','ScannetOkLyd','Sounds\Ok.wav');
597      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');      ScannetOkStorLyd := ReadString('Settings','ScannetOkStorLyd','Sounds\Ok_stor.wav');
598  // 20150317: start  
599      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');      ScannetOkTilTjekkodeLyd := ReadString('Settings','ScannetOkTilTjekkodeLyd','Sounds\Ok_til_tjekkode.wav');
600  // 20150317: slut  
601      PrinterNavn := ReadString('Settings','PrinterNavn','');      PrinterNavn := ReadString('Settings','PrinterNavn','');
602      TjekPrinter := ReadString('Settings','TjekPrinter','1');      TjekPrinter := ReadString('Settings','TjekPrinter','1');
603      TjekUrls := ReadString('Settings','TjekUrls','2');      TjekUrls := ReadString('Settings','TjekUrls','2');
604    
605      if (SkrivLog = '1') then      if (SkrivLog = '1') then
606      begin      begin
607        logTekst := 'Program start (Version: ' + Sto_GetFmtFileVersion('','') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);        logTekst := 'Program start (Version: ' + TUtils.Sto_GetFmtFileVersion('') + ') Dato: ' + FormatDateTime('yyyy-mm-dd hh:nn:ss',now);
608        try        try
609          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
610          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
611          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
612          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
613          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
614          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 639  begin Line 626  begin
626        PanelValgA.Font.Color := clWhite;        PanelValgA.Font.Color := clWhite;
627      end;      end;
628    
629      if LabelType = 0 then  
     begin  
        XPosRute := ReadInteger('RuteBred','XPos',1);  
        YPosRute := ReadInteger('RuteBred','YPos',1);  
        FontSizeRute := ReadInteger('RuteBred','FontSize',72);  
        FontSizeRuteLille := ReadInteger('RuteBred','FontSizeLille',20);  
        XPosKommentar := ReadInteger('KommentarBred','XPos',1);  
        YPosKommentar := ReadInteger('KommentarBred','YPos',250);  
        FontSizeKommentar := ReadInteger('KommentarBred','FontSize',16);  
        XPosBoghandler := ReadInteger('BoghandlerBred','XPos',1);  
        YPosBoghandler := ReadInteger('BoghandlerBred','YPos',400);  
        FontSizeBoghandler := ReadInteger('BoghandlerBred','FontSize',16);  
        XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);  
        YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);  
        FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);  
        FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);  
        XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);  
        YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);  
        FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);  
        XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);  
        YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);  
        FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);  
        XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);  
        YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);  
        FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);  
     end  
     else  
     begin  
        XPosRute := ReadInteger('RuteSmal','XPos',1);  
        YPosRute := ReadInteger('RuteSmal','YPos',1);  
        FontSizeRute := ReadInteger('RuteSmal','FontSize',72);  
        FontSizeRuteLille := ReadInteger('RuteSmal','FontSizeLille',20);  
        XPosKommentar := ReadInteger('KommentarSmal','XPos',1);  
        YPosKommentar := ReadInteger('KommentarSmal','YPos',250);  
        FontSizeKommentar := ReadInteger('KommentarSmal','FontSize',16);  
        XPosBoghandler := ReadInteger('BoghandlerSmal','XPos',1);  
        YPosBoghandler := ReadInteger('BoghandlerSmal','YPos',400);  
        FontSizeBoghandler := ReadInteger('BoghandlerSmal','FontSize',16);  
        XPosKoreliste := ReadInteger('KorelisteSmal','XPos',1);  
        YPosKoreliste := ReadInteger('KorelisteSmal','YPos',100);  
        FontSizeKoreliste := ReadInteger('KorelisteSmal','FontSize',72);  
        FontSizeKorelisteLille := ReadInteger('KorelisteSmal','FontSizeLille',20);  
        XPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','XPos',700);  
        YPosSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','YPos',100);  
        FontSizeSorteringsfelt1 := ReadInteger('Sorteringsfelt1Smal','FontSize',16);  
        XPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','XPos',700);  
        YPosSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','YPos',150);  
        FontSizeSorteringsfelt2 := ReadInteger('Sorteringsfelt2Smal','FontSize',16);  
        XPosSmskode := ReadInteger('SmskodeSmal','XPos',1);  
        YPosSmskode := ReadInteger('SmskodeSmal','YPos',300);  
        FontSizeSmskode := ReadInteger('SmskodeSmal','FontSize',32);  
        if LabelType = 2 then // test på alm. printer kræver at XY-positionerne ganges med 3  
        begin  
           XPosRute := XPosRute * 3;  
           YPosRute := YPosRute * 3;  
           XPosKommentar := XPosKommentar * 3;  
           YPosKommentar := YPosKommentar * 3;  
           XPosBoghandler := XPosBoghandler * 3;  
           YPosBoghandler := YPosBoghandler * 3;  
           XPosKoreliste := XPosKoreliste * 3;  
           YPosKoreliste := YPosKoreliste * 3;  
           XPosSorteringsfelt1 := XPosSorteringsfelt1 * 3;  
           YPosSorteringsfelt1 := YPosSorteringsfelt1 * 3;  
           XPosSorteringsfelt2 := XPosSorteringsfelt2 * 3;  
           YPosSorteringsfelt2 := YPosSorteringsfelt2 * 3;  
           XPosSmskode := XPosSmskode * 3;  
           YPosSmskode := YPosSmskode * 3;  
        end;  
     end;  
630    
631      if SporgEfterBoghandler = '1' then      if SporgEfterBoghandler = '1' then
632      begin      begin
633        CheckBox1.Checked := true;        chkSporgEfterKunde.Checked := true;
634        Sprgefterboghandlernummer1.Checked := true;        Sprgefterboghandlernummer1.Checked := true;
635      end      end
636      else      else
637      begin      begin
638        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
639        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
640      end;      end;
641    
642      if ScanTjekkode = '1' then      if ScanTjekkode = '1' then
643      begin      begin
644        CheckBox3.Checked := true;        chkScanTjekkode.Checked := true;
645        Scanogstjekkoden1.Checked := true;        Scanogstjekkoden1.Checked := true;
646      end      end
647      else      else
648      begin      begin
649        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
650        Scanogstjekkoden1.Checked := false;        Scanogstjekkoden1.Checked := false;
651      end;      end;
652    
653      if ScanTjekkodeAutomatik = '1' then      if ScanTjekkodeAutomatik = '1' then
654      begin      begin
655        Automatisktjekkodestyring1.Checked := true;        Automatisktjekkodestyring1.Checked := true;
656        CheckBox3.Enabled := false;        chkScanTjekkode.Enabled := false;
657        Scanogstjekkoden1.Enabled := false;        Scanogstjekkoden1.Enabled := false;
658      end;      end;
659    
# Line 760  begin Line 679  begin
679      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
680      // *************************** //      // *************************** //
681    
682    {$IfDef STED_BK}
683        SpecialVersionSted := 'BK';
684    {$EndIf}
685    {$IfDef STED_DBK}
686        SpecialVersionSted := 'DBK';
687    {$EndIf}
688    {$IfDef STED_FD}
689        SpecialVersionSted := 'FD';
690    {$EndIf}
691    {$IfDef STED_NS}
692        SpecialVersionSted := 'NS';
693    {$EndIf}
694    
695    
696      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
697      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
698      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 775  begin Line 708  begin
708      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
709      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
710    
 // 20150313: start  
711      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
712      begin      begin
713         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 786  begin Line 718  begin
718         SpecialVersionSted := '03';         SpecialVersionSted := '03';
719         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
720      end;      end;
 // 20150313: slut  
721    
722      if SpecialVersionSted = 'BK' then      if SpecialVersionSted = 'BK' then
723      begin      begin
# Line 797  begin Line 728  begin
728        PanelValg2.Font.Color := clInactiveCaption;        PanelValg2.Font.Color := clInactiveCaption;
729        PanelValg3.Enabled := false;        PanelValg3.Enabled := false;
730        PanelValg3.Font.Color := clInactiveCaption;        PanelValg3.Font.Color := clInactiveCaption;
731        PanelValg6.Enabled := false;        //PanelValg6.Enabled := false;
732        PanelValg6.Font.Color := clInactiveCaption;        //PanelValg6.Font.Color := clInactiveCaption;
733    
734       // her skal vi også disable de menupunkter BK ikke kan bruge       // her skal vi også disable de menupunkter BK ikke kan bruge
735        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
736        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
737        Returpakkerfrapakkeshop1.Enabled := false;  
738          //Returpakkerfrapakkeshop1.Enabled := false;
739    
740        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
741        begin        begin
742           Scanningtype := '1';           Scanningtype := '1';
# Line 826  begin Line 760  begin
760        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
761        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
762        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
763          PanelValg7.Enabled := false;
764          PanelValg7.Font.Color := clInactiveCaption;
765    
766       // her skal vi også disable de menupunkter DBK ikke kan bruge       // her skal vi også disable de menupunkter DBK ikke kan bruge
767        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
768        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
769  // 20150317: start  
770        Pakkeshoplevering1.Enabled := false;        Pakkeshoplevering1.Enabled := false;
771        Returpakkerfrapakkeshop1.Enabled := false;        Returpakkerfrapakkeshop1.Enabled := false;
772  // 20150317: slut  
773        if SpecialVersionScanningtype = 'A' then        if SpecialVersionScanningtype = 'A' then
774        begin        begin
775           Scanningtype := '1';           Scanningtype := '1';
# Line 862  begin Line 799  begin
799        PanelValg5.Font.Color := clInactiveCaption;        PanelValg5.Font.Color := clInactiveCaption;
800        PanelValg6.Enabled := false;        PanelValg6.Enabled := false;
801        PanelValg6.Font.Color := clInactiveCaption;        PanelValg6.Font.Color := clInactiveCaption;
802          PanelValg7.Enabled := false;
803          PanelValg7.Font.Color := clInactiveCaption;
804       // 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
805  // 20150317: start  
806        Automatiskvalg1.Enabled := false;        Automatiskvalg1.Enabled := false;
807  // 20150317: slut  
808        Pakkernormal1.Enabled := false;        Pakkernormal1.Enabled := false;
809        ReturpakkerfraDAO1.Enabled := false;        ReturpakkerfraDAO1.Enabled := false;
810        Returpakkerfraboghandler1.Enabled := false;        Returpakkerfraboghandler1.Enabled := false;
# Line 957  begin Line 896  begin
896             RutenummerST.Caption := '';             RutenummerST.Caption := '';
897             BoghandlerNavnST.Caption := 'Fejl i urls';             BoghandlerNavnST.Caption := 'Fejl i urls';
898             KommentarST.Caption := 'Se log vinduet';             KommentarST.Caption := 'Se log vinduet';
899             PakkeshopNulstil.Visible := true;             btnNulstil.Visible := true;
900             exit;             exit;
901          end;          end;
902      end      end
# Line 1000  begin Line 939  begin
939      if Pakketype = '1' then      if Pakketype = '1' then
940      begin      begin
941        Storepakker1.Checked := true;        Storepakker1.Checked := true;
942        RadioButton1.Checked := true;        radioStorPakke.Checked := true;
943      end      end
944      else      else
945      begin      begin
946        Smpakker1.Checked := true;        Smpakker1.Checked := true;
947        RadioButton2.Checked := true;        radioLillePakke.Checked := true;
948      end;      end;
949    
950      if TestFunktionen = '1' then      if TestFunktionen = '1' then
# Line 1045  begin Line 984  begin
984        ScannetOkStorLyd := '';        ScannetOkStorLyd := '';
985      end;      end;
986    
987  // 20150317: start  
988      if not FileExists(ScannetOkTilTjekkodeLyd) then      if not FileExists(ScannetOkTilTjekkodeLyd) then
989      begin      begin
990        ScannetOkTilTjekkodeLyd := '';        ScannetOkTilTjekkodeLyd := '';
991      end;      end;
 // 20150317: slut  
992    
     if (PrinterNavn <> '') then  
     begin  
        printerInd := Printer.Printers.IndexOf(printerNavn);  
        if printerInd >= 0 then  
           Printer.PrinterIndex := printerInd;  
     end;  
993    
994      CheckPrintQue('Opstart');  
995    
996        LabelPrint := TLabelPrint.Create( self, Config, PrinterNavn );
997        LabelPrint.CheckPrintQue('Opstart', PrinterNavn);
998    
999    finally    finally
1000      Free;      Free;
# Line 1083  begin Line 1018  begin
1018          InitBladhus();          InitBladhus();
1019        end;        end;
1020    
1021  // 20150310: start  
1022      // Opbygger PanelManglendePakker information      // Opbygger PanelManglendePakker information
1023      gemScanningtype := Scanningtype;      gemScanningtype := Scanningtype;
1024    
# Line 1124  begin Line 1059  begin
1059      end;      end;
1060    
1061      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
 // 20150310: slut  
1062    
1063      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1064      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1065    
1066  end;  end;
1067    
# Line 1145  var Line 1079  var
1079    BoghandlerNavn : String;    BoghandlerNavn : String;
1080    Koreliste : String;    Koreliste : String;
1081    PrintNyLabel : Boolean;    PrintNyLabel : Boolean;
   List1msg : String;  
1082    pakkeErScannet : Integer;    pakkeErScannet : Integer;
1083    pakkeForkertSted : Integer;    pakkeForkertSted : Integer;
1084    tjekkodeMangler : Integer;    tjekkodeMangler : Integer;
# Line 1170  begin Line 1103  begin
1103      ClipboardData := Clipboard.AsText;      ClipboardData := Clipboard.AsText;
1104      numberString := ClipboardData;      numberString := ClipboardData;
1105      Val(numberString, float, errorPos);      Val(numberString, float, errorPos);
1106  // 20150311: start  
1107  //    if (ClipboardData <> '') and (errorPos = 0) then      //    if (ClipboardData <> '') and (errorPos = 0) then
1108      if (ClipboardData <> '') and (errorPos = 0)      if (ClipboardData <> '') and (errorPos = 0)
1109      or (NumberString = 'Nulstil')      or (NumberString = 'Nulstil')
1110      or (NumberString = 'Indtast kundenummer')      or (NumberString = 'Indtast kundenummer')
# Line 1186  begin Line 1119  begin
1119      or (NumberString = 'DAO DIREKTE')      or (NumberString = 'DAO DIREKTE')
1120      or (NumberString = 'DAO PAKKESHOP')      or (NumberString = 'DAO PAKKESHOP')
1121      or (NumberString = 'Retur fra pakkeshop') then      or (NumberString = 'Retur fra pakkeshop') then
1122  // 20150311: slut  
1123      begin      begin
1124        Stregkode := Stregkode + ClipboardData;        Stregkode := Stregkode + ClipboardData;
1125        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1199  begin Line 1132  begin
1132    
1133    if Key = #13 then     // Enter    if Key = #13 then     // Enter
1134    begin    begin
 // 20150306: start  
1135      if (Length(Trim(Stregkode)) = 0) then      if (Length(Trim(Stregkode)) = 0) then
1136      begin      begin
1137        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Der skal scannes en stregkode...' );
1138        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;  
1139        exit;        exit;
1140      end;      end;
 // 20150306: slut  
1141    
 // 20150311: start  
1142      if StregKode = 'Nulstil' then      if StregKode = 'Nulstil' then
1143      begin      begin
1144         PakkeshopNulstil.Click();         btnNulstil.Click();
1145         exit;         exit;
1146      end;      end;
1147    
1148      if PakkeshopNulstil.Visible then      if btnNulstil.Visible then
1149      begin      begin
1150         PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'HUSK at klikke Nulstil før ny scanning...' );
1151  // 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  
1152         exit;         exit;
1153      end;      end;
1154    
1155      if StregKode = 'Lille pakke' then      if StregKode = 'Lille pakke' then
1156      begin      begin
1157         if RadioButton2.Enabled = true then         if radioLillePakke.Enabled = true then
1158         begin         begin
1159            InitLillePakke();            InitLillePakke();
1160         end         end
1161         else         else
1162         begin         begin
1163          //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;  
1164         end;         end;
1165         Stregkode := '';         Stregkode := '';
1166         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1268  begin Line 1169  begin
1169    
1170      if StregKode = 'Stor pakke' then      if StregKode = 'Stor pakke' then
1171      begin      begin
1172         if RadioButton1.Enabled = true then         if radioStorPakke.Enabled = true then
1173         begin         begin
1174            InitStorPakke();            InitStorPakke();
1175         end         end
1176         else         else
1177         begin         begin
1178          //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;  
1179         end;         end;
1180         Stregkode := '';         Stregkode := '';
1181         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1294  begin Line 1184  begin
1184    
1185      if StregKode = 'Indtast kundenummer' then      if StregKode = 'Indtast kundenummer' then
1186      begin      begin
1187         if CheckBox1.Enabled = true then         if chkSporgEfterKunde.Enabled = true then
1188         begin         begin
1189           if (CheckBox1.State = cbChecked) then           if (chkSporgEfterKunde.State = cbChecked) then
1190           begin           begin
1191            CheckBox1.State := cbUnchecked;            chkSporgEfterKunde.State := cbUnchecked;
1192           end           end
1193           else           else
1194           begin           begin
1195            CheckBox1.State := cbChecked;            chkSporgEfterKunde.State := cbChecked;
1196           end;           end;
1197         end         end
1198         else         else
1199         begin         begin
1200          //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;  
1201         end;         end;
1202         Stregkode := '';         Stregkode := '';
1203         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1327  begin Line 1206  begin
1206    
1207      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
1208      begin      begin
1209        if CheckBox3.Enabled = true then        if chkScanTjekkode.Enabled = true then
1210        begin        begin
1211           if (CheckBox3.State = cbChecked) then           if (chkScanTjekkode.State = cbChecked) then
1212           begin           begin
1213            CheckBox3.State := cbUnchecked;            chkScanTjekkode.State := cbUnchecked;
1214           end           end
1215           else           else
1216           begin           begin
1217            CheckBox3.State := cbChecked;            chkScanTjekkode.State := cbChecked;
1218           end;           end;
1219        end        end
1220        else        else
1221        begin        begin
1222          //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;  
1223        end;        end;
1224        Stregkode := '';        Stregkode := '';
1225        StregkodeST.Caption := StregKode;        StregkodeST.Caption := StregKode;
# Line 1366  begin Line 1234  begin
1234         end         end
1235         else         else
1236         begin         begin
1237          //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;  
1238         end;         end;
1239         Stregkode := '';         Stregkode := '';
1240         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1241         exit;         exit;
1242      end;      end;
1243    
1244  // 20150323: start  
 //    if StregKode = 'DAO NAT X-PRESS' then  
1245      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  
1246      begin      begin
1247         if (PanelValg1.Enabled = true) then         if (PanelValg1.Enabled = true) then
1248         begin         begin
# Line 1395  begin Line 1250  begin
1250         end         end
1251         else         else
1252         begin         begin
1253          //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;  
1254         end;         end;
1255         Stregkode := '';         Stregkode := '';
1256         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1421  begin Line 1265  begin
1265         end         end
1266         else         else
1267         begin         begin
1268          //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;  
1269         end;         end;
1270         Stregkode := '';         Stregkode := '';
1271         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1447  begin Line 1280  begin
1280         end         end
1281         else         else
1282         begin         begin
1283          //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;  
1284         end;         end;
1285         Stregkode := '';         Stregkode := '';
1286         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1473  begin Line 1295  begin
1295         end         end
1296         else         else
1297         begin         begin
1298          //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;  
1299         end;         end;
1300         Stregkode := '';         Stregkode := '';
1301         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1499  begin Line 1310  begin
1310         end         end
1311         else         else
1312         begin         begin
1313          //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;  
1314         end;         end;
1315         Stregkode := '';         Stregkode := '';
1316         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
# Line 1525  begin Line 1325  begin
1325         end         end
1326         else         else
1327         begin         begin
1328          //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;  
1329         end;         end;
1330         Stregkode := '';         Stregkode := '';
1331         StregkodeST.Caption := StregKode;         StregkodeST.Caption := StregKode;
1332         exit;         exit;
1333      end;      end;
1334  // 20150311: slut  
1335    
1336      if (Length(Stregkode) > 8) then      if (Length(Stregkode) > 8) then
1337      begin      begin
# Line 1590  begin Line 1379  begin
1379        Pakkescanningtype := Scanningtype;        Pakkescanningtype := Scanningtype;
1380      end;      end;
1381    
1382      if (   (Pakkescanningtype = '1') and (PanelValg1.Enabled = false)      if (   ( (Pakkescanningtype = '1') and (PanelValg1.Enabled = false) )
1383          or (Pakkescanningtype = '2') and (PanelValg2.Enabled = false)          or ( (Pakkescanningtype = '2') and (PanelValg2.Enabled = false) )
1384          or (Pakkescanningtype = '3') and (PanelValg3.Enabled = false)          or ( (Pakkescanningtype = '3') and (PanelValg3.Enabled = false) )
1385          or (Pakkescanningtype = '4') and (PanelValg4.Enabled = false)          or ( (Pakkescanningtype = '4') and (PanelValg4.Enabled = false) )
1386          or (Pakkescanningtype = '5') and (PanelValg5.Enabled = false)          or ( (Pakkescanningtype = '5') and (PanelValg5.Enabled = false) )
1387          or (Pakkescanningtype = '6') and (PanelValg6.Enabled = false)  ) then          or ( (Pakkescanningtype = '6') and (PanelValg6.Enabled = false) ) ) then
1388      begin   // Her skal komme en alarm og rød skærm      begin   // Her skal komme en alarm og rød skærm
1389         PlaySound(PWideChar(AlarmLyd));          VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1390         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  
1391         exit;         exit;
1392      end;      end;
1393    
1394      if Automatiskvalg1.Checked and (Length(Stregkode) > 8) then      if (Automatiskvalg1.Checked and (Length(Stregkode) > 8) ) then
1395      begin      begin
1396        GemStregkode := Stregkode;        GemStregkode := Stregkode;
1397        if Pakketype = 'NatXpress' then        if Pakketype = 'NatXpress' then
# Line 1626  begin Line 1403  begin
1403              end;              end;
1404            end            end
1405        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1406  (*  
       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  
 *)  
1407        else if Pakketype = 'Direkte' then        else if Pakketype = 'Direkte' then
1408            begin            begin
1409              if Scanningtype <> '4' then              if Scanningtype <> '4' then
# Line 1661  begin Line 1421  begin
1421              end;              end;
1422            end            end
1423        // Retur kan ikke scannes med 'Automatisk valg'        // Retur kan ikke scannes med 'Automatisk valg'
1424  (*  
       else if Pakketype = 'PakkeshopRetur' then  
           begin  
             if Scanningtype <> '6' then  
             begin  
               Scanningtype := '6';  
               InitReturFraPakkeshop();  
             end;  
           end  
 *)  
1425        else        else
1426            begin   // Her skal komme en alarm og rød skærm            begin
1427               PlaySound(PWideChar(AlarmLyd));            // Her skal komme en alarm og rød skærm
1428               List1msg := 'Pakken kan ikke scannes med automatisk valg';              //VisAlarmSkaerm( Stregkode + ' kan ikke vælges på dette scanningsted' );
1429               ListBox1.Items.Insert(0,List1Msg);               VisAlarmSkaerm( Stregkode + ' kan ikke bruges med automatisk valg' );
1430               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  
1431               exit;               exit;
1432            end;            end;
1433        Stregkode := GemStregkode;        Stregkode := GemStregkode;
1434      end      end
1435      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then      else if Automatiskvalg1.Checked and (PakkeshopText1.Caption = 'Stregkode') then
1436      begin      begin
1437        PlaySound(PWideChar(AlarmLyd));        VisAlarmSkaerm( 'Pakkenummer ikke gyldigt (for kort)' );
1438        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  
1439        exit;        exit;
1440      end;      end;
1441    
# Line 1714  begin Line 1443  begin
1443      begin      begin
1444        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then        if ( (Pakkescanningtype <> Scanningtype) and (Scanningtype <> '2') and (Scanningtype <> '3') ) then
1445        begin        begin
         PlaySound(PWideChar(AlarmLyd));  
         List1msg := 'Pakke findes som pakketype: ' + Pakketype;  
         ListBox1.Items.Insert(0,List1Msg);  
         MainForm.Color := clRed;  
 // 20150316: start  
          RuteNummerST.Caption := '';  
          BoghandlerNavnST.Caption := '';  
 // 20150316: slut  
         KommentarST.Caption := List1msg;  
         PakkeshopNulstil.Visible := true;  
 // 20150312: start  
         StregKode := '';  
         StregkodeST.Caption := StregKode;  
 // 20150312: slut  
         exit;  
       end;  
     end;  
   
 // 20150311: start  
 (*  
     if StregKode = 'Nulstil' then  
     begin  
        PakkeshopNulstil.Click();  
        exit;  
     end;  
   
     if PakkeshopNulstil.Visible then  
     begin  
        PlaySound(PWideChar(AlarmLyd));  
        List1msg := 'HUSK at trykke Nulstil før ny scanning...';  
        ListBox1.Items.Insert(0,List1Msg);  
        MainForm.Color := clRed;  
        KommentarST.Caption := List1msg;  
        exit;  
     end;  
1446    
1447      if StregKode = 'Lille pakke' then          VisAlarmSkaerm( 'Pakke findes som pakketype: ' + Pakketype );
     begin  
        InitLillePakke();  
        exit;  
     end;  
   
     if StregKode = 'Stor pakke' then  
     begin  
        InitStorPakke();  
        exit;  
     end;  
1448    
1449      if StregKode = 'Indtast kundenummer' then          exit;
1450      begin        end;
        if (CheckBox1.State = cbChecked) then  
        begin  
         CheckBox1.State := cbUnchecked;  
        end  
        else  
        begin  
         CheckBox1.State := cbChecked;  
        end;  
        Stregkode := '';  
        exit;  
1451      end;      end;
1452    
     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  
1453    
1454    
1455      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then      if (PakkeshopText1.Visible = true) and (PakkeshopText1.Caption = 'Stregkode') and Automatisktjekkodestyring1.Checked then
1456      begin      begin
1457        CheckBox3.Checked := false;        chkScanTjekkode.Checked := false;
1458        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do        for i := 0 to length(stregkoderMedTjekkodeArray)-1 do
1459        begin        begin
1460          if (Stregkode=stregkoderMedTjekkodeArray[i]) then          if (Stregkode=stregkoderMedTjekkodeArray[i]) then
1461          begin          begin
1462              CheckBox3.Checked := true;              chkScanTjekkode.Checked := true;
1463              Scanogstjekkoden1.Checked := true;              Scanogstjekkoden1.Checked := true;
1464          end;          end;
1465        end;        end;
# Line 1812  begin Line 1471  begin
1471             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1472             BoghandlerTjekkode := '';             BoghandlerTjekkode := '';
1473             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1474             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1475             Stregkode := '';             Stregkode := '';
1476             InitScreen();             InitScreen();
1477        end        end
# Line 1824  begin Line 1483  begin
1483             BoghandlerStregkode := Stregkode;             BoghandlerStregkode := Stregkode;
1484             BoghandlerTjekkode := '-1';             BoghandlerTjekkode := '-1';
1485             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1486             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1487             Stregkode := '';             Stregkode := '';
1488             InitScreen();             InitScreen();
1489        end        end
# Line 1836  begin Line 1495  begin
1495              PakkeshopStregkode := Stregkode;              PakkeshopStregkode := Stregkode;
1496              BoghandlerStregkode := Stregkode;              BoghandlerStregkode := Stregkode;
1497              PakkeshopText1.Caption := 'Tjekkode';              PakkeshopText1.Caption := 'Tjekkode';
1498  // 20150317: start  
1499              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));              PlaySound(PWideChar(ScannetOkTilTjekkodeLyd));
1500  // 20150317: slut  
1501             end             end
1502            else            else
1503             begin             begin
1504                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;  
1505             end;             end;
1506            Stregkode := '';            Stregkode := '';
1507            InitScreen();            InitScreen();
# Line 1861  begin Line 1514  begin
1514             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1515             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1516             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1517                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1518             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1519                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1520             PakkeshopNulstil.Visible := false;             btnNulstil.Visible := false;
1521           end           end
1522          else          else
1523           begin           begin
1524                if (PakkeshopLevering1.Checked) then                if (PakkeshopLevering1.Checked) then
1525                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + PakkeshopStregkode);
1526                if (Pakkernormal1.Checked) then                if (Pakkernormal1.Checked) then
1527                  List1msg := 'Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode;                  VisAlarmSkaerm('Du skal scanne en tjekkode til stregkode ' + BoghandlerStregkode);
1528                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  
1529                StregKode := '';                StregKode := '';
1530                StregkodeST.Caption := StregKode;                StregkodeST.Caption := StregKode;
1531  // 20150323: slut  
1532                exit;                exit;
1533           end;           end;
1534          Stregkode := '';          Stregkode := '';
# Line 1891  begin Line 1537  begin
1537    
1538      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then      if not PakkeshopLevering1.Checked and not Pakkernormal1.Checked or (PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '')) or (Pakkernormal1.Checked and (Scanogstjekkoden1.Checked and (BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked)) then
1539      begin      begin
1540    
1541         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1542            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1543         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then         if Pakkernormal1.Checked and ((BoghandlerStregkode <> '') and (BoghandlerTjekkode <> '') or not Scanogstjekkoden1.Checked) then
# Line 1903  begin Line 1550  begin
1550            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her            // Hvis der var sql fejl i opdateringen skal dette fejlmeldes her
1551            if Rutenummer = 'sql fejl' then            if Rutenummer = 'sql fejl' then
1552            begin   // Her skal komme en alarm og rød skærm            begin   // Her skal komme en alarm og rød skærm
1553               PlaySound(PWideChar(AlarmLyd));               VisAlarmSkaerm( 'SQL fejl: ' + Kommentar );
1554               //List1msg := 'SQL fejl: ' + Kommentar;  
              //ListBox1.Items.Insert(0,List1Msg);  
              MainForm.Color := clRed;  
              //KommentarST.Caption := List1msg;  
              PakkeshopNulstil.Visible := true;  
1555              exit;              exit;
1556            end;            end;
1557            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then            if (Pakkernormal1.Checked or Budlevering1.Checked or PakkeshopLevering1.Checked) then
# Line 1928  begin Line 1571  begin
1571              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then              if (pakkeErScannet > 0) or (pakkeForkertSted > 0) or (tjekkodemangler > 0) then
1572              begin              begin
1573                PlaySound(PWideChar(AlarmLyd));                PlaySound(PWideChar(AlarmLyd));
1574                PakkeshopNulstil.Visible := true;                btnNulstil.Visible := true;
1575                MainForm.Color := clRed;                MainForm.Color := clRed;
1576              end;              end;
1577           end;           end;
1578            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
1579            begin            begin
1580              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1581              if Storepakker1.Checked then              if Storepakker1.Checked then
1582              begin              begin
1583                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1943  begin Line 1586  begin
1586              begin              begin
1587                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1588              end;              end;
1589              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1590            end            end
1591            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1592            begin            begin
1593              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1594              if Storepakker1.Checked then              if Storepakker1.Checked then
1595              begin              begin
1596                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1956  begin Line 1599  begin
1599              begin              begin
1600                PlaySound(PWideChar(ScannetOkLyd));                PlaySound(PWideChar(ScannetOkLyd));
1601              end;              end;
1602              PakkeshopNulstil.Visible := false;              btnNulstil.Visible := false;
1603            end            end
1604            else if Copy(Kommentar,1,8) = 'OPRETTET' then            else if Copy(Kommentar,1,8) = 'OPRETTET' then
1605            begin            begin
1606              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;  
1607            end            end
1608            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'            else if Kommentar = StregKode then    // budlevering  til 'Ukendt tur'
1609            begin            begin
1610            end            end
1611            else            else
1612            begin            begin
1613              MainForm.Color := clRed;              VisAlarmSkaerm('');
             PlaySound(PWideChar(AlarmLyd));  
             PakkeshopNulstil.Visible := true;  
1614            end;            end;
1615           if not PakkeshopNulstil.Visible then  
1616             if not btnNulstil.Visible then
1617            begin            begin
1618  // 20150310: start  
 //            SletStregkodelinieFraListboks2(StregKode);  
 // 20150310: slut  
1619              If (Budlevering1.Checked) then              If (Budlevering1.Checked) then
1620              begin              begin
1621                if Storepakker1.Checked then                if Storepakker1.Checked then
# Line 1993  begin Line 1629  begin
1629                InitLillePakke();                InitLillePakke();
1630              end;              end;
1631            end;            end;
1632  // 20150310: start  
1633            SletStregkodelinieFraListboks2(StregKode);            SletStregkodelinieFraListboks2(StregKode);
1634  // 20150310: slut  
1635            PakkeshopStregkode := '';            PakkeshopStregkode := '';
1636            PakkeshopTjekkode := '';            PakkeshopTjekkode := '';
1637            BoghandlerStregkode := '';            BoghandlerStregkode := '';
# Line 2026  begin Line 1662  begin
1662    
1663    Key := #0;    Key := #0;
1664    
1665  end;  end; //End of OnKeyPress
1666    
1667  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);  procedure TMainForm.SendInfoTilServer(Sted, Scanningtype, Infotype, Info : String);
1668  const  const
# Line 2063  end; Line 1699  end;
1699    
1700  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);  procedure TMainForm.SletStregkodelinieFraListboks2(StregKode : String);
1701  var  var
 // 20150309: start  
 //  i:integer;  
1702    i : Integer;    i : Integer;
1703    wrkAntal : String;    wrkAntal : String;
1704    wrkAntalIdag, wrkAntalSenere : Integer;    wrkAntalIdag, wrkAntalSenere : Integer;
1705  // 20150309: slut  
1706    
1707  begin  begin
1708      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked or menuIndlevering.Checked then
1709      begin      begin
1710        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1711          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
1712          begin          begin
1713  // 20150309: start  
1714            // Ajourføring af tæller for manglende pakker (scanninger)            // Ajourføring af tæller for manglende pakker (scanninger)
1715            wrkAntal := StaticTextManglendePakker.Caption;            wrkAntal := StaticTextManglendePakker.Caption;
1716            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1717            begin            begin
1718              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1719              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1720  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1721  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1722  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1723              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1724            end            end
1725            else     // kun idag            else     // kun idag
1726            begin            begin
# Line 2112  begin Line 1746  begin
1746            begin            begin
1747              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);              StaticTextManglendePakker.Caption := IntToStr(wrkAntalIdag);
1748            end;            end;
 // 20150309: slut  
1749    
 // 20150310: start  
1750            if (Scanningtype = '1') then            if (Scanningtype = '1') then
1751            begin            begin
1752              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);              PanelManglendePakker1.Caption := IntToStr(wrkAntalIdag + wrkAntalSenere);
# Line 2192  begin Line 1824  begin
1824                PanelManglendePakker6.Visible := false;                PanelManglendePakker6.Visible := false;
1825              end;              end;
1826            end;            end;
1827  // 20150310: slut  
1828            ListBox2.items.delete(i);            ListBox2.items.delete(i);
1829          end;          end;
1830      end;      end;
# Line 2219  begin Line 1851  begin
1851  end;  end;
1852    
1853  procedure TMainForm.InitBladhus();  procedure TMainForm.InitBladhus();
 var  
   LogFilnavn : string;  
1854    
1855  begin  begin
1856    Altidprintepakkelabel1.Enabled := false;    Altidprintepakkelabel1.Enabled := false;
# Line 2230  begin Line 1860  begin
1860    Sprgefterboghandlernummer1.Enabled := false;    Sprgefterboghandlernummer1.Enabled := false;
1861    ListBox1.Visible := true;    ListBox1.Visible := true;
1862  //  TestFunktionen := '1';  //  TestFunktionen := '1';
1863  // 20150317: start  
 (*  
   if TestFunktionen = '1' then  
     begin  
       Testforbindelsen1.Visible := true;  
       Testprinter1.Visible := true;  
       Testlyd1.Visible := true;  
       Testlyd2.Visible := true;  
     end  
   else if TestFunktionen = '2' then  
     begin  
       Testforbindelsen1.Enabled := false;  
       Testprinter1.Enabled := false;  
       Testlyd1.Enabled := false;  
       Testlyd2.Enabled := false;  
     end  
   else  
     begin  
       Testforbindelsen1.Visible := false;  
       Testprinter1.Visible := false;  
       Testlyd1.Visible := false;  
       Testlyd2.Visible := false;  
     end;  
   Testprinter1.Visible := false;  
   AlarmLyd := 'Sounds\Alarm.wav';  
   if not FileExists(AlarmLyd) then  
     begin  
       AlarmLyd := '';  
     end;  
   ScannetOkLyd := 'Sounds\Ok.wav';  
   if not FileExists(ScannetOkLyd) then  
     begin  
       ScannetOkLyd := '';  
     end;  
   ScannetOkStorLyd := 'Sounds\Ok_stor.wav';  
   if not FileExists(ScannetOkStorLyd) then  
     begin  
       ScannetOkStorLyd := '';  
     end;  
 *)  
 // 20150317: slut  
1864    if Budlevering1.Checked then    if Budlevering1.Checked then
1865    begin    begin
1866      IndlesScanningLogFil();      IndlesScanningLogFil();
# Line 2283  begin Line 1873  begin
1873      01 :      01 :
1874            begin;      // NS            begin;      // NS
1875              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1876              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1877              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1878              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1879              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1880              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2297  begin Line 1887  begin
1887              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1888              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1889              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1890              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1891              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1892              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1893              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1894              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1895              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1896              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2310  begin Line 1900  begin
1900              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1901             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
1902              begin              begin
1903                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1904              end              end
1905              else              else
1906              begin              begin
1907                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
1908              end;              end;
1909              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1910              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1911              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1912              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1913              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2335  begin Line 1925  begin
1925              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1926              Smpakker1.Enabled := true;              Smpakker1.Enabled := true;
1927              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1928              RadioButton1.Enabled := true;              radioStorPakke.Enabled := true;
1929              RadioButton2.Enabled := true;              radioLillePakke.Enabled := true;
1930              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
1931              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1932              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1933              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1934            end;            end;
# Line 2354  var Line 1944  var
1944    URLStr : String;    URLStr : String;
1945    pakkestorrelse : String;    pakkestorrelse : String;
1946    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
1947    
1948      PakkeshopLabel: TPakkeshopLabel;
1949  begin  begin
1950    if RadioButton1.Checked then    if radioStorPakke.Checked then
1951    begin    begin
1952      pakkestorrelse := 'Stor';      pakkestorrelse := 'Stor';
1953    end;    end;
1954    if RadioButton2.Checked then    if radioLillePakke.Checked then
1955    begin    begin
1956      pakkestorrelse := 'Lille';      pakkestorrelse := 'Lille';
1957    end;    end;
1958    
1959    
1960    if Pakkernormal1.Checked then    if Pakkernormal1.Checked then
1961    begin    begin
1962       if (BoghandlerTjekkode = '') then       if (BoghandlerTjekkode = '') then
# Line 2391  begin Line 1985  begin
1985    begin    begin
1986       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);       URLStr := Format(UrlReturPakkeshop,[Sted, PakkeNr]);
1987    end    end
1988      else if menuIndlevering.Checked then
1989      begin
1990        URLStr := Format(UrlIndleveringsPakke,[Sted, PakkeNr]);
1991      end
1992    else    else
1993    begin    begin
1994      exit;      exit;
# Line 2425  begin Line 2023  begin
2023        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;        BoghandlerNavn := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNr').Text;
2024        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;        BoghandlerNavn := BoghandlerNavn + ' ' + XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopNavn').Text;
2025        PrintNyLabel := False;        PrintNyLabel := False;
2026  // 20150310: start  
2027        if Pakkeshoplevering1.Checked then        if Pakkeshoplevering1.Checked then
2028        begin        begin
 // 20150310: slut  
2029          try          try
2030            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);            PrintNyLabelInteger := StrToInt(XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('PakkeshopPrintPakkeLabel').Text);
2031          except on e:exception do          except on e:exception do
# Line 2438  begin Line 2035  begin
2035          begin          begin
2036            PrintNyLabel := True;            PrintNyLabel := True;
2037          end;          end;
 // 20150310: start  
2038        end;        end;
 // 20150310: slut  
2039       end       end
2040        else if menuIndlevering.Checked then
2041        begin
2042    
2043    
2044    
2045    
2046         Kommentar := XMLDocument1.ChildNodes.FindNode('PakkeKontrol').ChildNodes.FindNode('Stregkodematch').Text;
2047         if (Kommentar = 'Ok') then
2048         begin
2049           PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2050           PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2051           RuteNummer := PakkeshopLabel.Koreliste + '  ->  ' +  PakkeshopLabel.PakkeshopTurid;
2052           Stregkode := PakkeshopLabel.Stregkode;
2053    
2054           LabelPrint.PrintPakkeshopLabel( PakkeshopLabel );
2055    
2056         end;
2057    
2058    
2059        end
2060      else      else
2061       begin       begin
2062        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;        RuteNummer := XMLDocument1.ChildNodes.FindNode('BogpakkeKontrol').ChildNodes.FindNode('TurId').Text;
# Line 2474  begin Line 2089  begin
2089          PrintNyLabel := True;          PrintNyLabel := True;
2090        end;        end;
2091      end;      end;
2092    
2093    
2094      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
2095      begin      begin
2096        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then        if (Leveringssted <> BladhusStedKode[BladhusSted]) and (BladhusStedKode[BladhusSted] <> 'DBK') then
# Line 2514  begin Line 2131  begin
2131    if Pakkeshoplevering1.Checked then    if Pakkeshoplevering1.Checked then
2132      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';      List1msg := List1msg + PakkeshopStregkode + ' ' + PakkeshopTjekkode + '; ' + KommentarST.Caption + '; ';
2133    List1Pakkestorrelse := '';    List1Pakkestorrelse := '';
2134    if RadioButton1.Checked then    if radioStorPakke.Checked then
2135    begin    begin
2136      List1Pakkestorrelse := 'Stor pakke';      List1Pakkestorrelse := 'Stor pakke';
2137    end;    end;
2138    if RadioButton2.Checked then    if radioLillePakke.Checked then
2139    begin    begin
2140      List1Pakkestorrelse := 'Lille pakke';      List1Pakkestorrelse := 'Lille pakke';
2141    end;    end;
# Line 2540  begin Line 2157  begin
2157    if Budlevering1.Checked then    if Budlevering1.Checked then
2158    begin    begin
2159       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;       List1msg := TimeToStr(now) + '; ' + Kommentar + '; ' + BoghandlerNavn;
2160        if (RadioButton1.Checked) then        if (radioStorPakke.Checked) then
2161        begin        begin
2162          List1msg := List1msg + '; Stor pakke';          List1msg := List1msg + '; Stor pakke';
2163        end;        end;
2164        if (RadioButton2.Checked) then        if (radioLillePakke.Checked) then
2165        begin        begin
2166          List1msg := List1msg + '; Lille pakke';          List1msg := List1msg + '; Lille pakke';
2167        end;        end;
# Line 2566  begin Line 2183  begin
2183        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2184      end;      end;
2185    end;    end;
2186      if menuIndlevering.Checked then
2187      begin
2188        List1Msg := Stregkode;
2189      end;
2190    
2191    
2192    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2193    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2194    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2195  end;  end;
2196    
2197  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2198  begin  begin
2199    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2200    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2588  pakkeForkertSted : Integer; Line 2211  pakkeForkertSted : Integer;
2211    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2212  begin  begin
2213    if Budlevering1.Checked then    if Budlevering1.Checked then
2214       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2215    
2216    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2217    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2601  begin Line 2224  begin
2224    end;    end;
2225    pakkeForkertSted := pos('burde være hos', Kommentar);    pakkeForkertSted := pos('burde være hos', Kommentar);
2226    
2227  // 20150306: start  
2228  //  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
2229    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  
2230    begin    begin
2231        if (RuteNummer = 'Ukendt') then        if (RuteNummer = 'Ukendt') then
2232        begin        begin
# Line 2631  begin Line 2253  begin
2253       if (BoghandlerNavn = 'Ukendt pakke') then       if (BoghandlerNavn = 'Ukendt pakke') then
2254       begin       begin
2255          PrintNyLabel := false;          PrintNyLabel := false;
2256  // 20150306: start  
 //        PlaySound(PWideChar(AlarmLyd));  
2257          PlaySound(PWideChar(AlarmLyd));          PlaySound(PWideChar(AlarmLyd));
2258          MainForm.Color := clRed;          MainForm.Color := clRed;
2259          PakkeshopNulstil.Visible := true;          btnNulstil.Visible := true;
2260  // 20150306: slut  
2261       end       end
2262       else       else
2263       begin       begin
# Line 2646  begin Line 2267  begin
2267            PrintNyLabel := true;            PrintNyLabel := true;
2268            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2269            nyFarve := Farve;            nyFarve := Farve;
2270            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2271            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2272            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2273            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2274            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2275            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2276  // 20150213: start  
2277            if (PrinterNavn = 'Ingen') then            if (PrinterNavn = 'Ingen') then
2278            begin            begin
2279               PrintNyLabel := false;               PrintNyLabel := false;
2280            end;            end;
2281  // 20150313: slut  
 // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2282            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
2283            begin            begin
2284              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2285              MainForm.Color := clRed;              MainForm.Color := clRed;
2286              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2287            end;            end;
2288  // 20150306: slut  
2289         end;         end;
2290         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);         kontrolKoreliste := TjekKoreliste(RuteNummer, Koreliste);
2291         if (kontrolKoreliste <> RuteNummer) then         if (kontrolKoreliste <> RuteNummer) then
# Line 2685  begin Line 2304  begin
2304            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
2305            logTekst := RightStr(List1Msg, Length(List1Msg)-10);            logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2306            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
2307  // 20150306: start  
 //          PlaySound(PWideChar(AlarmLyd));  
2308            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
2309            begin            begin
2310              PlaySound(PWideChar(AlarmLyd));              PlaySound(PWideChar(AlarmLyd));
2311              MainForm.Color := clRed;              MainForm.Color := clRed;
2312              PakkeshopNulstil.Visible := true;              btnNulstil.Visible := true;
2313            end;            end;
2314  // 20150306: slut  
 // 20150306: start  
 //       end  
 //       else  
 //       begin  
2315         end;         end;
2316       end;       end;
2317    
# Line 2715  begin Line 2329  begin
2329               if PrintNyLabel or (RuteNummer = 'Rutenr') then               if PrintNyLabel or (RuteNummer = 'Rutenr') then
2330  // 20150304: slut  // 20150304: slut
2331                begin                begin
2332                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2333                end;                end;
2334              end;              end;
2335        01 :  begin;        01 :  begin;
2336               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2337                    // 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
2338                    // 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')
2339                begin                begin
2340                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2341                end;                end;
2342              end;              end;
2343        02 :  begin;        02 :  begin;
2344                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2345                begin                begin
2346                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2347                end;                end;
2348              end;              end;
2349        03 :  begin;        03 :  begin;
2350               if PrintNyLabel and ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then               if PrintNyLabel or ( (kontrolKoreliste <> '') and (kontrolKoreliste <> RuteNummer) ) or (RuteNummer = 'Rutenr') then
2351                    // 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
2352                    // 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')
2353               begin               begin
2354                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2355               end;               end;
2356              end;              end;
2357        04 :  begin;        04 :  begin;
2358                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test                if PrintNyLabel or (RuteNummer = 'Rutenr') then   // Hvis RuteNummer = 'Rutenr' er vi igang med en printer test
2359                begin                begin
2360                  SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);                  LabelPrint.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, PrintNyLabel, BoghandlerNummer);
2361                end;                end;
2362              end;              end;
2363        else        else
# Line 2757  begin Line 2371  begin
2371      exit;      exit;
2372    end;    end;
2373    
2374    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
2375    begin    begin
2376    end    end
2377    else    else
2378    begin    begin
2379      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
2380      begin      begin
2381        logTekst := 'Printer label type ';        logTekst := 'Printer label type ';
2382        if (CheckBox2.Checked) then        if (chkAltidPrintLabel.Checked) then
2383        begin        begin
2384          logTekst := logTekst + 'Alle ';          logTekst := logTekst + 'Alle ';
2385        end        end
# Line 2779  begin Line 2393  begin
2393        end;        end;
2394        logTekst := logTekst + ' for '+BoghandlerNavn;        logTekst := logTekst + ' for '+BoghandlerNavn;
2395        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
2396        with Printer do  
2397        begin        LabelPrint.PrintDaodirekteLabel( RuteNummer, Kommentar, BoghandlerNavn) ;
2398          BeginDoc;        
         Canvas.Font.Size := FontSizeRute;  
         if (Length(RuteNummer) > 7) then  
         begin  
           Canvas.Font.Size := FontSizeRuteLille;  
         end;  
         Canvas.TextOut(XPosRute,YPosRute, RuteNummer);  
         Canvas.Font.Size := FontSizeKommentar;  
         Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);  
         if (Kommentar = 'Ok') or (Kommentar = 'ALLEREDE SCANNET') then  
         begin  
           Kommentar := '';  
         end;  
         if (BoghandlerNavn = 'PAKKE ER SCANNET') then  
         begin  
           BoghandlerNavn := '';  
         end;  
         Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)  
         Canvas.Font.Size := FontSizeBoghandler;  
         Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);  
         EndDoc;  
       end;  
2399      end;      end;
2400    end;    end;
2401    
2402  end;  end;
2403    
 procedure TMainForm.SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');  
 begin  
     with Printer do  
     begin  
       BeginDoc;  
       Canvas.Font.Size := FontSizeRuteLille;  
       if (kontrolKoreliste <> '') then  
       begin  
         Canvas.TextOut(XPosRute,YPosRute, kontrolKoreliste);  
       end  
       else  
       begin  
         Canvas.TextOut(XPosRute,YPosRute, RuteNummer);  
       end;  
       Canvas.Font.Size := FontSizeKorelisteLille;  
       Canvas.TextOut(XPosKoreliste,YPosKoreliste, Koreliste);  
       if (Sted = 'DBK') or (Sted = '04') then  
       begin  
         Canvas.Font.Size := FontSizeSorteringsfelt1;  
         Canvas.TextOut(XPosSorteringsfelt1,YPosSorteringsfelt1, DBKbane);   // sorteringsoplysning 1  
         Canvas.Font.Size := FontSizeSorteringsfelt1;  
         Canvas.TextOut(XPosSorteringsfelt2,YPosSorteringsfelt2, Leveringssted);   // sorteringsoplysning 2  
       end;  
       Canvas.Font.Size := FontSizeKommentar;  
       Kommentar := StringReplace(Kommentar, #$A, ' - ', [rfReplaceAll, rfIgnoreCase]);  
 // 20150304: start  
       Kommentar := StringReplace(Kommentar, 'PAKKE ER SCANNET', '', [rfReplaceAll, rfIgnoreCase]);  
 // 20150304: slut  
       Canvas.TextOut(XPosKommentar,YPosKommentar, Kommentar);  // Kan ikke lave linieskift (se tidligere kommentar om samme)  
       if SmsKode <> '' then  
       begin  
         Canvas.Font.Size := FontSizeSmskode;  
         Canvas.TextOut(XPosKommentar,YPosSmskode, concat('CODE: ', SmsKode));  
       end;  
       Canvas.Font.Size := FontSizeBoghandler;  
       Canvas.TextOut(XPosBoghandler,YPosBoghandler, BoghandlerNavn);  
       EndDoc;  
     end;  
 end;  
2404    
2405    
2406  procedure TMainForm.RadioButton1Click(Sender: TObject);  procedure TMainForm.radioStorPakkeClick(Sender: TObject);
2407  begin  begin
2408      Storepakker1.Checked := true;      Storepakker1.Checked := true;
2409      RadioButton1.Checked := true;      radioStorPakke.Checked := true;
2410  end;  end;
2411    
2412  procedure TMainForm.RadioButton2Click(Sender: TObject);  procedure TMainForm.radioLillePakkeClick(Sender: TObject);
2413  begin  begin
2414      Smpakker1.Checked := true;      Smpakker1.Checked := true;
2415      RadioButton2.Checked := true;      radioLillePakke.Checked := true;
2416  end;  end;
2417    
2418    
2419  procedure TMainForm.CheckBox1Click(Sender: TObject);  procedure TMainForm.chkSporgEfterKundeClick(Sender: TObject);
2420  begin  begin
2421    if CheckBox1.Checked then    if chkSporgEfterKunde.Checked then
2422    begin    begin
2423       Sprgefterboghandlernummer1.Checked := true;       Sprgefterboghandlernummer1.Checked := true;
2424    end    end
# Line 2875  begin Line 2429  begin
2429  end;  end;
2430    
2431    
2432  procedure TMainForm.CheckBox2Click(Sender: TObject);  procedure TMainForm.chkAltidPrintLabelClick(Sender: TObject);
2433  begin  begin
2434    if CheckBox2.Checked then    if chkAltidPrintLabel.Checked then
2435    begin    begin
2436       Altidprintepakkelabel1.Checked := true;       Altidprintepakkelabel1.Checked := true;
2437    end    end
# Line 2888  begin Line 2442  begin
2442    
2443  end;  end;
2444    
2445  procedure TMainForm.CheckBox3Click(Sender: TObject);  procedure TMainForm.chkScanTjekkodeClick(Sender: TObject);
2446  begin  begin
2447    if CheckBox3.Checked then    if chkScanTjekkode.Checked then
2448    begin    begin
2449       Scanogstjekkoden1.Checked := true;       Scanogstjekkoden1.Checked := true;
2450    end    end
# Line 2912  begin Line 2466  begin
2466      Automatiskvalg1.Checked := false;      Automatiskvalg1.Checked := false;
2467      PanelValgA.Color := clBtnFace;      PanelValgA.Color := clBtnFace;
2468      PanelValgA.Font.Color := clWindowText;      PanelValgA.Font.Color := clWindowText;
2469  // 20150317: start  
2470      if (SpecialVersionSted = '01')      if (SpecialVersionSted = '01')
2471      or (SpecialVersionSted = '02')        or (SpecialVersionSted = '02')
2472      or (SpecialVersionSted = '03')        or (SpecialVersionSted = '03')
2473      or (SpecialVersionSted = '04') then        or (SpecialVersionSted = '04') then
2474      begin      begin
2475        // 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)
2476        PanelValgA.Enabled := false;        PanelValgA.Enabled := false;
# Line 2936  begin Line 2490  begin
2490    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke    //UpdateScreen('', '', 'Tjekker forbindelsen...', '', '');    // virker ikke
2491    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');    ShowMessage('Tjekker data forbindelse til serveren.' + crlf + 'Det kan godt tage nogle minutter.' + crlf + 'Resultatet af testen vises i skærmbilledet...');
2492    
2493          // Tjekker urls    try
2494          logTekst := 'Tjekker urls.';      // Tjekker urls
2495          ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);      logTekst := 'Tjekker urls.';
2496          SkrivScanningLogFil(logTekst);      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2497        SkrivScanningLogFil(logTekst);
2498    
         // Tjekker UrlNormal  
         if PanelValg1.Enabled = true then  
         begin  
           if CheckUrl(UrlNormal) then  
           begin  
             logTekst := 'UrlNormal accepteret: ' + UrlNormal;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlNormal svarer ikke: ' + UrlNormal;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               TjekUrls := '-';   // markerer at der var fejl  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2499    
         // Tjekker UrlReturDAO  
         if PanelValg2.Enabled = true then  
         begin  
           if CheckUrl(UrlReturDAO) then  
           begin  
             logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2500    
2501          // Tjekker UrlReturBoghandler      // Tjekker UrlNormal
2502          if PanelValg3.Enabled = true then      if PanelValg1.Enabled = true then
2503          begin      begin
2504            if CheckUrl(UrlReturBoghandler) then        TjekkerEnkeltUrl('UrlNormal', UrlNormal, urlFejl);
2505            begin      end;
             logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturDAO svarer ikke: ' + UrlReturDAO;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2506    
2507          // Tjekker UrlBudlevering      // Tjekker UrlReturDAO
2508          if PanelValg4.Enabled = true then      if PanelValg2.Enabled = true then
2509          begin      begin
2510            if CheckUrl(UrlBudlevering) then        TjekkerEnkeltUrl('UrlReturDAO', UrlReturDAO, urlFejl);
2511            begin      end;
             logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlBudlevering svarer ikke: ' + UrlBudlevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2512    
2513          // Tjekker UrlPakkeshoplevering      // Tjekker UrlReturBoghandler
2514          if PanelValg5.Enabled = true then      if PanelValg3.Enabled = true then
2515          begin      begin
2516            if CheckUrl(UrlPakkeshoplevering) then        TjekkerEnkeltUrl('UrlReturBoghandler', UrlReturBoghandler, urlFejl);
2517            begin      end;
             logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshoplevering svarer ikke: ' + UrlPakkeshoplevering;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2518    
2519          // Tjekker UrlReturPakkeshop      // Tjekker UrlBudlevering
2520          if PanelValg6.Enabled = true then      if PanelValg4.Enabled = true then
2521          begin      begin
2522            if CheckUrl(UrlReturPakkeshop) then        TjekkerEnkeltUrl('UrlBudlevering', UrlBudlevering, urlFejl);
2523            begin      end;
             logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlReturPakkeshop svarer ikke: ' + UrlReturPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2524    
2525          // Tjekker UrlManglendeScanninger      // Tjekker UrlPakkeshoplevering
2526          if (PanelValg1.Enabled = true)      if PanelValg5.Enabled = true then
2527          or (PanelValg4.Enabled = true) then      begin
2528          begin        TjekkerEnkeltUrl('UrlPakkeshoplevering', UrlPakkeshoplevering, urlFejl);
2529            if CheckUrl(UrlManglendeScanninger) then      end;
           begin  
             logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlManglendeScanninger svarer ikke: ' + UrlManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2530    
2531          // Tjekker UrlPakkeshopManglendeScanninger      // Tjekker UrlReturPakkeshop
2532          if PanelValg5.Enabled = true then      if PanelValg6.Enabled = true then
2533          begin      begin
2534            if CheckUrl(UrlPakkeshopManglendeScanninger) then        TjekkerEnkeltUrl('UrlReturPakkeshop', UrlReturPakkeshop, urlFejl);
2535            begin      end;
             logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeScanninger svarer ikke: ' + UrlPakkeshopManglendeScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2536    
2537          // Tjekker UrlPakkeshopManglendeReturScanninger      // Tjekker UrlManglendeScanninger
2538          if PanelValg6.Enabled = true then      if (PanelValg1.Enabled = true) or (PanelValg4.Enabled = true) then
2539          begin      begin
2540            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then        TjekkerEnkeltUrl('UrlManglendeScanninger', UrlManglendeScanninger, urlFejl);
2541            begin      end;
             logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlPakkeshopManglendeReturScanninger svarer ikke: ' + UrlPakkeshopManglendeReturScanninger;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2542    
2543          // Tjekker UrlEKLoverforsel      // Tjekker UrlPakkeshopManglendeScanninger
2544          if PanelValg1.Enabled = true then      if PanelValg5.Enabled = true then
2545          begin      begin
2546            if CheckUrl(UrlEKLoverforsel) then        TjekkerEnkeltUrl('UrlPakkeshopManglendeScanninger', UrlPakkeshopManglendeScanninger, urlFejl);
2547            begin      end;
             logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforsel svarer ikke: ' + UrlEKLoverforsel;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
2548    
2549  // 20150330: start      // Tjekker UrlPakkeshopManglendeReturScanninger
2550          // Tjekker UrlEKLoverforselPakkeshop      if PanelValg6.Enabled = true then
2551          if PanelValg5.Enabled = true then      begin
2552          begin        TjekkerEnkeltUrl('UrlPakkeshopManglendeReturScanninger', UrlPakkeshopManglendeReturScanninger, urlFejl);
2553            if CheckUrl(UrlEKLoverforselPakkeshop) then      end;
           begin  
             logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;  
             SkrivScanningLogFil(logTekst);  
           end  
           else  
           begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlEKLoverforselPakkeshop svarer ikke: ' + UrlEKLoverforselPakkeshop;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
           end;  
         end;  
 // 20150330: slut  
2554    
2555          // Tjekker UrlFindPakketype     // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2556          if CheckUrl(UrlFindPakketype) then      if PanelValg7.Enabled = true then
2557          begin      begin
2558            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;        TjekkerEnkeltUrl('UrlIndleveringsPakke', UrlIndleveringsPakke, urlFejl);
2559            SkrivScanningLogFil(logTekst);        TjekkerEnkeltUrl('UrlIndleveringsPakkeManglendeScanninger', UrlIndleveringsPakkeManglendeScanninger, urlFejl);
2560          end      end;
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlFindPakketype svarer ikke: ' + UrlFindPakketype;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2561    
2562          // Tjekker UrlSendPrograminfo      // Tjekker UrlEKLoverforsel
2563          if CheckUrl(UrlSendPrograminfo) then      if PanelValg1.Enabled = true then
2564          begin      begin
2565            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;        TjekkerEnkeltUrl('UrlEKLoverforsel', UrlEKLoverforsel, urlFejl);
2566            SkrivScanningLogFil(logTekst);      end;
         end  
         else  
         begin  
             inc(urlFejl);   // Optæller antal fejl  
             logTekst := 'UrlSendPrograminfo svarer ikke: ' + UrlSendPrograminfo;  
             ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
             if TjekUrls = '1' then  
             begin  
               logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';  
             end;  
             SkrivScanningLogFil(logTekst);  
             if TjekUrls = '1' then  
             begin  
               ShowMessage(logTekst);  
               UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
               Application.Terminate;  
               exit;  
             end;  
         end;  
2567    
         if urlFejl > 0 then  
         begin  
           TjekUrls := '-';   // markerer at der var fejl  
         end  
         else  
         begin  
           logTekst := 'urls er ok';  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
2568    
2569        // Tjekker UrlEKLoverforselPakkeshop
2570        if PanelValg5.Enabled = true then
2571        begin
2572          TjekkerEnkeltUrl('UrlEKLoverforselPakkeshop', UrlEKLoverforselPakkeshop, urlFejl);
2573        end;
2574    
2575    
2576        // Tjekker UrlFindPakketype
2577        TjekkerEnkeltUrl('UrlFindPakketype', UrlFindPakketype, urlFejl);
2578    
2579        // Tjekker UrlSendPrograminfo
2580        TjekkerEnkeltUrl('UrlSendPrograminfo', UrlSendPrograminfo, urlFejl);
2581    
2582    
2583    
2584        logTekst := 'urls er ok';
2585        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2586        SkrivScanningLogFil(logTekst);
2587    
2588      Except
2589        TjekUrls := '-';   // markerer at der var fejl
2590    
2591      end;
2592  end;  end;
2593    
2594  function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  procedure TMainForm.TjekkerEnkeltUrl(UrlNavn: String; Url: String; var urlFejl: integer);
2595  var  const
2596     LocalFileTime: TFileTime;    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
    SystemTime: TSystemTime;  
2597  begin  begin
2598     FileTimeToLocalFileTime(FileTime, LocalFileTime) ;    if TUtils.CheckUrl(Url) then
2599     FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
2600     Result := SystemTimeToDateTime(SystemTime) ;    begin
2601        logTekst := UrlNavn + ' accepteret: ' + Url;
2602        SkrivScanningLogFil(logTekst);
2603      end
2604      else
2605      begin
2606        inc(urlFejl);   // Optæller antal fejl
2607        logTekst := UrlNavn + ' svarer ikke: ' + Url;
2608        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2609        if TjekUrls = '1' then
2610        begin
2611          logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2612        end;
2613    
2614        SkrivScanningLogFil(logTekst);
2615    
2616        if TjekUrls = '1' then
2617        begin
2618          ShowMessage(logTekst);
2619          UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2620          Application.Terminate;
2621    
2622          raise Exception.Create('UrlFejl');
2623    
2624        end;
2625      end;
2626    
2627  end;  end;
2628    
2629    
2630    
2631  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
2632  var  var
2633    SR: TSearchRec;    SR: TSearchRec;
# Line 3342  begin Line 2644  begin
2644      repeat      repeat
2645        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
2646        begin        begin
2647    
2648          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
2649          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
2650          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
2651          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
2652          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
2653          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)          // (ændring den kan ligge både før og efter oprettelse, hvis filerne er flyttet eller ændret manuelt)
# Line 3381  begin Line 2684  begin
2684    end;    end;
2685  end;  end;
2686    
2687  procedure TMainForm.PakkeshopNulstilClick(Sender: TObject);  procedure TMainForm.btnNulstilClick(Sender: TObject);
2688  begin  begin
2689    PakkeshopStregkode := '';    PakkeshopStregkode := '';
2690    PakkeshopTjekkode := '';    PakkeshopTjekkode := '';
2691    PakkeshopNulstil.Visible := false;    btnNulstil.Visible := false;
2692    PakkeshopText1.Caption := 'Stregkode';    PakkeshopText1.Caption := 'Stregkode';
2693    BoghandlerStregkode := '';    BoghandlerStregkode := '';
2694    BoghandlerTjekkode := '';    BoghandlerTjekkode := '';
# Line 3403  begin Line 2706  begin
2706  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
2707    if Farve <> '' then    if Farve <> '' then
2708    begin    begin
2709       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
 // 20150312: start  
 (*  
   end  
   else  
   begin  
      ShowMessage('Programmet afbrydes...');  
      UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut  
      Application.Terminate;  
 *)  
 // 20150312: slut  
2710    end;    end;
2711    if (Budlevering1.Checked) then    if (Budlevering1.Checked) then
2712    begin    begin
# Line 3477  end; Line 2770  end;
2770    
2771  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
2772  begin  begin
 // 20150311: start  
 (*  
   if PanelValgA.Color = clBtnFace then  
   begin  
      AutomatiskValg1.Checked := true;  
      PanelValgA.Color := clGreen;  
      PanelValgA.Font.Color := clWhite;  
   end  
   else  
   begin  
      AutomatiskValg1.Checked := false;  
      PanelValgA.Color := clBtnFace;  
      PanelValgA.Font.Color := clWindowText;  
   end;  
 *)  
2773  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
2774  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
2775       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
2776       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
2777       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
2778  // 20150311: slut  
2779    
2780    
2781  end;  end;
2782    
2783  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3514  var Line 2794  var
2794    BoghandlerNavn : String;    BoghandlerNavn : String;
2795    Koreliste : String;    Koreliste : String;
2796    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2797    SmsKode : String;    SmsKode : String;
2798    DBKbane : String;    DBKbane : String;
2799    Leveringssted : String;    Leveringssted : String;
# Line 3536  begin Line 2815  begin
2815      // Her kommer en alarm og rød skærm      // Her kommer en alarm og rød skærm
2816      PlaySound(PWideChar(AlarmLyd));      PlaySound(PWideChar(AlarmLyd));
2817      MainForm.Color := clRed;      MainForm.Color := clRed;
2818      PakkeshopNulstil.Visible := true;      btnNulstil.Visible := true;
2819    end    end
2820    else    else
2821    begin    begin
2822      Falsk := False;      Falsk := False;
2823      Sand := True;  
2824      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');      HentPakkeInfoFraServer(Sted,'111111111100000', RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk, '');
2825      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');      UpdateScreen(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, '');
2826      SmsKode := '999999';      SmsKode := '999999';
# Line 3561  var Line 2840  var
2840    BoghandlerNavn : String;    BoghandlerNavn : String;
2841    Koreliste : String;    Koreliste : String;
2842    Falsk : Boolean;    Falsk : Boolean;
   Sand : Boolean;  
2843    SmsKode : String;    SmsKode : String;
2844    DBKbane : String;    DBKbane : String;
2845    Leveringssted : String;    Leveringssted : String;
# Line 3570  begin Line 2848  begin
2848    Kommentar := '***** Kommentar *****';    Kommentar := '***** Kommentar *****';
2849    BoghandlerNavn := 'Modtagernavn';    BoghandlerNavn := 'Modtagernavn';
2850    Falsk := False;    Falsk := False;
   Sand := True;  
2851    
2852    if (Printer.Printers.Count = 0) then  
2853      if (LabelPrint.GetPrinterCount() = 0) then
2854    begin    begin
2855      ShowMessage('Der er ikke installeret en printer på denne PC.');      ShowMessage('Der er ikke installeret en printer på denne PC.');
2856    end    end
# Line 3587  begin Line 2865  begin
2865      DBKbane := '999';      DBKbane := '999';
2866      Leveringssted := 'XXX';      Leveringssted := 'XXX';
2867      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);      PrintLabel(RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted, Falsk);
2868      CheckPrintQue('Test');      LabelPrint.CheckPrintQue('Test', PrinterNavn);
2869    end;    end;
2870    FocusControl(StregkodeST);    FocusControl(StregkodeST);
2871  end;  end;
# Line 3596  procedure TMainForm.Timer1Timer(Sender: Line 2874  procedure TMainForm.Timer1Timer(Sender:
2874  begin  begin
2875    if (TjekPrinter = '1') then    if (TjekPrinter = '1') then
2876    begin    begin
2877      CheckPrintQue('Timer');      LabelPrint.CheckPrintQue('Timer', PrinterNavn);
2878    end    end
2879    else    else
2880    begin    begin
# Line 3605  begin Line 2883  begin
2883    end;    end;
2884  end;  end;
2885    
2886  {  
  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;  
2887    
2888  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
2889  const  const
# Line 3643  var Line 2892  var
2892   tekst, filversion : String;   tekst, filversion : String;
2893  begin  begin
2894    
2895    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
2896    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';
2897    
2898    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3665  begin Line 2914  begin
2914          end          end
2915          else          else
2916          begin          begin
2917            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
2918          end;          end;
2919      end      end
2920      else      else
2921      begin      begin
2922        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
2923      end;      end;
2924    end;    end;
2925    
# Line 3738  begin Line 2987  begin
2987    
2988    if FileExists(fileName) then    if FileExists(fileName) then
2989    begin    begin
2990      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
2991      begin      begin
2992        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
2993        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3762  begin Line 3011  begin
3011    
3012    if FileExists(fileName) then    if FileExists(fileName) then
3013    begin    begin
3014      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3015      begin      begin
3016        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3017        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3018      end      end
3019      else      else
3020      begin      begin
3021        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3022      end;      end;
3023    end    end
3024    else    else
# Line 3778  begin Line 3027  begin
3027    end;    end;
3028  end;  end;
3029    
3030    procedure TMainForm.menuIndleveringClick(Sender: TObject);
3031    begin
3032      Scanningtype := '7';
3033      NulstilAutomatiskValg();
3034      InitIndleveringskode();
3035    end;
3036    
3037  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);  procedure TMainForm.Sprgefterboghandlernummer1Click(Sender: TObject);
3038  begin  begin
3039    
3040    if Sprgefterboghandlernummer1.Checked then    if Sprgefterboghandlernummer1.Checked then
3041    begin    begin
3042       CheckBox1.Checked := true;       chkSporgEfterKunde.Checked := true;
3043    end    end
3044    else    else
3045    begin    begin
3046       CheckBox1.Checked := false;       chkSporgEfterKunde.Checked := false;
3047    end;    end;
3048    
3049    
# Line 3810  end; Line 3066  end;
3066  procedure TMainForm.InitNatxpresslevering();  procedure TMainForm.InitNatxpresslevering();
3067  begin  begin
3068        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3069        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3070        Pakkernormal1.Checked := true;        Pakkernormal1.Checked := true;
3071        InitForm(FarveNormal,TitelNormal,UrlNormal);        InitForm(FarveNormal,TitelNormal,UrlNormal);
3072        PanelValg1.Color := clGreen;        PanelValg1.Color := clGreen;
3073        PanelValg1.Font.Color := clWhite;        PanelValg1.Font.Color := clWhite;
3074        CheckBox1.Enabled := true;  
3075        CheckBox2.Enabled := true;        chkAltidPrintLabel.Enabled := true;
3076        Altidprintepakkelabel1.Enabled := true;        Altidprintepakkelabel1.Enabled := true;
3077        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3078        CheckBox2.Checked := false;        chkAltidPrintLabel.Checked := false;
3079        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3080        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3081        Sprgefterboghandlernummer1.Enabled := true;        Sprgefterboghandlernummer1.Enabled := true;
3082        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3083        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3084        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3085        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3086        ListBox1.Visible := true;        ListBox1.Visible := true;
3087        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3088        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3089        InitLillePakke();        InitLillePakke();
3090        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3091    
3092          chkForstorTilDirekte.Checked := false;
3093          chkForstorTilDirekte.Enabled := false;
3094    
3095        if BladhusSted = 0 then        if BladhusSted = 0 then
3096        begin        begin
3097          IndlesScanningLogFil();          IndlesScanningLogFil();
# Line 3843  procedure TMainForm.InitReturFraDao(); Line 3103  procedure TMainForm.InitReturFraDao();
3103  begin  begin
3104        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3105        ReturpakkerfraDAO1.Checked := true;        ReturpakkerfraDAO1.Checked := true;
3106        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3107        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);        InitForm(FarveReturDAO,TitelReturDAO,UrlReturDAO);
3108        PanelValg2.Color := clGreen;        PanelValg2.Color := clGreen;
3109        PanelValg2.Font.Color := clWhite;        PanelValg2.Font.Color := clWhite;
3110        CheckBox1.Enabled := false;  
3111        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3112        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3113        CheckBox2.Checked := false;  
3114        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3115        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3116        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3117        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3118        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3119        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3120        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3121        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3122        ListBox1.Visible := true;        ListBox1.Visible := true;
3123        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3124        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3125        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3126    
3127          chkForstorTilDirekte.Checked := false;
3128          chkForstorTilDirekte.Enabled := false;
3129    
3130        InitLillePakke();        InitLillePakke();
3131  end;  end;
3132    
# Line 3870  procedure TMainForm.InitReturFraKunde(); Line 3134  procedure TMainForm.InitReturFraKunde();
3134  begin  begin
3135        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3136        Returpakkerfraboghandler1.Checked := true;        Returpakkerfraboghandler1.Checked := true;
3137        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3138        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);        InitForm(FarveReturBoghandler,TitelReturBoghandler,UrlReturBoghandler);
3139        PanelValg3.Color := clGreen;        PanelValg3.Color := clGreen;
3140        PanelValg3.Font.Color := clWhite;        PanelValg3.Font.Color := clWhite;
3141        CheckBox1.Enabled := false;  
3142        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3143        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
       CheckBox2.Checked := false;  
3144        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3145        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3146        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3147        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3148        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3149        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3150        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3151        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3152        ListBox1.Visible := true;        ListBox1.Visible := true;
3153        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3154        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3155        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3156    
3157          chkForstorTilDirekte.Checked := false;
3158          chkForstorTilDirekte.Enabled := false;
3159    
3160        InitLillePakke();        InitLillePakke();
3161  end;  end;
3162    
# Line 3897  procedure TMainForm.InitDirektelevering( Line 3164  procedure TMainForm.InitDirektelevering(
3164  begin  begin
3165        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3166        Budlevering1.Checked := true;        Budlevering1.Checked := true;
3167        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3168        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);        InitForm(FarveBudlevering,TitelBudlevering,UrlBudlevering);
3169        PanelValg4.Color := clGreen;        PanelValg4.Color := clGreen;
3170        PanelValg4.Font.Color := clWhite;        PanelValg4.Font.Color := clWhite;
3171        CheckBox1.Enabled := false;  
3172        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3173        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3174        CheckBox2.Checked := false;  
3175        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3176        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3177        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3178        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3179        Smpakker1.Enabled := true;        Smpakker1.Enabled := true;
3180        Storepakker1.Enabled := true;        Storepakker1.Enabled := true;
3181        RadioButton1.Enabled := true;        radioStorPakke.Enabled := true;
3182        RadioButton2.Enabled := true;        radioLillePakke.Enabled := true;
3183        ListBox1.Visible := true;        ListBox1.Visible := true;
3184        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3185        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3186        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3187        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3188        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3189        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3190        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3191    
3192          chkForstorTilDirekte.Checked := false;
3193          chkForstorTilDirekte.Enabled := true;
3194    
3195        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
3196        begin        begin
3197            IndlesScanningLogFil();            IndlesScanningLogFil();
# Line 3933  procedure TMainForm.InitPakkeshopleverin Line 3204  procedure TMainForm.InitPakkeshopleverin
3204  begin  begin
3205        AutomatiskTjekkodeStyring1.Enabled := true;        AutomatiskTjekkodeStyring1.Enabled := true;
3206        Pakkeshoplevering1.Checked := true;        Pakkeshoplevering1.Checked := true;
3207        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3208        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);        InitForm(FarvePakkeshoplevering,TitelPakkeshoplevering,UrlPakkeshoplevering);
3209        PanelValg5.Color := clGreen;        PanelValg5.Color := clGreen;
3210        PanelValg5.Font.Color := clWhite;        PanelValg5.Font.Color := clWhite;
3211        CheckBox1.Enabled := false;  
3212        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3213        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3214        CheckBox2.Checked := false;  
3215        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3216        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3217        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3218        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3219        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3220        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3221        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3222        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3223        ListBox1.Visible := true;        ListBox1.Visible := true;
3224        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3225        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3226        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3227  // 20150330: start  
3228  //      EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := true;
3229        EKLoverforsel.Enabled := true;  
3230  // 20150330: slut        chkForstorTilDirekte.Checked := false;
3231          chkForstorTilDirekte.Enabled := true;
3232    
3233        InitLillePakke();        InitLillePakke();
3234        IndlesScanningLogFil();        IndlesScanningLogFil();
3235        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3971  procedure TMainForm.InitReturFraPakkesho Line 3244  procedure TMainForm.InitReturFraPakkesho
3244  begin  begin
3245        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3246        Returpakkerfrapakkeshop1.Checked := true;        Returpakkerfrapakkeshop1.Checked := true;
3247        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3248        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);
3249        PanelValg6.Color := clGreen;        PanelValg6.Color := clGreen;
3250        PanelValg6.Font.Color := clWhite;        PanelValg6.Font.Color := clWhite;
3251        CheckBox1.Enabled := false;  
3252        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3253        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3254        CheckBox2.Checked := false;  
3255        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3256        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
3257        CheckBox1.Checked := false;        chkSporgEfterKunde.Checked := false;
3258        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3259        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3260        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3261        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3262        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3263        ListBox1.Visible := true;        ListBox1.Visible := true;
3264        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3265        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3266        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3267        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3268    
3269          chkForstorTilDirekte.Checked := false;
3270          chkForstorTilDirekte.Enabled := false;
3271    
3272    
3273        InitLillePakke();        InitLillePakke();
3274        IndlesScanningLogFil();        IndlesScanningLogFil();
3275        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4011  end; Line 3289  end;
3289    
3290  procedure TMainForm.InitIndleveringskode();  procedure TMainForm.InitIndleveringskode();
3291  begin  begin
3292          menuIndlevering.Checked := true;
3293        AutomatiskTjekkodeStyring1.Enabled := false;        AutomatiskTjekkodeStyring1.Enabled := false;
3294        Returpakkerfrapakkeshop1.Checked := true;  
3295        PakkeshopNulstil.Visible := false;        btnNulstil.Visible := false;
3296        InitForm(FarveReturPakkeshop,TitelReturPakkeshop,UrlReturPakkeshop);        InitForm(FarveIndlevering, TitelIndlevering, UrlReturPakkeshop);
3297        PanelValg7.Color := clGreen;        PanelValg7.Color := clGreen;
3298        PanelValg7.Font.Color := clWhite;        PanelValg7.Font.Color := clWhite;
3299        CheckBox1.Enabled := false;  
3300        CheckBox2.Enabled := false;        chkAltidPrintLabel.Enabled := false;
3301        Altidprintepakkelabel1.Enabled := false;        Altidprintepakkelabel1.Enabled := false;
3302        CheckBox2.Checked := false;  
3303        Altidprintepakkelabel1.Checked := false;        Altidprintepakkelabel1.Checked := false;
3304        Sprgefterboghandlernummer1.Checked := false;        Sprgefterboghandlernummer1.Checked := false;
       CheckBox1.Checked := false;  
3305        Sprgefterboghandlernummer1.Enabled := false;        Sprgefterboghandlernummer1.Enabled := false;
3306          chkSporgEfterKunde.Checked := false;
3307    
3308    
3309    
3310        Smpakker1.Enabled := false;        Smpakker1.Enabled := false;
3311        Storepakker1.Enabled := false;        Storepakker1.Enabled := false;
3312        RadioButton1.Enabled := false;        radioStorPakke.Enabled := false;
3313        RadioButton2.Enabled := false;        radioLillePakke.Enabled := false;
3314        ListBox1.Visible := true;        ListBox1.Visible := true;
3315        ListBox1.Items.Clear;        ListBox1.Items.Clear();
3316        DownloadButton01.Enabled := false;  
3317        OpdaterListenButton01.Enabled := true;        BtnDownloadKontrolfil.Enabled := false;
3318        EKLoverforsel.Enabled := false;        BtnOpdaterListen.Enabled := true;
3319          BtnEKLoverforsel.Enabled := false;
3320    
3321          chkForstorTilDirekte.Checked := false;
3322          chkForstorTilDirekte.Enabled := false;
3323    
3324    
3325        InitLillePakke();        InitLillePakke();
3326        IndlesScanningLogFil();        IndlesScanningLogFil();
3327        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 4057  end; Line 3345  end;
3345    
3346  procedure TMainForm.InitLillePakke();  procedure TMainForm.InitLillePakke();
3347  begin  begin
3348    RadioButton2.Checked := true;    radioLillePakke.Checked := true;
3349    Smpakker1.Checked := true;    Smpakker1.Checked := true;
 // 20150310: start  
3350  //  Stregkode := '';  //  Stregkode := '';
 // 20150310: slut  
3351  end;  end;
3352    
3353  procedure TMainForm.InitStorPakke();  procedure TMainForm.InitStorPakke();
3354  begin  begin
3355    RadioButton1.Checked := true;    radioStorPakke.Checked := true;
3356    Storepakker1.Checked := true;    Storepakker1.Checked := true;
3357  // 20150310: start  // 20150310: start
3358  //  Stregkode := '';  //  Stregkode := '';
3359  // 20150310: slut  // 20150310: slut
3360  end;  end;
3361    
 /// <summary>  
 ///   This function reads the file resource of "FileName" and returns  
 ///   the version number as formatted text.</summary>  
 /// <example>  
 ///   Sto_GetFmtFileVersion() = '4.13.128.0'  
 ///   Sto_GetFmtFileVersion('', '%.2d-%.2d-%.2d') = '04-13-128'  
 /// </example>  
 /// <remarks>If "Fmt" is invalid, the function may raise an  
 ///   EConvertError exception.</remarks>  
 /// <param name="FileName">Full path to exe or dll. If an empty  
 ///   string is passed, the function uses the filename of the  
 ///   running exe or dll.</param>  
 /// <param name="Fmt">Format string, you can use at most four integer  
 ///   values.</param>  
 /// <returns>Formatted version number of file, '' if no version  
 ///   resource found.</returns>  
 function TMainForm.Sto_GetFmtFileVersion(const FileName: String = '';  
   const Fmt: String = '%d.%d.%d.%d'): String;  
 var  
   sFileName: String;  
   iBufferSize: DWORD;  
   iDummy: DWORD;  
   pBuffer: Pointer;  
   pFileInfo: Pointer;  
   iVer: array[1..4] of Word;  
   S : String;  
 begin  
   // set default value  
   Result := '';  
   // get filename of exe/dll if no filename is specified  
   sFileName := Trim(FileName);  
   if (sFileName = '') then  
     sFileName := GetModuleName(HInstance);  
   // get size of version info (0 if no version info exists)  
   iBufferSize := GetFileVersionInfoSize(PChar(sFileName), iDummy);  
   if (iBufferSize > 0) then  
   begin  
     GetMem(pBuffer, iBufferSize);  
     try  
     // get fixed file info (language independent)  
     GetFileVersionInfo(PChar(sFileName), 0, iBufferSize, pBuffer);  
     VerQueryValue(pBuffer, '\', pFileInfo, iDummy);  
     // read version blocks  
     iVer[1] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[2] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionMS);  
     iVer[3] := HiWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     iVer[4] := LoWord(PVSFixedFileInfo(pFileInfo)^.dwFileVersionLS);  
     finally  
       FreeMem(pBuffer);  
     end;  
     // format result string  
     Result := Format(Fmt, [iVer[1], iVer[2], iVer[3], iVer[4]]);  
3362    
     // Hvorfor virker ovenstående ikke ???  
     S := '';  
     Str(iVer[1],Result);  
     S := S+Result+'.';  
     Str(iVer[2],Result);  
     S := S+Result+'.';  
     Str(iVer[3],Result);  
     S := S+Result+'.';  
     Str(iVer[4],Result);  
     S := S+Result+'';  
     Result := S;  
   end;  
 end;  
3363    
3364  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3365  begin  begin
# Line 4163  end; Line 3384  end;
3384    
3385  procedure TMainForm.Testlyd2Click(Sender: TObject);  procedure TMainForm.Testlyd2Click(Sender: TObject);
3386  begin  begin
 // 20150317: start  
3387    if (PakkeshopText1.Caption = 'Tjekkode') then    if (PakkeshopText1.Caption = 'Tjekkode') then
3388    begin    begin
3389       if ScannetOkTilTjekkodeLyd  <> '' then       if ScannetOkTilTjekkodeLyd  <> '' then
# Line 4176  begin Line 3396  begin
3396       end;       end;
3397       exit;       exit;
3398    end;    end;
 // 20150317: slut  
3399    
3400    if Smpakker1.Checked then    if Smpakker1.Checked then
3401       if ScannetOkLyd  <> '' then       if ScannetOkLyd  <> '' then
# Line 4185  begin Line 3404  begin
3404       end       end
3405       else       else
3406       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet)'), 'Information', MB_OK);  
3407         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3408       end;       end;
3409    if Storepakker1.Checked then    if Storepakker1.Checked then
3410       if ScannetOkStorLyd  <> '' then       if ScannetOkStorLyd  <> '' then
# Line 4197  begin Line 3413  begin
3413       end       end
3414       else       else
3415       begin       begin
 // 20150317: start  
 //       MessageBox(Handle, PWideChar('Lyd fil ikke fundet (scannet stor)'), 'Information', MB_OK);  
3416         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);         MessageBox(Handle, PWideChar('Lyd fil ikke fundet (ScannetOkStorLyd)'), 'Information', MB_OK);
 // 20150317: slut  
3417       end;       end;
3418  end;  end;
3419    
# Line 4217  begin; Line 3430  begin;
3430    CheckCode();    CheckCode();
3431  end;  end;
3432    
3433  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3434  var  var
3435    WebSvar : String;    WebSvar : String;
3436    URLStr : String;    URLStr : String;
# Line 4227  var Line 3440  var
3440    status, kommentar : String;    status, kommentar : String;
3441    
3442  begin  begin
3443      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3444    
3445      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Overfører de scannede pakker til EKL');
3446      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
3447      SkrivScanningLogFil(logTekst);      SkrivScanningLogFil(logTekst);
3448      StedKode := Sted;      StedKode := Sted;
3449      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);      URLStr := Format(UrlEKLoverforsel,[StedKode,Sted]);
3450  // 20150330: start  
3451      if PanelValg5.Color = clGreen then      if PanelValg5.Color = clGreen then
3452      begin      begin
3453        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);        URLStr := Format(UrlEKLoverforselPakkeshop,[StedKode,Sted]);
3454      end;      end;
3455  // 20150330: slut  
3456    
3457      try      try
3458      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST      //raise EIdConnClosedGracefully.Create('test');   // KUN TIL TEST
# Line 4290  begin Line 3503  begin
3503        end;        end;
3504      end;      end;
3505    
3506      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3507    
3508      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode      ListBox1.SetFocus;  // for at flytte fokus væk fra knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
3509    
# Line 4307  begin Line 3520  begin
3520           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';           BoghandlerNavnST.Caption := 'Prøv venligst igen om lidt...';
3521         end;         end;
3522         KommentarST.Caption := Kommentar;         KommentarST.Caption := Kommentar;
3523         PakkeshopNulstil.Visible := true;         btnNulstil.Visible := true;
3524      end;      end;
3525    
3526  end;  end;
# Line 4331  begin Line 3544  begin
3544    else    else
3545      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3546  }  }
3547    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3548    
3549    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3550    CheckCode();    CheckCode();
# Line 4339  end; Line 3552  end;
3552    
3553  end;  end;
3554    
 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;  
3555    
3556  //  //
3557  // Bladhus ***  // Bladhus ***
# Line 4855  begin Line 4029  begin
4029    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode    ListBox1.SetFocus;  // for at flytte fokus væk fra upload knappen så denne ikke aktiveres ved scanning / indtastning af stregkode
4030  end;  end;
4031    
4032  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4033  begin  begin
4034      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4035      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
4036  end;  end;
4037    
4038  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4039  const  const
4040    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4041    
# Line 4870  begin Line 4044  begin
4044      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
4045  end;  end;
4046    
4047  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4048  begin  begin
4049      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4050      begin      begin
# Line 4879  begin Line 4053  begin
4053      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
4054  end;  end;
4055    
4056  function TMainForm.Explode(var a: TStrArray; Border, S: string): Integer;  
 var  
   S2: string;  
 begin  
   Result  := 0;  
   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 = '';  
 end;  
4057    
4058  procedure TMainForm.IndlesManglendeScanninger();  procedure TMainForm.IndlesManglendeScanninger();
4059  var  var
# Line 4903  var Line 4065  var
4065    stregkode, modtagernavn, modtageradresse, kommentar : string;    stregkode, modtagernavn, modtageradresse, kommentar : string;
4066    pakketype, tjekkodestatus : String;    pakketype, tjekkodestatus : String;
4067    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;    pakketypeix, antalLiniefelter, antalFelterFundet, linienr : Integer;
4068    pakketyper : TStrings;    //pakketyper : TStrings;
4069      pakketyper : TDictionary<String, Integer>;
4070      tmpAntal : Integer;
4071    
4072    
4073    
4074    antlin : Integer;    antlin : Integer;
4075  // 20150306: start  
4076    antlinIdag, antlinSenere : Integer;    antlinIdag, antlinSenere : Integer;
4077  // 20150306: slut  
4078    XmlFelter : TStrings;    //XmlFelter : TStrings;
4079      XmlFelter : TDictionary<String, Integer>;
4080    
4081   begin   begin
4082      XmlFelter := TStringList.Create;  
4083      pakketyper := TStringList.Create;  
4084        XmlFelter := TDictionary<String, Integer>.Create;
4085        pakketyper := TDictionary<String, Integer>.Create;
4086    
4087      linienr := 0;      linienr := 0;
4088      ListBox2.Clear;      ListBox2.Clear;
4089      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');      ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + 'Henter oversigt over pakker der endnu ikke er modtaget');
# Line 4927  var Line 4098  var
4098          StedKode := Sted;          StedKode := Sted;
4099        end;        end;
4100    
4101  // 20150310: start        Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4102  (*  
4103      if Returpakkerfrapakkeshop1.Checked then  
4104       begin  
4105        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);      if (Scanningtype = '7') then
      end  
     else if Pakkeshoplevering1.Checked then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);  
      end  
     else if Pakkernormal1.Checked then  
4106       begin       begin
4107        URLStr := Format(UrlManglendeScanninger,[StedKode,'B2']);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4108       end       end
4109      else      else if (Scanningtype = '6') then
4110       begin       begin
4111        URLStr := Format(UrlManglendeScanninger,[StedKode,'A2']);    // Budleveringer        URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
      end;  
 *)  
     if (Scanningtype = '6') then  
      begin  
       URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);  
4112       end       end
4113      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4114       begin       begin
4115        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4116       end       end
4117      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4118       begin       begin
# Line 4989  var Line 4149  var
4149      try      try
4150        XMLDocument1.LoadFromXML(WebSvar);        XMLDocument1.LoadFromXML(WebSvar);
4151    
4152  // 20150206: start  
4153        antlin := 0;        antlin := 0;
4154        antlinIdag := 0;        antlinIdag := 0;
4155        antlinSenere := 0;        antlinSenere := 0;
4156  // 20150306: slut  
       antalFelterFundet := 0;  
4157        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4158            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
4159            if Node.NodeType = ntElement then begin            if Node.NodeType = ntElement then begin
4160              if Node.NodeName = 'Stregkode' then              if Node.NodeName = 'Stregkode' then
4161              begin              begin
4162                 antlin := antlin + 1;                 Inc(antlin);
4163                 // 20150306: start                 // 20150306: start
4164                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4165                begin                begin
4166                   if (pos('(', Node.NodeValue) = 0) then                   if (pos('(', Node.NodeValue) = 0) then
4167                   begin                   begin
4168                     antlinIdag := antlinIdag + 1;                     Inc(antlinIdag);
4169                   end                   end
4170                   else                   else
4171                   begin                   begin
4172                     antlinSenere := antlinSenere + 1;                     Inc(antlinSenere);
4173                   end;                   end;
4174                end;                end;
4175                 // 20150306: slut                 // 20150306: slut
4176              end;              end;
4177            end;            end;
4178            if (XmlFelter.values[Node.NodeName] <> '') then            if ( XmlFelter.ContainsKey(Node.NodeName) ) then
4179                  XmlFelter.values[Node.NodeName] := IntToStr(StrToInt(XmlFelter.values[Node.NodeName]) + 1)                begin
4180                    XmlFelter.TryGetValue(Node.NodeName, tmpAntal);
4181                    XmlFelter.AddOrSetValue(Node.NodeName, tmpAntal + 1);
4182                  end
4183                else                else
4184                  XmlFelter.values[Node.NodeName] := '1';                begin
4185                    XmlFelter.Add(Node.NodeName, 1);
4186                  end;
4187    
4188        end;        end;
4189        antalLiniefelter := XmlFelter.Count;        antalLiniefelter := XmlFelter.Count;
4190        antalFelterFundet := 0;        antalFelterFundet := 0;
4191        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug        SetLength(stregkoderMedTjekkodeArray, 0);    // reset fra tidligere brug
4192        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array        SetLength(stregkoderMedTjekkodeArray, antlin);  // sæt antal elementer i array
4193  // 20150206: start  
4194  //      logTekst := 'Der er '+IntToStr(antlin)+' pakker, der endnu ikke er modtaget.';  
4195          Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4196    
4197        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4198        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4199        begin        begin
4200          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';          logTekst := logTekst + ' (' + IntToStr(antlinIdag) + ' til i dag og ' + IntToStr(antlinSenere) + ' til senere)';
4201        end;        end;
4202        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4203  // 20150306: slut  
4204        SkrivScanningLogFil(logTekst);        SkrivScanningLogFil(logTekst);
4205        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin        for I:= 0 to XMLDocument1.DocumentElement.ChildNodes.Count - 1 do begin
4206            Node:= XMLDocument1.DocumentElement.ChildNodes[I];            Node:= XMLDocument1.DocumentElement.ChildNodes[I];
# Line 5063  var Line 4229  var
4229                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
4230                  pakketype := Node.NodeValue;                  pakketype := Node.NodeValue;
4231                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4232                if (pakketyper.values[pakketype] <> '') then                if ( pakketyper.ContainsKey(pakketype) ) then
4233                  pakketyper.values[pakketype] := IntToStr(StrToInt(pakketyper.values[pakketype]) + 1)                begin
4234                    pakketyper.TryGetValue(pakketype, tmpAntal);
4235                    pakketyper.AddOrSetValue(pakketype, tmpAntal + 1);
4236                  end
4237                else                else
4238                  pakketyper.values[pakketype] := '1';                  pakketyper.Add(pakketype, 1);
4239              end;              end;
4240              if Node.NodeName = 'TjekkodeStatus' then begin              if Node.NodeName = 'TjekkodeStatus' then begin
4241                if not VarIsNull(Node.NodeValue) then                if not VarIsNull(Node.NodeValue) then
# Line 5074  var Line 4243  var
4243                  antalFelterFundet := antalFelterFundet + 1;                  antalFelterFundet := antalFelterFundet + 1;
4244                  if (tjekkodestatus = '-1') then                  if (tjekkodestatus = '-1') then
4245                  begin                  begin
4246  // 20150306: start  
 //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  
4247                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4248                    begin                    begin
4249                      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
4250                    end                    end
4251                    else                    else
4252                    begin                    begin
4253                      stregkoderMedTjekkodeArray[linienr] := stregkode;                      stregkoderMedTjekkodeArray[linienr] := stregkode;
4254                    end;                    end;
4255  // 20150306: slut                    linienr := linienr + 1;
                     linienr := linienr + 1;  
4256                  end;                  end;
4257              end;              end;
4258              if antalFelterFundet = antalLiniefelter then              if antalFelterFundet = antalLiniefelter then
# Line 5103  var Line 4270  var
4270              end;              end;
4271            end;            end;
4272        end;        end;
       for pakketypeix := 0 to pakketyper.Count-1 do  
         begin  
           ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + ' '+pakketyper[pakketypeix]+' pakke(r) ikke modtaget');  
         end;  
4273    
4274          // Free up the list object        Application.Processmessages; //Ugly Hack to improve User Experience when switching modes
4275    
4276    
4277          for pakketype in pakketyper.Keys do
4278          begin
4279            pakketyper.TryGetValue(pakketype, tmpAntal);
4280            ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + pakketype + ' ' + IntToStr(tmpAntal) + ' pakke(r) ikke modtaget');
4281          end;
4282    
4283            // Free up the dictionary object
4284        pakketyper.Free;        pakketyper.Free;
4285  // 20150306: start  
4286    
4287    
4288  //      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.');
4289        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';        logTekst := 'Der er ' + IntToStr(antlin) + ' pakker, der endnu ikke er modtaget';
4290        if (antlinSenere > 0) then        if (antlinSenere > 0) then
# Line 5119  var Line 4293  var
4293        end;        end;
4294        logTekst := logTekst + '.';        logTekst := logTekst + '.';
4295        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);        ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
 // 20150306: slut  
 // 20150309: start  
4296        if (antlinSenere > 0) then        if (antlinSenere > 0) then
4297        begin        begin
4298          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag) + '/' + IntToStr(antlinSenere);
# Line 5129  var Line 4301  var
4301        begin        begin
4302          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);          StaticTextManglendePakker.Caption := IntToStr(antlinIdag);
4303        end;        end;
 // 20150309: slut  
4304    
 // 20150310: start  
4305        if (Scanningtype = '1') then        if (Scanningtype = '1') then
4306        begin        begin
4307          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal          //antlinIdag := 9876;  // til test af boksens udseende ved stort tal
# Line 5210  var Line 4380  var
4380            PanelManglendePakker6.Visible := false;            PanelManglendePakker6.Visible := false;
4381          end;          end;
4382        end;        end;
 // 20150310: slut  
4383    
4384      except on e:exception do      except on e:exception do
4385        begin        begin
# Line 5272  end; Line 4441  end;
4441  procedure TMainForm.SkrivScanningLogFil(var tekst : string);  procedure TMainForm.SkrivScanningLogFil(var tekst : string);
4442  var  var
4443     SomeTxtFile : TextFile;     SomeTxtFile : TextFile;
    buffer : string;  
    S: string;  
4444     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4445     imorgenYmd : string;     imorgenYmd : string;
4446     logFilnavn : string;     logFilnavn : string;
4447      error : Integer;     //error : Integer;
4448    
4449  begin  begin
4450    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5369  begin Line 4536  begin
4536          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4537          S := buffer;          S := buffer;
4538          SetLength(A,0);          SetLength(A,0);
4539          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4540          if (length(A) < 2) then          if (length(A) < 2) then
4541          begin          begin
4542            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4543          end;          end;
4544            if (length(A) > 1) then            if (length(A) > 1) then
4545            begin            begin
# Line 5446  begin Line 4613  begin
4613          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
4614          S := buffer;          S := buffer;
4615          SetLength(A,0);          SetLength(A,0);
4616          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
4617          if (length(A) < 3) then          if (length(A) < 3) then
4618          begin          begin
4619            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
4620          end;          end;
4621          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
4622          begin          begin
# Line 5541  begin Line 4708  begin
4708    result := svar;    result := svar;
4709  end;  end;
4710    
4711    procedure TMainForm.VisAlarmSkaerm(strMessage: string);
4712    begin
4713      //ShowMessage('Ændring ikke tilladt');
4714      // Her skal komme en 'rød skærm' alarm
4715      PlaySound(PWideChar(AlarmLyd));
4716      MainForm.Color := clRed;
4717    
4718    
4719      RuteNummerST.Caption := '';
4720      BoghandlerNavnST.Caption := '';
4721      btnNulstil.Visible := true;
4722    
4723      if (strMessage <> '') then
4724      begin
4725        ListBox1.Items.Insert(0, strMessage);
4726        KommentarST.Caption := strMessage;
4727      end;
4728    
4729    end;
4730    
4731  function TMainForm.getProddato() : TDate;  function TMainForm.getProddato() : TDate;
4732  var  var
4733     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
# Line 5598  begin Line 4785  begin
4785    result := svar;    result := svar;
4786  end;  end;
4787    
 function TMainForm.GetCurrentPrinterHandle: THandle;  
 var  
   Device, Driver, Port: array[0..255] of Char;  
   hDeviceMode: THandle;  
 begin  
   Printer.GetPrinter(Device, Driver, Port, hDeviceMode);  
   if not OpenPrinter(@Device, Result, nil) then  
     RaiseLastWin32Error;  
 end;  
   
 function TMainForm.SavePChar(p: PChar): PChar;  
 const  
   error: PChar = 'Nil';  
 begin  
   if not Assigned(p) then  
     Result := error  
   else  
     Result := p;  
 end;  
4788    
4789  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);  procedure TMainForm.Scanogstjekkoden1Click(Sender: TObject);
4790  begin  begin
4791    if Scanogstjekkoden1.Checked then    if Scanogstjekkoden1.Checked then
4792    begin    begin
4793       CheckBox3.Checked := true;       chkScanTjekkode.Checked := true;
4794    end    end
4795    else    else
4796    begin    begin
4797       CheckBox3.Checked := false;       chkScanTjekkode.Checked := false;
4798    end;    end;
4799  end;  end;
4800    
4801  function TMainForm.AdobeReaderExists: Boolean;  
4802  var  
4803    AReg: TRegistry;  //Nedarvet fra IParentForm
4804    procedure TMainForm.LogMessage( msg : string);
4805  begin  begin
4806    result:= false;    ListBox1.Items.Insert(0, msg);
4807    AReg := TRegistry.Create;    SkrivScanningLogFil(msg);
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
4808  end;  end;
4809    
 procedure TMainForm.CheckPrintQue(tjektype : string);  
 type  
   TJobs  = array [0..1000] of JOB_INFO_1;  
   PJobs = ^TJobs;  
 var  
   hPrinter: THandle;  
   bytesNeeded, numJobs, i: Cardinal;  
   pJ: PJobs;  
   printerTxt, statusTxt, dokumentTxt: String;  
 begin  
4810    
4811  // tjektype = 'Opstart' skal vise alarmlinie, samt opdatere listbox1  //Nedarvet fra IParentForm
4812  //            'Test'  skal vise alarmlinie, samt opdatere listbox1  procedure TMainForm.SetPrinterstatusText( txt: string; alert: boolean);
4813  //            'Timer' skal kun vise alarmlinie  begin
4814    
4815    if (PrinterNavn = 'Ingen') and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then    PrinterstatusStaticText1.Caption := txt;
4816    begin    if (alert) then
     printerTxt := 'Der er fravalgt printer i dette program';  
     ListBox1.Items.Insert(0,printerTxt);  
     SkrivScanningLogFil(printerTxt);  
   end  
   else if (Printer.Printers.Count = 0) and ( (tjektype = 'Opstart') or (tjektype = 'Test') ) then  
4817    begin    begin
4818      printerTxt := 'Der er ikke installeret en printer på denne PC';      PrinterstatusStaticText1.Font.Color := clBlack;
4819      ListBox1.Items.Insert(0,printerTxt);      PrinterstatusStaticText1.Color := MainForm.Color;
4820      SkrivScanningLogFil(printerTxt);      PrinterstatusStaticText1.Transparent := True;
4821    end    end
4822    else    else
4823    begin    begin
4824      hPrinter := GetCurrentPrinterHandle;      PrinterstatusStaticText1.Font.Color := clRed;
4825      try      PrinterstatusStaticText1.Color := clWhite;
4826        EnumJobs(hPrinter, 0, 1000, 1, nil, 0, bytesNeeded, numJobs);      PrinterstatusStaticText1.Transparent := true;
       pJ := AllocMem(bytesNeeded);  
       if not EnumJobs(hPrinter, 0, 1000, 1, pJ, bytesNeeded, bytesNeeded, numJobs) then  
         RaiseLastWin32Error;  
   
       if numJobs = 0 then  
       begin  
         if (tjektype = 'Test') then  
         begin  
           logTekst := printerTxt + ': Ingen dokumenter i kø';  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         PrinterstatusStaticText1.Caption := '';  
         PrinterstatusStaticText1.Color := MainForm.Color;  
       end  
       else   // så er der kø til printeren  
       begin  
         printerTxt := SavePChar(pJ^[0].pPrinterName);  
         if (tjektype = 'Opstart') or (tjektype = 'Test') then  
         begin  
           logTekst := IntToStr(numJobs) + ' dokument(er) i kø til printer: ' + printerTxt;  
           ListBox1.Items.Insert(0,logTekst);  
           SkrivScanningLogFil(logTekst);  
         end;  
         for i := 0 to Pred(numJobs) do  
         begin  
           printerTxt := SavePChar(pJ^[i].pPrinterName);  
           statusTxt := 'Ukendt';  
           if (IntToStr(pJ^[i].Status) = '0') then  
             statusTxt := 'Venter...';  
           if (IntToStr(pJ^[i].Status) = '4096') then  
             statusTxt := 'Printer...';  
           if (IntToStr(pJ^[i].Status) = '8210') then  
             statusTxt := 'Printerfejl';  
           if (IntToStr(pJ^[i].Status) = '8214') then  
             statusTxt := 'Sletter print...';  
   
           dokumentTxt := SavePChar(pJ^[i].pDocument);  
           if (dokumentTxt = '') then  
             dokumentTxt := 'Uden navn';  
   
           if (tjektype = 'Opstart') or (tjektype = 'Test') then  
           begin  
             logTekst := Format('Printer %s, Dokument %d: %s, Status (%d): %s',  
                                     [printerTxt, i+1, dokumentTxt, pJ^[i].Status, statusTxt]);  
             ListBox1.Items.Insert(0,logTekst);  
             SkrivScanningLogFil(logTekst);  
           end;  
   
           if (i = 0) then  
           begin  
             PrinterstatusStaticText1.Caption := printerTxt + ': ' + IntToStr(numJobs) + ' dokument(er) in kø. Dokument status: ' + statusTxt;  
             PrinterstatusStaticText1.Font.Color := clBlack;  
             PrinterstatusStaticText1.Color := MainForm.Color;  
             PrinterstatusStaticText1.Transparent := True;  
             if (numJobs > 3) then  
             begin  
               PrinterstatusStaticText1.Font.Color := clRed;  
               PrinterstatusStaticText1.Color := clWhite;  
               PrinterstatusStaticText1.Transparent := true;  
             end;  
           end;  
   
         end;  
       end  
       finally  
         ClosePrinter(hPrinter);  
     end;  
   end;  
 end;  
   
 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);  
4827    end;    end;
   
4828  end;  end;
4829    
4830  // 20150310: start  //Nedarvet fra IParentForm
4831  procedure TMainForm.RoundCornerOf(Control: TWinControl);  function TMainForm.GetFormObject() : TForm;
 var  
    R: TRect;  
    Rgn: HRGN;  
4832  begin  begin
4833     with Control do    Result := self;
    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;  
4834  end;  end;
 // 20150310: slut  
4835    
4836  end.  end.
4837    

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

  ViewVC Help
Powered by ViewVC 1.1.20