Jump to content

Bernard

Members
  • Content Count

    48
  • Joined

  • Last visited

  • Days Won

    1

Bernard last won the day on January 30 2021

Bernard had the most liked content!

Community Reputation

18 Good

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Is there a roadmap for the next version?
  2. Bernard

    Open AI Chat

    I have had a bit of fun with the OpenAI chat bot. It is very impressive. Here is a snippet of what I asked. ME : Can you now produce delphi code that has inline variables to count to 10? Certainly! Here is some Delphi code that uses inline variables to count from 1 to 10: procedure CountToTen; var I: Integer; begin for I := 1 to 10 do begin writeln(I); end; end; begin CountToTen; end. This code defines a procedure called CountToTen that uses a loop to count from 1 to 10. The loop variable I is declared as an inline variable using the var keyword. The loop itself is a for loop, which is a common way to count a fixed number of times in Delphi. The loop prints each value of I to the console using the writeln function. You can run this code by saving it to a file with a .dpr extension and then compiling and running it using the Delphi compiler. The output of the program will be the numbers from 1 to 10, each on a separate line. ME: The Delphi language in 10.3 allows more flexibility in the declaration of local variables. The new inline variable declaration syntax allows you to declare the variable directly in a code block (allowing also multiple symbols as usual). Yes, that is correct. In Delphi 10.3 and later versions, it is possible to use inline variable declarations to declare variables directly within a code block, rather than having to declare them at the beginning of the block using the var keyword. This can make the code more concise and easier to read, as the variable declarations are closer to where the variables are used. Here is an example of using inline variable declarations to count from 1 to 10: procedure CountToTen; begin for var I := 1 to 10 do begin writeln(I); end; end; begin CountToTen; end. In this example, the loop variable I is declared using an inline variable declaration within the for loop. The variable is then used within the loop to print each value of I to the console. Inline variable declarations can be used to declare multiple variables at once, as well. For example: procedure CountToTen; begin for var I := 1, J := 1 to 10 do begin writeln(I, ' ', J); end; end; begin CountToTen; end. In this case, the loop declares two inline variables, I and J, which are both initialized to 1. The loop will run 10 times, and on each iteration, the values of I and J will be printed to the console. I hope this helps! Let me know if you have any questions or need further clarification. Me : In your last example there was an error. you cannot have two variables in a for loop. Your first example was correct. You are correct that it is not possible to use multiple variables in the loop control part of a for loop in Delphi. In my previous response, I included an example that attempts to do this, but it is not valid Delphi code. I apologize for the error in my previous response. Here is the correct version of the example, which only uses a single loop variable: procedure CountToTen; begin for var I := 1 to 10 do begin writeln(I); end; end; begin CountToTen; end. This code will correctly count from 1 to 10 and print each number to the console. Again, I apologize for the mistake in my previous response. Please let me know if you have any further questions. The output is not always correct. But it is fun to play with.
  3. Bernard

    Delphi 10.4.1 Socket Error on IDE Start

    Thanks for the fix. Was tearing my hair out on a customer site with no internet connectivity and no mobile. Drove a mile up the road found the fix and it saved the day.
  4. Bernard

    Import .NET Assembly list is empty

    .Net import still producing empty list in latest version "Delphi 11.1"
  5. Thanks I will do that.
  6. Yes this was the issue I was trying to fix and the above code sorts it by detecting the direction of the drag.
  7. I have been looking to find the best way to move rows in a VirtualTreeview and want to check that this is the best way I put this code into the Minimal VT Demo Depending on the drag direction I want to either move the row to position above or below the drop position. It works but it requires setting up a global mouse position vtStartDragPoint. Is there a more elegant way? procedure TMainForm.VSTDragAllowed(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; var Allowed: Boolean); begin Allowed := True; end; procedure TMainForm.VSTDragDrop(Sender: TBaseVirtualTree; Source: TObject; DataObject: IDataObject; Formats: TFormatArray; Shift: TShiftState; Pt: TPoint; var Effect: Integer; Mode: TDropMode); var Nodes: TNodeArray; Attachmode: TVTNodeAttachMode; begin Effect := DROPEFFECT_MOVE; var vtEndDragPoint := Mouse.CursorPos; if vtStartDragPoint.y < vtEndDragPoint.y then Attachmode:= amInsertAfter else Attachmode:= amInsertBefore; Nodes:= vst.GetSortedSelection(false); VST.MoveTo(Nodes[0], Sender.DropTargetNode, Attachmode, false); end; procedure TMainForm.VSTDragOver(Sender: TBaseVirtualTree; Source: TObject; Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode; var Effect: Integer; var Accept: Boolean); begin Accept := True; end; procedure TMainForm.VSTStartDrag(Sender: TObject; var DragObject: TDragObject); begin vtStartDragPoint := Mouse.CursorPos; end;
  8. If the strings are all in one file then notepad++ and a macro or two should work.
  9. Bernard

    RAD Studio 11 Alexandria is now available

    Hi all, So I had been looking forward to some juicy update for this version of Delphi. Looking at the roadmap I thought they have this one in the bag for me. 2 things I was looking forward to were.. 1) Delphi Language Extensions for increasingly powerfull coding 2) Math performance improvements to increase your application speed Do these come in the form of later updates...
  10. Bernard

    RAD Studio 11 Alexandria is now available

    Has there been an improvement in maths performance?
  11. Bernard

    RAD Studio 11 Alexandria is now available

    Is there a list of language enhancements?
  12. Bernard

    Touch Screen VCL

    Thank you both for the feedback. This info should help 🙂
  13. Bernard

    Touch Screen VCL

    Hello Everyone, I have been moving to a keyboard mouse free interface on a machine. I have introduced a Touchscreen interface on a machine running Windows 10 Pro. Issue. On the screen there are a few buttons that jog motors. When you press the key it will not register unless you move (wiggle) your finger about on the screen. So the functionality (on touch screen with finger) I am looking for is... Press and hold button. Motor starts moving. Release button. Motor stops. Thank you.
  14. I came accross an issue when assigning values to an 'array of word' earlier This works var WordArray : TArray<Word>; begin setlength(WordArray, 10); WordArray := [0, 7323, 0, 7224, 0, 7124, 0, 7024, 0, 7004]; end; This works var WordArray : TArray<Word>; begin setlength(WordArray, 10); WordArray := [0, word(73232), 0, 7224, 0, 7124, 0, 7024, 0, 7004]; end; This does not work var WordArray : TArray<Word>; begin setlength(WordArray, 10); WordArray := [0, 73232, 0 ,7224, 0, 7124, 0, 7024, 0, 7004]; end; [dcc32 Error] TestArray.pas(28): E1012 Constant expression violates subrange bounds Can someone explain why the above code is not accepted. For curious reasons. I am stupid I see why I was outside the max range of Word.
×