Jump to content

Lajos Juhász

Members
  • Content Count

    828
  • Joined

  • Last visited

  • Days Won

    11

Posts posted by Lajos Juhász


  1. TApplication.CreateForm in the first place must create the instance (when the formcreate is called) and just after can assign it to mainform.

     

    You can do

     

    TMainForm.FormCreate(Sender: TObject);

    begin

     .....

      MakeSurface(self);

     

    For me it's always a code smell when somebody uses a global variable or reference.

    • Like 1

  2. 2 hours ago, DelphiUdIT said:

    PAY ATTENTION: SqlQuery1 I think dynamically allocates Fields[1] and therefore your POINTER will be invalid after a new QUERY is executed.

    You should read the code: SQLQuery1.Fields[1].asInteger integer value of the field converted to a pointer.

     

    The problem here is that the id is not going to be a continous enumeration starting from 0.

    • Thanks 1

  3. For me this is working with VCL. I set the timer to 250ms.

     

    unit Unit1;
    
    interface
    
    uses
      Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
      Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls;
    
    type
      TDirection = (dinone, diup, didown, dileft, diright);
    
      TForm1 = class(TForm)
        box: TShape;
        Timer1: TTimer;
        procedure Timer1Timer(Sender: TObject);
        procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
      private
        { Private declarations }
        fDirection: TDirection;
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    
    
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      case key of
        ord('W'): fdirection:=diup;
        ord('A'): fDirection:=diLeft;
        ord('D'): fDirection:=diRight;
        ord('X'): fDirection:=diDown;
      else
        fDirection:=diNone;
      end;
    end;
    
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      case fDirection of
        diup : box.Top:=box.top-10;
        didown : box.Top:=box.Top+10;
        dileft: box.left:=box.Left-10;
        diright: box.Left:=box.Left+10;
      end;
    end;
    
    end.

     

    • Like 1

  4. You cannot hook up DB controls to an unidirectional query but that should not stop you from inspecting and saving it. 

     

    I am using FireDAC with ODBC driver from the first version (to connect to Informix database). The data is never corrupted. The only problem I am aware is when writing to database FireDAC ignores the database locale and uses the default Windows locale for non-unicode language to write data. 

    • Like 1

  5. I believe you would have to do that in Word:

     

    (WINDOWS) Microsoft Word 2010, 2013, 2016:
    1. Go to “File”
    2. Select “Info”
    3. Click on “Check for issues”
    4. Click on “Inspect document”
    5. In the “Document Inspector” dialog box, select the check boxes to choose the types of hidden content that you want to be inspected.
    6. Click “Remove All”
    7. Click “Close”
    8. Save the document.

     


  6. 24 minutes ago, omnibrain said:

    Doesn't matter in this case, because it's just an example, but definitily something to consider if it plays a role.

     

    Today it's an example. Tomorrow you or somebody else sees the code and use it in a real application. Copy paste errors are always a fun thing to search for or debug.

    • Like 1

  7. 29 minutes ago, dummzeuch said:

    (apart from reporting this bug to Embarcadero, of course).

    If it's Embarcaderos fault it's tough to report it. I have had a situation when the IDE gave me the dialog to report a bug, it generates everything including the call stack. Even after submiting it I was asked for a test case (in my case it is impossible to give) while the call stack should help a developer to locate the error. 

    In this case the first step should be to generate a call stack to see where to search for the bug.

×