Jump to content

Skrim

Members
  • Content Count

    58
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by Skrim


  1. You should not/cannot send an Ehf invoice directly to the customer, it must be directed via an approved accesspoint. So the first thing I would do is to choose this.

     

    Also, read the documentation for the ehf invoice standard carefully. Take care to get the latest version EHF 3, there is old no longer valid information out there.

     

    An Ehf invoice might be technically valid, but you need to validate the contence as well. A tiny litle "glitch" and the invoice will not be forwarded and some accesspoints will charge you for the missing/not valid contence.  

     

    So there is a lot of work to be done :classic_smile:


  2. I have just subscribed to an AI service.

     

    I already have working code for a REST service. Tested with code fram AI and OMG it looked impressive.

     

    My question was "How can I connect to REST service xxxx using Delphi 12.2?" AI gave me three times the amount of code I already use and the AI code does not work, even after several corrections.

     

    Non programmers making programs using AI, I think not :)

     

     

     

     

    • Like 1

  3. I have never made my own classes before and I have just started to learn.

     

    There is one field FName in the class below. What if I have 50 different Fxxxxx? Do I have to write Setter and  Getter for every field?

     

    Can I declare a record inside the class?

     

    Type
      TEmployee = class
        private
          FName : string;
          //FSalary : Currency;
          Function GetName : string;
          Procedure SetName(Const Value : string);
        public
          Property Name : string read GetName write SetName;
      end;

    implementation

    {$R *.dfm}

    Function TEmployee.GetName: string;
    begin
      Result:=FName;
    end;

    Procedure TEmployee.SetName(const Value: string); 
    begin
      if value='' then
        raise Exception.Create('Name must have a value');
      FName:=value;
    end;

    • Like 1

  4. 1 minute ago, DelphiUdIT said:

    If you have thirdy parts component installed try to delete them.

     

    If this don't help, you can try to do a clean install.

     

    After you have disinstalled RAD STUDIO !!!, do those steps:

     

    1) Delete the Windows registry (and all subfolders of course):

    • HKEY_CURRENT_USER\Software\Embarcadero
    • HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Embarcadero

    2) Delete the folders (and subfolders) of your disk (YOURACCOUNTNAME is the name of your account):

    • C:\Program Files (x86)\Embarcadero
    • C:\Users\YOURACCOUNTNAME\AppData\LocalEmbarcadero
    • C:\Users\YOURACCOUNTNAME\AppData\Roaming\Embarcadero
    • C:\Users\Public\Documents\Embarcadero\Studio\23.0\Bpl
    • C:\Users\Public\Documents\Embarcadero\Studio\23.0\Dcp
    • C:\ProgramData\Embarcadero

    Take care about you are doing.

    Thanks, great advice

     

    Kind regards


  5. When I try to start Delphi (12.2) I get an error,

     

    List index out of bounds (6) TList range is 0..5

     

    When I click OK the program closes. I have tried to reinstall, but did not help.

     

    Any ideas?

     

     

    Snap1.jpg


  6. 1 hour ago, corneliusdavid said:

    If you hit F1 on the warning, you'll get the following explanation:

    LOL, I have been using Delphi since version 2 and I did not know that :classic_blush:

     

    I always declare string as aString : string; never aString : string[3]; But a lot of these string values are saved to a database field declared in the database as a string with a fixed length, could that be the reason for the error?

     

    Kind regards


  7. On 3/17/2024 at 5:31 PM, Remy Lebeau said:

    Depends on the context. The compiler thinks you are using J's value before you have actually assigned any value to J. Sometimes the compile makes a mistake on this, sometimes not, so it may or may not be a false positive. How are you actually using J exactly? Can you show that code? 

    Here is my code, also could it be done easier/more elegant :classic_blush:

     

    //  String 000001203 to 1203

    // Numbers of zeros to the left could be 1..n


    function RemoveZeroLeft(var s : String) : string;
    var
      i, j : integer;
    begin

      for i:=1 to length(s)do
      begin
        if s<>#48 then
        begin
          j:=i;
          break;
        end;
      end;

      result:=copy(s,j,length(s));

    end;


  8. D12

     

    When I doubleclick in Event OnGetEditText to make an event handler in a stringgrid I get this error.

     

    "Property and method MyGridOnGetEditText are not compatible."

     

    The event is empty. It had some code earlier, but that is deleted together with its declaration.

     

    From Delphi Help file
    "You are assigning a method to an event property even though they have incompatible parameter lists. Parameter lists are incompatible if the number of types of parameters are not identical. For a list of compatible methods in this form, see the dropdown list on the Object Inspector Events page."


    Any ideas how to solve this?

     


  9. 11 minutes ago, Uwe Raabe said:

    Ehm, no!

    Why then isn't GetIt up and running?
    For a company within the IT industry it should be simple enough, right?
    In my industry (finance) we are required to have plans for downtime situations to minimize the damage. Doesn't Embarcadero have plans for such cases? Or is the philosophy, let's just wait and see what happens should something arise :classic_blink:

    • Like 2

  10. Solved.

     

    On those pc's giving an error both libeay32.dll and ssleay32.dll were missing.

     

    Would be nice with a message "Cannot find file xxxx.dll", not just -1 🙂

     


  11. 2 hours ago, Remy Lebeau said:

    What exactly is reporting that error? Can you provide the exact and complete error message? And what does your code look like? 

    The error code is just -1. Nothing more, not very helpful :classic_sad:

    From Windows?


  12. Several clients connect to one remote server/service.

     

    Some clients receive error, most works just fine. Clients are on several dfferent locations. Could it be the clients firewall is blocking sending?

     

    Here is some of my code.

     

    procedure TFormSend.HttpFinish(ASender: TObject);
    begin
      LogMemo.Lines.Add(Format('Finished. Http status code : %d',[(ASender as TxxxxxUpload).ResponseCode]));
      if (ASender as TxxxxxUpload).ResponseCode=201 then
      showmessage('Invoice delivered')
      else
      showmessage('Error : Invoice could not be delivered');
    end;

     

    procedure TMyClient.SendFile;
    var
      tmpstream: TStringStream;
      Params: TIdMultipartFormDataStream;
      FIdSSLIOHandler: TIdSSLIOHandlerSocketOpenSSL;
      FidHttp: TIdHTTP;
      FIdURI: TIdURI;
      FURL: string;
    begin

      HttpStart(Self);
      FResponseCode := 600;
      if DoCheckParams then
      begin
        Params := TIdMultipartFormDataStream.Create;
        FidHttp := TIdHTTP.Create(nil);
        FIdSSLIOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
        FIdURI := TIdURI.Create(FEndPoint);
        tmpstream := TStringStream.Create(Trim(FDocumentID));
        try
          with FidHttp do
          begin
            ReadTimeout := 30000; // 0
            ConnectTimeout := 30000;
            HTTPOptions := [hoKeepOrigProtocol];
            // hoKeepOrigProtocol,hoForceEncodeParams
            HandleRedirects := true;
            RedirectMaximum := 5;
            ProtocolVersion := pv1_1;
            AllowCookies := true;
            OnWork          := WorkEvent;
            OnWorkBegin     := WorkBegin;
            OnWorkEnd       := WorkEnd;
            OnStatus        := StatusEvent;
            with Request do
            begin
              UserAgent := FUserAgent;
              BasicAuthentication := true;
              RawHeaders.FoldLines := false;
              Accept := 'application/xml';
              Connection := 'keep-alive';
            end;
          end;
          with (FIdSSLIOHandler as TIdSSLIOHandlerSocketOpenSSL) do
          begin
            with SSLOptions do
            begin
              Method := sslvTLSv1;
              SSLVersions := [sslvTLSv1];
              Mode := sslmUnassigned;
              VerifyMode := [];
              VerifyDepth := 2;
            end;
            port := 443;
            host := FIdURI.host;
          end;
          FidHttp.IOHandler := FIdSSLIOHandler;
          Params.AddFile('file', FXMLfile, 'application/xml');
          Params.AddFormField('SenderID', FSenderID);
          Params.AddFormField('RecipientID', FRecipientID);
          Params.AddFormField('ChannelID', FChannelID);
          Params.AddFormField('ProcessID', FProcessID);
          Params.AddFormField('DocumentID', '', '', tmpstream).ContentTransfer  := '8bit';
          FIdURI.Username := FUser;
          FIdURI.Password := FPassword;
          FURL := FIdURI.GetFullURI();
          Params.Seek(0, soFromBeginning);
          try
            FidHttp.Post(FURL, Params, FResponse);
            FResponseCode := FidHttp.ResponseCode;
            FResponse.Seek(0, soFromBeginning);
          except
            on E1: EIdHTTPProtocolException do
            begin
              FResponseCode := FidHttp.ResponseCode;
              ErrorEvent(Self,'IdHTTPProtocol Protocol Exception:' + #$D#$A + StringReplace(E1.ErrorMessage, #10, #$D#$A, [rfReplaceAll]));
              ErrorEvent(Self,'IdHTTPProtocol RawHeaders=' + #$D#$A + FidHttp.Request.RawHeaders.Text);
            end;
            on E2: Exception do

            begin
              FResponseCode := FidHttp.ResponseCode;
              ErrorEvent(Self,'IdHTTPProtocol Unknown Exception: ' + E2.Message);
            end;
          end;
        finally
          Params.Free;
          FIdSSLIOHandler.Free;
          FidHttp.Free;
          FIdURI.Free;
          tmpstream.Free;
        end;
      end
      else ErrorEvent(Self,'Some required params are missed');
      HttpFinish(Self);

    end;


  13. I upload Xml files to a remote service using Indy.

     

    Most of the time it's working just fine, but sometimes there is an error returning error code -1.

    (Unknown error?)

     

    When I say "not working" the file connection/transfer is not accepted by the remote service.

     

    It's just on a few pc's it's not working, could it be those pc's are missing required files (dll)?

     

    Using OpenSSL/Indy, what files do I have to distrbute in my Win32 application?

     

    uses

      SysUtils,
      IdIOHandler,
      IdIOHandlerSocket,
      IdSSLOpenSSLHeaders,
      idHTTP,
      IdContext,
      IdLogBase,
      IdLogFile,
      IdSSLOpenSSL,
      IdHTTPHeaderInfo,
      IdMultipartFormData,
      IdURI;

     

     

     


  14. well, the web app is stateless... then each requirement is the only one... no exists "before"... exists "now" and only this.

    for sure, it's not appreciated but is this...

     

    Exactley why I "hate" to do work using a browser. I wold estimate my workload has increased by 30% over the last two or three years because of "The world is moving to the web".

    Even worse, a lot of software companies no longer offer support by phone, you have to talk to a robot or fill in a contact form, lucky you if you get an answer in only 1-2 days :classic_laugh:

     

    I'm so glad my main program is developed in Delphi by myself 🙂

×