/[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 2668 by torben, Tue Aug 25 16:34:41 2015 UTC revision 2701 by torben, Thu Sep 3 15:22:09 2015 UTC
# Line 8  uses Line 8  uses
8    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,    IdTCPClient, IdHTTP, xmldom, XMLIntf, msxmldom, XMLDoc, IniFiles, AppEvnts,
9    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,    Menus, ExtCtrls, ComCtrls, StrUtils, MMSystem, DateUtils,
10    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,    IdExplicitTLSClientServerBase, IdFTP, pngimage, GIFImg, IdException,
11    Winspool, Registry, ShellApi, ClipBrd, Buttons, wininet,    Winspool, ShellApi, ClipBrd, Buttons, wininet,
12    UITypes,    UITypes,
13    PakkeshopLabels    PakkeshopLabels,
14      StBarC,
15      Math, // DegToRad() bruges i PrintPakkeshopLabel
16      Utils
17    
18    ;    ;
19    
20  type  type
   TStrArray = array of string;  
21    TMainForm = class(TForm)    TMainForm = class(TForm)
22      StregkodeST: TStaticText;      StregkodeST: TStaticText;
23      RuteNummerST: TStaticText;      RuteNummerST: TStaticText;
# Line 50  type Line 52  type
52      Testlyd1: TMenuItem;      Testlyd1: TMenuItem;
53      ListBox1: TListBox;      ListBox1: TListBox;
54      Budlevering1: TMenuItem;      Budlevering1: TMenuItem;
55      DownloadButton01: TButton;      BtnDownloadKontrolfil: TButton;
56      IdFTP1: TIdFTP;      IdFTP1: TIdFTP;
57      Image1: TImage;      Image1: TImage;
58      ListBox2: TListBox;      ListBox2: TListBox;
59      OpdaterListenButton01: TButton;      BtnOpdaterListen: TButton;
60      UploadButton01: TButton;      BtnUploadLogfil: TButton;
61      DownloadButton03: TButton;      BtnDownloadRuteskiftFil: TButton;
62      Pakkeshoplevering1: TMenuItem;      Pakkeshoplevering1: TMenuItem;
63      PakkeshopText1: TStaticText;      PakkeshopText1: TStaticText;
64      btnNulstil: TButton;      btnNulstil: TButton;
65      Returpakkerfrapakkeshop1: TMenuItem;      Returpakkerfrapakkeshop1: TMenuItem;
66      Altidprintepakkelabel1: TMenuItem;      Altidprintepakkelabel1: TMenuItem;
67      chkAltidPrintLabel: TCheckBox;      chkAltidPrintLabel: TCheckBox;
68      EKLoverforsel: TButton;      BtnEKLoverforsel: TButton;
69      N5: TMenuItem;      N5: TMenuItem;
70      Uploadlogfil1: TMenuItem;      Uploadlogfil1: TMenuItem;
71      Manual1: TMenuItem;      Manual1: TMenuItem;
# Line 91  type Line 93  type
93      PanelManglendePakker6: TPanel;      PanelManglendePakker6: TPanel;
94      menuIndlevering: TMenuItem;      menuIndlevering: TMenuItem;
95    
   
   function Explode(var a: TStrArray; Border, S: string): Integer;  
   function BarCodeValid (ACode: string): boolean;  
   function Sto_GetFmtFileVersion(const FileName: String = ''; const Fmt: String = '%d.%d.%d.%d'): String;  
   function TColorToHex(Color : TColor) : string;  
   function HexToTColor(sColor : string) : TColor;  
96    function getProddato() : TDate;    function getProddato() : TDate;
97    function getProddag() : String;    function getProddag() : String;
98    function retRutenummer(rutenummer : String) : String;    function retRutenummer(rutenummer : String) : String;
99    function GetCurrentPrinterHandle() : THandle;    function GetCurrentPrinterHandle() : THandle;
100    function SavePChar(p: PChar): PChar;    function SavePChar(p: PChar): PChar;
   function AdobeReaderExists(): Boolean;  
   function FileTime2DateTime(FileTime: TFileTime): TDateTime;  
   function split(input: string; schar: Char; s: Integer): string;  
   function CheckUrl(url:string):boolean;  
101    
102    procedure PlaySound(filename : PWideChar);    procedure PlaySound(filename : PWideChar);
103    procedure StartScreen();    procedure StartScreen();
# Line 136  type Line 128  type
128    procedure Button1Click(Sender: TObject);    procedure Button1Click(Sender: TObject);
129    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);    procedure ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
130    procedure Budlevering1Click(Sender: TObject);    procedure Budlevering1Click(Sender: TObject);
131    procedure DownloadButton01Click(Sender: TObject);    procedure BtnDownloadKontrolfilClick(Sender: TObject);
132    procedure OpdaterListenButton01Click(Sender: TObject);    procedure BtnOpdaterListenClick(Sender: TObject);
133    procedure DownloadBladhusRuteskiftfil();    procedure DownloadBladhusRuteskiftfil();
134    procedure DownloadBladhusKontrolfil();    procedure DownloadBladhusKontrolfil();
135    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);    procedure SendFilTilDAO(fil_type, filnavn_input, filnavn_output: String);
# Line 145  type Line 137  type
137    procedure UploadInifilTilDAO();    procedure UploadInifilTilDAO();
138    procedure SletStregkodelinieFraListboks2(StregKode : String);    procedure SletStregkodelinieFraListboks2(StregKode : String);
139    procedure FormDestroy(Sender: TObject);    procedure FormDestroy(Sender: TObject);
140    procedure UploadButton01Click(Sender: TObject);    procedure BtnUploadLogfilClick(Sender: TObject);
141    procedure DownloadButton03Click(Sender: TObject);    procedure BtnDownloadRuteskiftFilClick(Sender: TObject);
142    procedure Pakkeshoplevering1Click(Sender: TObject);    procedure Pakkeshoplevering1Click(Sender: TObject);
143    procedure btnNulstilClick(Sender: TObject);    procedure btnNulstilClick(Sender: TObject);
144    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);    procedure Returpakkerfrapakkeshop1Click(Sender: TObject);
# Line 160  type Line 152  type
152    
153    procedure Altidprintepakkelabel1Click(Sender: TObject);    procedure Altidprintepakkelabel1Click(Sender: TObject);
154    procedure chkAltidPrintLabelClick(Sender: TObject);    procedure chkAltidPrintLabelClick(Sender: TObject);
155    procedure EKLoverforselClick(Sender: TObject);    procedure BtnEKLoverforselClick(Sender: TObject);
156    procedure Uploadlogfil1Click(Sender: TObject);    procedure Uploadlogfil1Click(Sender: TObject);
157    procedure Manual1Click(Sender: TObject);    procedure Manual1Click(Sender: TObject);
158    procedure Timer1Timer(Sender: TObject);    procedure Timer1Timer(Sender: TObject);
# Line 183  type Line 175  type
175    procedure Manualgenerel1Click(Sender: TObject);    procedure Manualgenerel1Click(Sender: TObject);
176    procedure TjekkerUrls();    procedure TjekkerUrls();
177    
   procedure RoundCornerOf(Control: TWinControl);  
178    procedure menuIndleveringClick(Sender: TObject);    procedure menuIndleveringClick(Sender: TObject);
179    
180    procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);    procedure PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
# Line 196  type Line 187  type
187      SkrivLog : String;      SkrivLog : String;
188      Sted : String;      Sted : String;
189      StedNavn : String;      StedNavn : String;
190      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlEKLoverforsel : String;      Url, UrlNormal, UrlReturDAO, UrlReturBoghandler, UrlBudlevering, UrlManglendeScanninger, UrlPakkeshoplevering, UrlReturPakkeshop, UrlPakkeshopManglendeScanninger, UrlPakkeshopManglendeReturScanninger,UrlIndleveringsPakke,UrlIndleveringsPakkeManglendeScanninger,UrlEKLoverforsel : String;
191  // 29150330: start  // 29150330: start
192      UrlEKLoverforselPakkeshop : String;      UrlEKLoverforselPakkeshop : String;
193  // 20150330: slut  // 20150330: slut
# Line 210  type Line 201  type
201      AlarmLyd : String;      AlarmLyd : String;
202      ScannetOkLyd : String;      ScannetOkLyd : String;
203      ScannetOkStorLyd : String;      ScannetOkStorLyd : String;
204  // 20150317: start  
205      ScannetOkTilTjekkodeLyd : String;      ScannetOkTilTjekkodeLyd : String;
206  // 20150317: slut  
207      PrinterNavn : String;      PrinterNavn : String;
208      TjekPrinter : String;      TjekPrinter : String;
209      XPosRute : integer;      XPosRute : integer;
# Line 251  type Line 242  type
242      BoghandlerStregkode, BoghandlerTjekkode : String;      BoghandlerStregkode, BoghandlerTjekkode : String;
243      TjekUrls : String;      TjekUrls : String;
244    
245      PakkeshopLabel: TPakkeshopLabel;      Barcode : TStBarcode;
246    
           function CheckSumModulo10(const data:string):string;          { used for EAN 8/13 }  
247    
248      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 = '');
249      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');      procedure SendTilPrinter(kontrolKoreliste, RuteNummer, Kommentar, BoghandlerNavn, Koreliste, SmsKode, DBKbane, Leveringssted : String; var PrintNyLabel : Boolean; BoghandlerNummer : string = '');
# Line 271  type Line 261  type
261      { Public declarations }      { Public declarations }
262    end;    end;
263    
264          function GetPixelsPerInchX(): Integer;
265        function GetPixelsPerInchY(): Integer;
266    
267  var  var
268    MainForm: TMainForm;    MainForm: TMainForm;
269    
# Line 284  var Line 277  var
277  implementation  implementation
278  {$R *.dfm}  {$R *.dfm}
279    
 function TMainForm.TColorToHex(Color : TColor) : string;  
 begin  
    Result :=  
      IntToHex(GetRValue(Color), 2) +  
      IntToHex(GetGValue(Color), 2) +  
      IntToHex(GetBValue(Color), 2) ;  
 end;  
   
 function TMainForm.HexToTColor(sColor : string) : TColor;  
 begin  
    Result :=  
      RGB(  
        StrToInt('$'+Copy(sColor, 1, 2)),  
        StrToInt('$'+Copy(sColor, 3, 2)),  
        StrToInt('$'+Copy(sColor, 5, 2))  
      ) ;  
 end;  
280    
281  procedure TMainForm.InitForm(Farve,Titel,Url : String);  procedure TMainForm.InitForm(Farve,Titel,Url : String);
282  begin  begin
# Line 309  begin Line 285  begin
285      StaticTextManglendePakker.Caption := '';      StaticTextManglendePakker.Caption := '';
286  // 20150309: slut  // 20150309: slut
287    
288        Barcode := TStBarcode.Create(MainForm);//Dynamisk oprettelse af Barcode component
289    
290      PanelValg1.Color := clBtnFace;      PanelValg1.Color := clBtnFace;
291      if PanelValg1.Enabled = true then      if PanelValg1.Enabled = true then
292      begin      begin
# Line 351  begin Line 329  begin
329        PanelValg7.Font.Color := clWindowText;        PanelValg7.Font.Color := clWindowText;
330      end;      end;
331    
332      OpdaterListenButton01.Enabled := false;      BtnOpdaterListen.Enabled := false;
333    
334      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then      if (BladhusSted > 00) and (BladhusSted < Length(BladhusStedNavn)) then
335      begin      begin
# Line 405  begin Line 383  begin
383    
384      StartScreen();      StartScreen();
385      MainForm.Caption := Titel;      MainForm.Caption := Titel;
386      MainForm.Color := HexToTColor(Farve);      MainForm.Color := TUtils.HexToTColor(Farve);
387      MainForm.Farve := Farve;      MainForm.Farve := Farve;
388      MainForm.Titel := Titel;      MainForm.Titel := Titel;
389      MainForm.Url := Url;      MainForm.Url := Url;
# Line 465  begin Line 443  begin
443          end          end
444          else          else
445          begin          begin
446            logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
447          end;          end;
448          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
449        end        end
450        else        else
451        begin        begin
452          logTekst := 'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';          logTekst := 'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
453          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
454        end;        end;
455      end;      end;
# Line 514  end; Line 492  end;
492    
493  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);  procedure TMainForm.Automatiskvalg1Click(Sender: TObject);
494  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;  
 *)  
495  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
496  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
497       AutomatiskValg1.Checked := true;       AutomatiskValg1.Checked := true;
498       PanelValgA.Color := clGreen;       PanelValgA.Color := clGreen;
499       PanelValgA.Font.Color := clWhite;       PanelValgA.Font.Color := clWhite;
 // 20150317: slut  
500  end;  end;
501    
502  procedure TMainForm.FormCreate(Sender: TObject);  procedure TMainForm.FormCreate(Sender: TObject);
# Line 553  begin Line 515  begin
515    
516    btnNulstil.BringToFront;    btnNulstil.BringToFront;
517    
518    RoundCornerOf(PanelManglendePakker1);    TUtils.RoundCornerOf(PanelManglendePakker1);
519    RoundCornerOf(PanelManglendePakker2);    TUtils.RoundCornerOf(PanelManglendePakker2);
520    RoundCornerOf(PanelManglendePakker3);    TUtils.RoundCornerOf(PanelManglendePakker3);
521    RoundCornerOf(PanelManglendePakker4);    TUtils.RoundCornerOf(PanelManglendePakker4);
522    RoundCornerOf(PanelManglendePakker5);    TUtils.RoundCornerOf(PanelManglendePakker5);
523    RoundCornerOf(PanelManglendePakker6);    TUtils.RoundCornerOf(PanelManglendePakker6);
524    
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
# Line 594  begin Line 556  begin
556      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');
557      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');
558    
559    
560      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');      UrlIndleveringsPakke := ReadString('Settings','UrlIndleveringsPakke','http://omdeling.info/webservices/pakkeshop/PakkekontrolIndleveringskode.php?sted=%s&pakkekode=%s');
561        UrlIndleveringsPakkeManglendeScanninger := ReadString('Settings', 'UrlIndleveringsPakkeManglendeScanninger','http://omdeling.info/webservices/pakkeshop/IndleveringsPakkeManglendeScanninger.php?sted=%s');
562    
563    
564    
565      LabelType := ReadInteger('Settings','LabelType',1);      LabelType := ReadInteger('Settings','LabelType',1);
# Line 634  begin Line 599  begin
599    
600      if (SkrivLog = '1') then      if (SkrivLog = '1') then
601      begin      begin
602        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);
603        try        try
604          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
605          Uploadlogfil1.Enabled := true;          Uploadlogfil1.Enabled := true;
606          UploadButton01.Enabled := true;          BtnUploadLogfil.Enabled := true;
607          logTekst := 'Programmet er installeret som: '+ParamStr(0);          logTekst := 'Programmet er installeret som: '+ParamStr(0);
608          SkrivScanningLogFil(logTekst);          SkrivScanningLogFil(logTekst);
609          // Oprydning i gamle logfiler          // Oprydning i gamle logfiler
# Line 777  begin Line 742  begin
742      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)      //SpecialVersionSted := 'FD';  // FD - sætter automatisk nedenstående SpecialVersionScanningtype til DIREKTE)
743      // *************************** //      // *************************** //
744    
745    {$IfDef STED_BK}
746        SpecialVersionSted := 'BK';
747    {$EndIf}
748    {$IfDef STED_DBK}
749        SpecialVersionSted := 'DBK';
750    {$EndIf}
751    {$IfDef STED_FD}
752        SpecialVersionSted := 'FD';
753    {$EndIf}
754    {$IfDef STED_NS}
755        SpecialVersionSted := 'NS';
756    {$EndIf}
757    
758    
759      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '01';  // NS - bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
760      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)      //SpecialVersionSted := '02';  // BK - BRUGES IKKE (brug i stedet ovenstående SpecialVersionSted BK)
761      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)      //SpecialVersionSted := '03';  // FD - (bruges sammen med nedenstående SpecialVersionScanningtype DIREKTE)
# Line 792  begin Line 771  begin
771      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)      // Hvis specialversion er valgt (SpecialVersionSted er sat til en værdi ovenfor)
772      // ændrer vi Sted og Scanningtype her:      // ændrer vi Sted og Scanningtype her:
773    
 // 20150313: start  
774      if SpecialVersionSted = 'NS' then      if SpecialVersionSted = 'NS' then
775      begin      begin
776         SpecialVersionSted := '01';         SpecialVersionSted := '01';
# Line 803  begin Line 781  begin
781         SpecialVersionSted := '03';         SpecialVersionSted := '03';
782         SpecialVersionScanningtype := '4';         SpecialVersionScanningtype := '4';
783      end;      end;
 // 20150313: slut  
784    
785      if SpecialVersionSted = 'BK' then      if SpecialVersionSted = 'BK' then
786      begin      begin
# Line 1148  begin Line 1125  begin
1125      Scanningtype := gemScanningtype;      Scanningtype := gemScanningtype;
1126    
1127      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');      SendInfoTilServer(Sted, Scanningtype, 'Begin', '');
1128      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', Sto_GetFmtFileVersion('',''));      SendInfoTilServer(Sted, Scanningtype, 'ProgramVersion', TUtils.Sto_GetFmtFileVersion(''));
1129    
1130  end;  end;
1131    
# Line 1600  begin Line 1577  begin
1577             BoghandlerTjekkode := Stregkode;             BoghandlerTjekkode := Stregkode;
1578             PakkeshopText1.Caption := 'Stregkode';             PakkeshopText1.Caption := 'Stregkode';
1579             if (PakkeshopLevering1.Checked) then             if (PakkeshopLevering1.Checked) then
1580                MainForm.Color := HexToTColor(FarvePakkeshoplevering);                MainForm.Color := TUtils.HexToTColor(FarvePakkeshoplevering);
1581             if (Pakkernormal1.Checked) then             if (Pakkernormal1.Checked) then
1582                MainForm.Color := HexToTColor(FarveNormal);                MainForm.Color := TUtils.HexToTColor(FarveNormal);
1583             btnNulstil.Visible := false;             btnNulstil.Visible := false;
1584           end           end
1585          else          else
# Line 1623  begin Line 1600  begin
1600    
1601      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
1602      begin      begin
1603    
1604         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then         if PakkeshopLevering1.Checked and (PakkeshopStregkode <> '') and (PakkeshopTjekkode <> '') then
1605            StregKode := PakkeshopStregkode;            StregKode := PakkeshopStregkode;
1606         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 1662  begin Line 1640  begin
1640           end;           end;
1641            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
1642            begin            begin
1643              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1644              if Storepakker1.Checked then              if Storepakker1.Checked then
1645              begin              begin
1646                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1675  begin Line 1653  begin
1653            end            end
1654            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then            else if (Returpakkerfradao1.Checked or Returpakkerfraboghandler1.Checked) then
1655            begin            begin
1656              MainForm.Color := HexToTColor(Farve);              MainForm.Color := TUtils.HexToTColor(Farve);
1657              if Storepakker1.Checked then              if Storepakker1.Checked then
1658              begin              begin
1659                PlaySound(PWideChar(ScannetOkStorLyd));                PlaySound(PWideChar(ScannetOkStorLyd));
# Line 1697  begin Line 1675  begin
1675            begin            begin
1676              VisAlarmSkaerm('');              VisAlarmSkaerm('');
1677            end;            end;
1678    
1679           if not btnNulstil.Visible then           if not btnNulstil.Visible then
1680            begin            begin
1681    
# Line 1789  var Line 1768  var
1768    
1769    
1770  begin  begin
1771      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked then      if Budlevering1.Checked or Pakkeshoplevering1.Checked or Returpakkerfrapakkeshop1.Checked or Pakkernormal1.Checked or menuIndlevering.Checked then
1772      begin      begin
1773        for i := ListBox2.items.count-1 downto 0 do        for i := ListBox2.items.count-1 downto 0 do
1774          if pos(StregKode,ListBox2.items[i]) <> 0 then          if pos(StregKode,ListBox2.items[i]) <> 0 then
# Line 1800  begin Line 1779  begin
1779            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere            if (pos('/', wrkAntal) > 0) then  // både pakker idag og senere
1780            begin            begin
1781              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen              wrkAntal := wrkAntal + '/';   // tilføjer '/' sidst i feltet af hensyn til split funktionen
1782              wrkAntalIdag := StrToInt(split(wrkAntal, '/', 2));              wrkAntalIdag := StrToInt( TUtils.split(wrkAntal, '/', 2));
1783  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));  //            ShowMessage(SPLIT('data/another/yet/again/more/','/',3));
1784  //            ShowMessage(SPLIT('data/another/','/',3));  //            ShowMessage(SPLIT('data/another/','/',3));
1785  //            ShowMessage(SPLIT('data/another','/',3));  //            ShowMessage(SPLIT('data/another','/',3));
1786              wrkAntalSenere := StrToInt(split(wrkAntal, '/', 3));              wrkAntalSenere := StrToInt( TUtils.split(wrkAntal, '/', 3));
1787            end            end
1788            else     // kun idag            else     // kun idag
1789            begin            begin
# Line 1997  begin Line 1976  begin
1976      01 :      01 :
1977            begin;      // NS            begin;      // NS
1978              Testprinter1.Visible := true;              Testprinter1.Visible := true;
1979              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
1980              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1981              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1982              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1983              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';              BladhusKontrolfil_server := 'franordjyske/RuteKontrol.txt';
# Line 2013  begin Line 1992  begin
1992              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
1993              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
1994              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
1995              DownloadButton01.Enabled := false;     // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;     // kontrolfil bruges ikke her
1996              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
1997              IdFTP1.Passive := true;              IdFTP1.Passive := true;
1998              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
1999              IndlesManglendeScanninger();              IndlesManglendeScanninger();
# Line 2024  begin Line 2003  begin
2003              Testprinter1.Visible := true;              Testprinter1.Visible := true;
2004             if (getProddag() = 'lørdag') then             if (getProddag() = 'lørdag') then
2005              begin              begin
2006                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2007              end              end
2008              else              else
2009              begin              begin
2010                DownloadButton03.Visible := false;                BtnDownloadRuteskiftFil.Visible := false;
2011              end;              end;
2012              DownloadButton01.Enabled := true;              BtnDownloadKontrolfil.Enabled := true;
2013              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2014              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2015              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2016              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';              BladhusRuteskiftfil_server := 'frafd/RuteSkift.txt';
# Line 2051  begin Line 2030  begin
2030              Storepakker1.Enabled := true;              Storepakker1.Enabled := true;
2031              radioStorPakke.Enabled := true;              radioStorPakke.Enabled := true;
2032              radioLillePakke.Enabled := true;              radioLillePakke.Enabled := true;
2033              DownloadButton01.Enabled := false;    // kontrolfil bruges ikke her              BtnDownloadKontrolfil.Enabled := false;    // kontrolfil bruges ikke her
2034              OpdaterListenButton01.Enabled := true;              BtnOpdaterListen.Enabled := true;
2035              IdFTP1.Passive := true;              IdFTP1.Passive := true;
2036              IdFTP1.PassiveUseControlHost := true;              IdFTP1.PassiveUseControlHost := true;
2037            end;            end;
# Line 2068  var Line 2047  var
2047    URLStr : String;    URLStr : String;
2048    pakkestorrelse : String;    pakkestorrelse : String;
2049    PrintNyLabelInteger : Integer;    PrintNyLabelInteger : Integer;
2050    
2051      PakkeshopLabel: TPakkeshopLabel;
2052  begin  begin
2053    if radioStorPakke.Checked then    if radioStorPakke.Checked then
2054    begin    begin
# Line 2170  begin Line 2151  begin
2151       begin       begin
2152         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label         PrintNyLabel := True; //Indleveringskode vil ALTID udskrive label
2153         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc         PakkeshopLabel := TPakkeshopLabel.Create( XMLDocument1 ); //Opret struct og parse xml doc
2154           RuteNummer := PakkeshopLabel.Koreliste;
2155           Stregkode := PakkeshopLabel.Stregkode;
2156    
2157         PrintPakkeshopLabel( PakkeshopLabel );         PrintPakkeshopLabel( PakkeshopLabel );
2158    
# Line 2303  begin Line 2286  begin
2286        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;        List1msg := List1msg + '; ' + Stregkode + ' (' + BoghandlerTjekkode + ')' + '; ' + Kommentar;
2287      end;      end;
2288    end;    end;
2289      if menuIndlevering.Checked then
2290      begin
2291        List1Msg := Stregkode;
2292      end;
2293    
2294    
2295    ListBox1.Items.Insert(0,List1Msg);    ListBox1.Items.Insert(0,List1Msg);
2296    logTekst := RightStr(List1Msg, Length(List1Msg)-10);    logTekst := RightStr(List1Msg, Length(List1Msg)-10);
2297    SkrivScanningLogFil(logTekst);    SkrivScanningLogFil(logTekst);
2298  end;  end;
2299    
2300  procedure TMainForm.UploadButton01Click(Sender: TObject);  procedure TMainForm.BtnUploadLogfilClick(Sender: TObject);
2301  begin  begin
2302    UploadLogfilTilDAO();    UploadLogfilTilDAO();
2303    UploadInifilTilDAO();    UploadInifilTilDAO();
# Line 2325  pakkeForkertSted : Integer; Line 2314  pakkeForkertSted : Integer;
2314    nytRuteNummer, nyFarve : String;    nytRuteNummer, nyFarve : String;
2315  begin  begin
2316    if Budlevering1.Checked then    if Budlevering1.Checked then
2317       RuteNummerST.Color := HexToTColor(Farve);       RuteNummerST.Color := TUtils.HexToTColor(Farve);
2318    
2319    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);    pakkeErScannet := pos('PAKKEN ER SCANNET', BoghandlerNavn);
2320    if pakkeErScannet = 0 then    if pakkeErScannet = 0 then
# Line 2381  begin Line 2370  begin
2370            PrintNyLabel := true;            PrintNyLabel := true;
2371            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;            RuteNummerST.Caption := RuteNummer+' -> ny rute: '+nytRuteNummer;
2372            nyFarve := Farve;            nyFarve := Farve;
2373            RuteNummerST.Color := HexToTColor(nyFarve);            RuteNummerST.Color := TUtils.HexToTColor(nyFarve);
2374            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;            List1msg := TimeToStr(now) + '; ' + RuteNummer+' -> ny rute: '+nytRuteNummer;
2375            RuteNummer := nytRuteNummer;            RuteNummer := nytRuteNummer;
2376            ListBox1.Items.Insert(0,List1Msg);            ListBox1.Items.Insert(0,List1Msg);
# Line 2672  begin Line 2661  begin
2661          // Tjekker UrlNormal          // Tjekker UrlNormal
2662          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2663          begin          begin
2664            if CheckUrl(UrlNormal) then            if TUtils.CheckUrl(UrlNormal) then
2665            begin            begin
2666              logTekst := 'UrlNormal accepteret: ' + UrlNormal;              logTekst := 'UrlNormal accepteret: ' + UrlNormal;
2667              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2701  begin Line 2690  begin
2690          // Tjekker UrlReturDAO          // Tjekker UrlReturDAO
2691          if PanelValg2.Enabled = true then          if PanelValg2.Enabled = true then
2692          begin          begin
2693            if CheckUrl(UrlReturDAO) then            if TUtils.CheckUrl(UrlReturDAO) then
2694            begin            begin
2695              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;              logTekst := 'UrlReturDAO accepteret: ' + UrlReturDAO;
2696              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2729  begin Line 2718  begin
2718          // Tjekker UrlReturBoghandler          // Tjekker UrlReturBoghandler
2719          if PanelValg3.Enabled = true then          if PanelValg3.Enabled = true then
2720          begin          begin
2721            if CheckUrl(UrlReturBoghandler) then            if TUtils.CheckUrl(UrlReturBoghandler) then
2722            begin            begin
2723              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;              logTekst := 'UrlReturBoghandler accepteret: ' + UrlReturBoghandler;
2724              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2757  begin Line 2746  begin
2746          // Tjekker UrlBudlevering          // Tjekker UrlBudlevering
2747          if PanelValg4.Enabled = true then          if PanelValg4.Enabled = true then
2748          begin          begin
2749            if CheckUrl(UrlBudlevering) then            if TUtils.CheckUrl(UrlBudlevering) then
2750            begin            begin
2751              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;              logTekst := 'UrlBudlevering accepteret: ' + UrlBudlevering;
2752              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2785  begin Line 2774  begin
2774          // Tjekker UrlPakkeshoplevering          // Tjekker UrlPakkeshoplevering
2775          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2776          begin          begin
2777            if CheckUrl(UrlPakkeshoplevering) then            if TUtils.CheckUrl(UrlPakkeshoplevering) then
2778            begin            begin
2779              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;              logTekst := 'UrlPakkeshoplevering accepteret: ' + UrlPakkeshoplevering;
2780              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2813  begin Line 2802  begin
2802          // Tjekker UrlReturPakkeshop          // Tjekker UrlReturPakkeshop
2803          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2804          begin          begin
2805            if CheckUrl(UrlReturPakkeshop) then            if TUtils.CheckUrl(UrlReturPakkeshop) then
2806            begin            begin
2807              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;              logTekst := 'UrlReturPakkeshop accepteret: ' + UrlReturPakkeshop;
2808              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2842  begin Line 2831  begin
2831          if (PanelValg1.Enabled = true)          if (PanelValg1.Enabled = true)
2832          or (PanelValg4.Enabled = true) then          or (PanelValg4.Enabled = true) then
2833          begin          begin
2834            if CheckUrl(UrlManglendeScanninger) then            if TUtils.CheckUrl(UrlManglendeScanninger) then
2835            begin            begin
2836              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;              logTekst := 'UrlManglendeScanninger accepteret: ' + UrlManglendeScanninger;
2837              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2870  begin Line 2859  begin
2859          // Tjekker UrlPakkeshopManglendeScanninger          // Tjekker UrlPakkeshopManglendeScanninger
2860          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2861          begin          begin
2862            if CheckUrl(UrlPakkeshopManglendeScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeScanninger) then
2863            begin            begin
2864              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;              logTekst := 'UrlPakkeshopManglendeScanninger accepteret: ' + UrlPakkeshopManglendeScanninger;
2865              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2898  begin Line 2887  begin
2887          // Tjekker UrlPakkeshopManglendeReturScanninger          // Tjekker UrlPakkeshopManglendeReturScanninger
2888          if PanelValg6.Enabled = true then          if PanelValg6.Enabled = true then
2889          begin          begin
2890            if CheckUrl(UrlPakkeshopManglendeReturScanninger) then            if TUtils.CheckUrl(UrlPakkeshopManglendeReturScanninger) then
2891            begin            begin
2892              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;              logTekst := 'UrlPakkeshopManglendeReturScanninger accepteret: ' + UrlPakkeshopManglendeReturScanninger;
2893              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2923  begin Line 2912  begin
2912            end;            end;
2913          end;          end;
2914    
2915           // Tjekker UrlIndleveringsPakke og UrlIndleveringsPakkeManglendeScanninger
2916            if PanelValg7.Enabled = true then
2917            begin
2918              if TUtils.CheckUrl(UrlIndleveringsPakke) then
2919              begin
2920                logTekst := 'UrlIndleveringsPakke accepteret: ' + UrlIndleveringsPakke;
2921                SkrivScanningLogFil(logTekst);
2922              end
2923              else
2924              begin
2925                inc(urlFejl);   // Optæller antal fejl
2926                logTekst := 'UrlIndleveringsPakke svarer ikke: ' + UrlIndleveringsPakke;
2927                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2928                if TjekUrls = '1' then
2929                begin
2930                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2931                end;
2932                SkrivScanningLogFil(logTekst);
2933                if TjekUrls = '1' then
2934                begin
2935                  ShowMessage(logTekst);
2936                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2937                  Application.Terminate;
2938                  exit;
2939                end;
2940              end;
2941    
2942              if TUtils.CheckUrl(UrlIndleveringsPakkeManglendeScanninger) then
2943              begin
2944                logTekst := 'UrlIndleveringsPakkeManglendeScanninger accepteret: ' + UrlIndleveringsPakkeManglendeScanninger;
2945                SkrivScanningLogFil(logTekst);
2946              end
2947              else
2948              begin
2949                inc(urlFejl);   // Optæller antal fejl
2950                logTekst := 'UrlIndleveringsPakkeManglendeScanninger svarer ikke: ' + UrlIndleveringsPakkeManglendeScanninger;
2951                ListBox1.Items.Insert(0,TimeToStr(now) + ': ' + logTekst);
2952                if TjekUrls = '1' then
2953                begin
2954                  logTekst := logTekst + crlf + crlf + 'Programmet afsluttes... ';
2955                end;
2956                SkrivScanningLogFil(logTekst);
2957                if TjekUrls = '1' then
2958                begin
2959                  ShowMessage(logTekst);
2960                  UrlSendPrograminfo := '';   // Her sletter vi lige url, så der ikke forsøges at sende besked ved program slut
2961                  Application.Terminate;
2962                  exit;
2963                end;
2964              end;
2965            end;
2966    
2967          // Tjekker UrlEKLoverforsel          // Tjekker UrlEKLoverforsel
2968          if PanelValg1.Enabled = true then          if PanelValg1.Enabled = true then
2969          begin          begin
2970            if CheckUrl(UrlEKLoverforsel) then            if TUtils.CheckUrl(UrlEKLoverforsel) then
2971            begin            begin
2972              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;              logTekst := 'UrlEKLoverforsel accepteret: ' + UrlEKLoverforsel;
2973              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2955  begin Line 2996  begin
2996          // Tjekker UrlEKLoverforselPakkeshop          // Tjekker UrlEKLoverforselPakkeshop
2997          if PanelValg5.Enabled = true then          if PanelValg5.Enabled = true then
2998          begin          begin
2999            if CheckUrl(UrlEKLoverforselPakkeshop) then            if TUtils.CheckUrl(UrlEKLoverforselPakkeshop) then
3000            begin            begin
3001              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;              logTekst := 'UrlEKLoverforselPakkeshop accepteret: ' + UrlEKLoverforselPakkeshop;
3002              SkrivScanningLogFil(logTekst);              SkrivScanningLogFil(logTekst);
# Line 2982  begin Line 3023  begin
3023    
3024    
3025          // Tjekker UrlFindPakketype          // Tjekker UrlFindPakketype
3026          if CheckUrl(UrlFindPakketype) then          if TUtils.CheckUrl(UrlFindPakketype) then
3027          begin          begin
3028            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;            logTekst := 'UrlFindPakketype accepteret: ' + UrlFindPakketype;
3029            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 3007  begin Line 3048  begin
3048          end;          end;
3049    
3050          // Tjekker UrlSendPrograminfo          // Tjekker UrlSendPrograminfo
3051          if CheckUrl(UrlSendPrograminfo) then          if TUtils.CheckUrl(UrlSendPrograminfo) then
3052          begin          begin
3053            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;            logTekst := 'UrlSendPrograminfo accepteret: ' + UrlSendPrograminfo;
3054            SkrivScanningLogFil(logTekst);            SkrivScanningLogFil(logTekst);
# Line 3044  begin Line 3085  begin
3085    
3086  end;  end;
3087    
 function TMainForm.FileTime2DateTime(FileTime: TFileTime): TDateTime;  
 var  
    LocalFileTime: TFileTime;  
    SystemTime: TSystemTime;  
 begin  
    FileTimeToLocalFileTime(FileTime, LocalFileTime) ;  
    FileTimeToSystemTime(LocalFileTime, SystemTime) ;  
    Result := SystemTimeToDateTime(SystemTime) ;  
 end;  
   
3088  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);  procedure TMainForm.SletLogfiler(Path: string; FileList: TStrings);
3089  var  var
3090    SR: TSearchRec;    SR: TSearchRec;
# Line 3070  begin Line 3101  begin
3101      repeat      repeat
3102        if (SR.Attr <> faDirectory) then        if (SR.Attr <> faDirectory) then
3103        begin        begin
3104    
3105          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring          dt := fileDateToDateTime(SR.Time);  // finder filens timestamp for seneste ændring
3106          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse          CreationTime := SR.FindData.ftCreationTime;  // finder filens timestamp for oprettelse
3107          dtCreation := FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse          dtCreation := TUtils.FileTime2DateTime(CreationTime);   // finder filens timestamp for oprettelse
3108          // Selvom creation date godt kan være forskellig fra modified date,          // Selvom creation date godt kan være forskellig fra modified date,
3109          // skal vi alligevel altid tjekke filens alder ud fra modified date          // skal vi alligevel altid tjekke filens alder ud fra modified date
3110          // (æ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 3131  begin Line 3163  begin
3163  //  MainForm.Color := HexToTColor(Farve);  //  MainForm.Color := HexToTColor(Farve);
3164    if Farve <> '' then    if Farve <> '' then
3165    begin    begin
3166       MainForm.Color := HexToTColor(Farve);       MainForm.Color := TUtils.HexToTColor(Farve);
3167  // 20150312: start  // 20150312: start
3168  (*  (*
3169    end    end
# Line 3205  end; Line 3237  end;
3237    
3238  procedure TMainForm.PanelValgAClick(Sender: TObject);  procedure TMainForm.PanelValgAClick(Sender: TObject);
3239  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;  
 *)  
3240  // Skal ikke toggle men bare sætte funktionen on  // Skal ikke toggle men bare sætte funktionen on
3241  // Fravælges ved at vælge en scanningstype  // Fravælges ved at vælge en scanningstype
3242       AutomatiskValg1.Checked := true;    AutomatiskValg1.Checked := true;
3243       PanelValgA.Color := clGreen;    PanelValgA.Color := clGreen;
3244       PanelValgA.Font.Color := clWhite;    PanelValgA.Font.Color := clWhite;
3245  // 20150311: slut  
3246    
3247    
3248  end;  end;
3249    
3250  procedure TMainForm.Pakkernormal1Click(Sender: TObject);  procedure TMainForm.Pakkernormal1Click(Sender: TObject);
# Line 3331  begin Line 3350  begin
3350    end;    end;
3351  end;  end;
3352    
3353  {  
  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;  
3354    
3355  procedure TMainForm.Om1Click(Sender: TObject);  procedure TMainForm.Om1Click(Sender: TObject);
3356  const  const
# Line 3369  var Line 3359  var
3359   tekst, filversion : String;   tekst, filversion : String;
3360  begin  begin
3361    
3362    filversion := Sto_GetFmtFileVersion('','');    filversion := TUtils.Sto_GetFmtFileVersion('');
3363    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';
3364    
3365    tekst := tekst+crlf+crlf;    tekst := tekst+crlf+crlf;
# Line 3391  begin Line 3381  begin
3381          end          end
3382          else          else
3383          begin          begin
3384            tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+Sted+')';            tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+Sted+')';
3385          end;          end;
3386      end      end
3387      else      else
3388      begin      begin
3389        tekst := tekst+crlf+crlf+'Speciel version til: '+split(Titel, ':', 2)+' ('+SpecialVersionSted+')';        tekst := tekst+crlf+crlf+'Speciel version til: ' + TUtils.split(Titel, ':', 2) + ' ('+SpecialVersionSted+')';
3390      end;      end;
3391    end;    end;
3392    
# Line 3464  begin Line 3454  begin
3454    
3455    if FileExists(fileName) then    if FileExists(fileName) then
3456    begin    begin
3457      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3458      begin      begin
3459        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3460        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
# Line 3488  begin Line 3478  begin
3478    
3479    if FileExists(fileName) then    if FileExists(fileName) then
3480    begin    begin
3481      if AdobeReaderExists then      if TUtils.AdobeReaderExists then
3482      begin      begin
3483        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);        //ShellExecute(Handle, 'open', 'c:\Windows\notepad.exe', nil, nil, SW_SHOWNORMAL);
3484        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);        ShellExecute(Handle,'open',PChar(fileName), nil, nil, SW_SHOWNORMAL);
3485      end      end
3486      else      else
3487      begin      begin
3488        ShowMessage('Acrobat Reader er ikke installeret!');        ShowMessage('Adobe Reader er ikke installeret!');
3489      end;      end;
3490    end    end
3491    else    else
# Line 3561  begin Line 3551  begin
3551        radioStorPakke.Enabled := false;        radioStorPakke.Enabled := false;
3552        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3553        ListBox1.Visible := true;        ListBox1.Visible := true;
3554        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3555        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3556        InitLillePakke();        InitLillePakke();
3557        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3558        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3595  begin Line 3585  begin
3585        ListBox1.Visible := true;        ListBox1.Visible := true;
3586        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3587        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3588        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3589        InitLillePakke();        InitLillePakke();
3590  end;  end;
3591    
# Line 3621  begin Line 3611  begin
3611        ListBox1.Visible := true;        ListBox1.Visible := true;
3612        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3613        ListBox2.Items.Clear;        ListBox2.Items.Clear;
3614        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3615        InitLillePakke();        InitLillePakke();
3616  end;  end;
3617    
# Line 3647  begin Line 3637  begin
3637        radioLillePakke.Enabled := true;        radioLillePakke.Enabled := true;
3638        ListBox1.Visible := true;        ListBox1.Visible := true;
3639        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3640        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3641        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3642        DownloadButton03.Visible := false;        BtnDownloadRuteskiftFil.Visible := false;
3643        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3644        IdFTP1.Passive := true;        IdFTP1.Passive := true;
3645        IdFTP1.PassiveUseControlHost := true;        IdFTP1.PassiveUseControlHost := true;
3646        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then        if (BladhusSted = 0) or (BladhusSted = 2) or (BladhusSted = 3) then
# Line 3683  begin Line 3673  begin
3673        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3674        ListBox1.Visible := true;        ListBox1.Visible := true;
3675        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3676        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3677        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3678    
3679        EKLoverforsel.Enabled := true;        BtnEKLoverforsel.Enabled := true;
3680    
3681        InitLillePakke();        InitLillePakke();
3682        IndlesScanningLogFil();        IndlesScanningLogFil();
# Line 3720  begin Line 3710  begin
3710        radioLillePakke.Enabled := false;        radioLillePakke.Enabled := false;
3711        ListBox1.Visible := true;        ListBox1.Visible := true;
3712        ListBox1.Items.Clear;        ListBox1.Items.Clear;
3713        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3714        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3715        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3716        InitLillePakke();        InitLillePakke();
3717        IndlesScanningLogFil();        IndlesScanningLogFil();
3718        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3767  begin Line 3757  begin
3757        ListBox1.Visible := true;        ListBox1.Visible := true;
3758        ListBox1.Items.Clear();        ListBox1.Items.Clear();
3759    
3760        DownloadButton01.Enabled := false;        BtnDownloadKontrolfil.Enabled := false;
3761        OpdaterListenButton01.Enabled := true;        BtnOpdaterListen.Enabled := true;
3762        EKLoverforsel.Enabled := false;        BtnEKLoverforsel.Enabled := false;
3763        InitLillePakke();        InitLillePakke();
3764        IndlesScanningLogFil();        IndlesScanningLogFil();
3765        if BladhusSted = 0 then        if BladhusSted = 0 then
# Line 3807  begin Line 3797  begin
3797  // 20150310: slut  // 20150310: slut
3798  end;  end;
3799    
 /// <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]]);  
3800    
     // 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;  
3801    
3802  procedure TMainForm.PlaySound(filename : PWideChar);  procedure TMainForm.PlaySound(filename : PWideChar);
3803  begin  begin
# Line 3943  begin; Line 3868  begin;
3868    CheckCode();    CheckCode();
3869  end;  end;
3870    
3871  procedure TMainForm.EKLoverforselClick(Sender: TObject);  procedure TMainForm.BtnEKLoverforselClick(Sender: TObject);
3872  var  var
3873    WebSvar : String;    WebSvar : String;
3874    URLStr : String;    URLStr : String;
# Line 3953  var Line 3878  var
3878    status, kommentar : String;    status, kommentar : String;
3879    
3880  begin  begin
3881      EKLoverforsel.Enabled := false;      BtnEKLoverforsel.Enabled := false;
3882    
3883      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');
3884      logTekst := 'Overfører de scannede pakker til EKL';      logTekst := 'Overfører de scannede pakker til EKL';
# Line 4016  begin Line 3941  begin
3941        end;        end;
3942      end;      end;
3943    
3944      EKLoverforsel.Enabled := true;      BtnEKLoverforsel.Enabled := true;
3945    
3946      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
3947    
# Line 4057  begin Line 3982  begin
3982    else    else
3983      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);      MessageBox(Handle, 'fejl', 'Stregkode', MB_OK);
3984  }  }
3985    Svar := 'Beregnet: '+CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;    Svar := 'Beregnet: ' + TUtils.CheckSumModulo10(LeftStr(Barcode,Length(Barcode)-1))+', Indtastet: '+Barcode;
3986    
3987    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);    MessageBox(Handle, PWideChar(Svar), 'Stregkode', MB_OK);
3988    CheckCode();    CheckCode();
# Line 4065  end; Line 3990  end;
3990    
3991  end;  end;
3992    
 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;  
3993    
3994  //  //
3995  // Bladhus ***  // Bladhus ***
# Line 4581  begin Line 4467  begin
4467    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
4468  end;  end;
4469    
4470  procedure TMainForm.DownloadButton01Click(Sender: TObject);  procedure TMainForm.BtnDownloadKontrolfilClick(Sender: TObject);
4471  begin  begin
4472      DownloadBladhusKontrolfil();      DownloadBladhusKontrolfil();
4473      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
4474  end;  end;
4475    
4476  procedure TMainForm.OpdaterListenButton01Click(Sender: TObject);  procedure TMainForm.BtnOpdaterListenClick(Sender: TObject);
4477  const  const
4478    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed    crlf = Chr(13) + Chr(10) ;  // Carriage return & Linefeed
4479    
# Line 4596  begin Line 4482  begin
4482      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
4483  end;  end;
4484    
4485  procedure TMainForm.DownloadButton03Click(Sender: TObject);  procedure TMainForm.BtnDownloadRuteskiftFilClick(Sender: TObject);
4486  begin  begin
4487      if (getProddag() = 'lørdag') then      if (getProddag() = 'lørdag') then
4488      begin      begin
# Line 4605  begin Line 4491  begin
4491      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
4492  end;  end;
4493    
 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;  
4494    
4495  // ToDo: Færdiggør implementationen  // ToDo: PrintPakkeshopLabel()
4496  procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);  procedure TMainForm.PrintPakkeshopLabel( PakkeshopLabel : TPakkeshopLabel);
4497    var
4498      XForm, XFormOld: TXForm; //Bruges til rotate X-formation
4499      Angle: integer;
4500      gMode: integer;
4501      Dirigering: string;
4502    
4503  begin  begin
4504      with Printer do      with Printer do
4505      begin      begin
4506        BeginDoc();        BeginDoc();
       Canvas.Font.Size := FontSizeRuteLille;  
4507    
4508        Canvas.Font.Size := FontSizeKorelisteLille;  
4509        Canvas.TextOut(XPosKoreliste,YPosKoreliste, PakkeshopLabel.Navn);        Canvas.Font.Size := 16;
4510          Canvas.TextOut(15,10, 'Code: ' + PakkeshopLabel.Tjekkode + '     '  + PakkeshopLabel.Overskrift);
4511    
4512    
4513    
4514          Canvas.TextOut(25, 90, PakkeshopLabel.Navn );
4515          Canvas.TextOut(25, 135, PakkeshopLabel.Vejnavn );
4516          Canvas.TextOut(25, 180, PakkeshopLabel.Postnr );
4517    
4518    
4519          Canvas.Font.Size := 9;
4520          Canvas.TextOut(110, 240, 'Pakkeshop:');
4521          Canvas.TextOut(110, 270, PakkeshopLabel.PakkeshopNavn);
4522          Canvas.TextOut(110, 300, PakkeshopLabel.PakkeshopAddr);
4523          Canvas.TextOut(110, 330, PakkeshopLabel.PakkeshopPostnr);
4524    
4525          Canvas.TextOut(350, 240, 'Afsender:');
4526          Canvas.TextOut(350, 270, PakkeshopLabel.AfsenderNavn);
4527          Canvas.TextOut(350, 300, PakkeshopLabel.AfsenderAdresse);
4528          Canvas.TextOut(350, 330, PakkeshopLabel.AfsenderPostnr);
4529    
4530          Dirigering := PakkeshopLabel.PakkeshopSted + ' | ' + PakkeshopLabel.PakkeshopTurid + ' | ' + PakkeshopLabel.PakkeshopNr;
4531          if ( PakkeshopLabel.Koreliste <> '') then
4532          begin
4533            Dirigering := Dirigering + ' > ' + PakkeshopLabel.Koreliste;
4534          end;
4535    
4536    
4537          Canvas.Font.Size := 12;
4538          Canvas.TextOut(15, 370, Dirigering);
4539    
4540    
4541    
4542    
4543    
4544          //Tegn adskillelses linier
4545          Canvas.Pen.Width := 2;
4546          //Øverste linie
4547          Canvas.MoveTo(20,80);
4548          Canvas.LineTo(600,80);
4549    
4550          // Midterste linie
4551          Canvas.MoveTo( 20, 240);
4552          Canvas.LineTo(600, 240);
4553    
4554          //Nederste linie
4555          Canvas.MoveTo( 20, 370);
4556          Canvas.LineTo(600, 370);
4557    
4558    
4559          //Tegn skrå streger over afsender
4560          Canvas.Pen.Width := 1;
4561          Canvas.MoveTo(600, 250);
4562          Canvas.LineTo(350, 360);
4563          Canvas.MoveTo(600, 360);
4564          Canvas.LineTo(350, 250);
4565    
4566    
4567    
4568    
4569          // Resten af rutinen vedr genering og placering af Barcode
4570    
4571          BarCode.BarCodeType := bcCode128;
4572          BarCode.Code128Subset := csCodeC;
4573          BarCode.Code := PakkeshopLabel.Stregkode;
4574          BarCode.Validate(True);
4575    
4576          //Start X-formation
4577          //ShowMessage( Format('%d %d', [PageWidth, PageHeight]) );
4578          GetWorldTransform(Canvas.Handle, XFormOld);
4579    
4580          Angle := 270;
4581          XForm.eM11 := Cos(DegToRad(Angle));
4582          XForm.eM12 := Sin(DegToRad(Angle));
4583          XForm.eM21 := -Sin(DegToRad(Angle));
4584          XForm.eM22 := Cos(DegToRad(Angle));
4585          XForm.eDx := 0;
4586          XForm.eDy := 0;
4587    
4588          gMode := SetGraphicsMode(Canvas.Handle, GM_ADVANCED);
4589          SetWorldTransform(Canvas.Handle, XForm);
4590    
4591          // PaintToCanvasSize arbejder i Inches
4592          // Første pos argument bliver nu Y og skal være negativ for at rykke den ned
4593          //Anden pos er X og skal være positiv for at justere ind fra venstre mod højre
4594    
4595          BarCode.PaintToCanvasSize(Printer.Canvas, -1.8, 3.3, 0.4);
4596    
4597    
4598          SetWorldTransform(Canvas.Handle, XFormOld);
4599          SetGraphicsMode(Canvas.Handle, gMode);
4600    
4601        EndDoc();        EndDoc();
4602      end;      end;
4603    
4604    
4605    end;
4606    
4607    function GetPixelsPerInchX(): Integer;
4608    begin
4609      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSX)
4610    end;
4611    
4612    function GetPixelsPerInchY(): Integer;
4613    begin
4614      Result := GetDeviceCaps(Printer.Handle, LOGPIXELSY)
4615  end;  end;
4616    
4617    
# Line 4672  var Line 4650  var
4650        end;        end;
4651    
4652    
4653      if (Scanningtype = '6') then  
4654        if (Scanningtype = '7') then
4655       begin       begin
4656        URLStr := Format(UrlPakkeshopManglendeReturScanninger,[StedKode]);        URLStr := Format(UrlIndleveringsPakkeManglendeScanninger, [StedKode]);
4657         end
4658        else if (Scanningtype = '6') then
4659         begin
4660          URLStr := Format(UrlPakkeshopManglendeReturScanninger, [StedKode]);
4661       end       end
4662      else if (Scanningtype = '5') then      else if (Scanningtype = '5') then
4663       begin       begin
4664        URLStr := Format(UrlPakkeshopManglendeScanninger,[StedKode]);        URLStr := Format(UrlPakkeshopManglendeScanninger, [StedKode]);
4665       end       end
4666      else if (Scanningtype = '1') then      else if (Scanningtype = '1') then
4667       begin       begin
# Line 4802  var Line 4785  var
4785  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;  //                    stregkoderMedTjekkodeArray[linienr] := stregkode;
4786                    if (pos(' ', stregkode) > 0) then                    if (pos(' ', stregkode) > 0) then
4787                    begin                    begin
4788                      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
4789                    end                    end
4790                    else                    else
4791                    begin                    begin
# Line 4992  var Line 4975  var
4975     idag, imorgen : TDateTime;     idag, imorgen : TDateTime;
4976     imorgenYmd : string;     imorgenYmd : string;
4977     logFilnavn : string;     logFilnavn : string;
4978      error : Integer;     //error : Integer;
4979    
4980  begin  begin
4981    if (SkrivLog = '1') then    if (SkrivLog = '1') then
# Line 5084  begin Line 5067  begin
5067          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5068          S := buffer;          S := buffer;
5069          SetLength(A,0);          SetLength(A,0);
5070          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5071          if (length(A) < 2) then          if (length(A) < 2) then
5072          begin          begin
5073            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5074          end;          end;
5075            if (length(A) > 1) then            if (length(A) > 1) then
5076            begin            begin
# Line 5161  begin Line 5144  begin
5144          ReadLn(SomeTxtFile, buffer) ;          ReadLn(SomeTxtFile, buffer) ;
5145          S := buffer;          S := buffer;
5146          SetLength(A,0);          SetLength(A,0);
5147          Explode(A, ';', S);          TUtils.Explode(A, ';', S);
5148          if (length(A) < 3) then          if (length(A) < 3) then
5149          begin          begin
5150            Explode(A, ',', S);            TUtils.Explode(A, ',', S);
5151          end;          end;
5152          if (A[0]=imorgenYmd) then          if (A[0]=imorgenYmd) then
5153          begin          begin
# Line 5365  begin Line 5348  begin
5348    end;    end;
5349  end;  end;
5350    
 function TMainForm.AdobeReaderExists: Boolean;  
 var  
   AReg: TRegistry;  
 begin  
   result:= false;  
   AReg := TRegistry.Create;  
   AReg.RootKey := HKEY_LOCAL_MACHINE;  
   if AReg.KeyExists('\SOFTWARE\Adobe\Acrobat Reader') then  
     result:= True;  
   AReg.Free;  
 end;  
5351    
5352    
 function TMainForm.CheckUrl(url:string):boolean;  
 var  
   hSession, hfile, hRequest: hInternet;  
   dwindex,dwcodelen :dword;  
   dwcode:array[1..20] of char;  
   res : pchar;  
 begin  
   if pos('http://',lowercase(url))=0 then  
     url := 'http://'+url;  
   Result := false;  
   hSession := InternetOpen('InetURL:/1.0',  
                             INTERNET_OPEN_TYPE_PRECONFIG,  
                             nil,  
                             nil,  
                             0);  
   if assigned(hsession) then  
   begin  
     hfile := InternetOpenUrl(hsession,  
                              pchar(url),  
                              nil,  
                              0,  
                              INTERNET_FLAG_RELOAD,  
                              0);  
     dwIndex := 0;  
     dwCodeLen := 10;  
     HttpQueryInfo(hfile,  
                   HTTP_QUERY_STATUS_CODE,  
                   @dwcode,  
                   dwcodeLen,  
                   dwIndex);  
     res := pchar(@dwcode);  
     result:= (res ='200') or (res ='302');  
     if assigned(hfile) then  
       InternetCloseHandle(hfile);  
     InternetCloseHandle(hsession);  
   end;  
5353    
 end;  
5354    
5355    
 procedure TMainForm.RoundCornerOf(Control: TWinControl);  
 var  
    R: TRect;  
    Rgn: HRGN;  
 begin  
    with Control do  
    begin  
      R := ClientRect;  
 //     rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 20, 20) ;  
      rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 25, 25) ;  
 //     rgn := CreateRoundRectRgn(R.Left, R.Top, R.Right, R.Bottom, 30, 30) ;  
      Perform(EM_GETRECT, 0, lParam(@r)) ;  
      InflateRect(r, - 4, - 4) ;  
      Perform(EM_SETRECTNP, 0, lParam(@r)) ;  
      SetWindowRgn(Handle, rgn, True) ;  
      Invalidate;  
    end;  
 end;  
5356    
5357  procedure TMainForm.CheckPrintQue(tjektype : string);  procedure TMainForm.CheckPrintQue(tjektype : string);
5358  type  type

Legend:
Removed from v.2668  
changed lines
  Added in v.2701

  ViewVC Help
Powered by ViewVC 1.1.20