Jump to content

David Hoyle

Members
  • Content Count

    135
  • Joined

  • Last visited

  • Days Won

    1

David Hoyle last won the day on February 5 2019

David Hoyle had the most liked content!

Community Reputation

48 Excellent

1 Follower

Technical Information

  • Delphi-Version
    Delphi 10.3 Rio

Recent Profile Visitors

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

  1. David Hoyle

    Need help finding the IDesigner

    No. What is the context under which you are trying to do what you are attempting. To do what I've described you need to write an Open Tools API BPL or DLL and add it to the IDE. This will then give you access to the designer once you have an IOTAModule reference to your form.
  2. David Hoyle

    Need help finding the IDesigner

    I'm not sure I understand correctly what you are trying to do here but the Open Tools API can provide you access to the IDesigner from INTAFormEditor.GetFormDesigner. You can get the INTAFormEditor by querying the IOTAModule interface for the form.
  3. David Hoyle

    Generic Drawing Engine

    Thank you @David Heffernan and @Eugine Savin. Clearly, I was too ambitious. I tried a few other things with generics and then abandoned them when they didn't work either. I decided to change the underlying coordinate system to Single from Integer and I'm using TPointF and TRectF and the real-time rendering in my application, even with VCL styles, does not seem to have diminished. Still need to test on an old machine with a crappy graphics card but I think this will allow me to do what I want going forwards.
  4. Check your IDEs Environment Variables (in the Options dialogue) and see if it is redefining the PATH variable to something that stops the IDE being able to search for the BPLs.
  5. I'm trying to create a rending engine that can use different canvas's where the coordinate system could Integer or Single. This is so that the differences between the output systems can be abstracted at the canvas level. I've tried to used generics (see code below) but it will not compile. I don't know whether I'm trying to be too ambitious or whether I'm missing something. The below code is a test project that shows the issue. Any help would be appreciated. Note: The below code is not intended to run as it's missing some implementations, I'm just looking for it to compile. Program IndirectGenerics; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; Type IPen<T> = Interface Function GetWidth : T; Procedure SetWidth(Const AValue : T); Property Width : T Read GetWidth Write SetWidth; End; ICanvas<T> = Interface Function GetPen : IPen<T>; Property Pen : IPen<T> Read GetPen; End; TConcreteCanvas<T> = Class(TInterfacedObject, ICanvas<T>) Strict Private FPen : IPen<T>; Strict Protected Function GetPen : IPen<T>; Public Constructor Create; End; TConcreteDrawingEngine<T> = Class Strict Private FCanvas : ICanvas<T>; Strict Protected Public Constructor Create(Const Canvas : ICanvas<T>); Procedure DoSomething; End; { TConcreteCanvas<T> } Constructor TConcreteCanvas<T>.Create; Begin // FPen := End; Function TConcreteCanvas<T>.GetPen: IPen<T>; Begin Result := FPen; End; { TConcreteGantt<T> } Constructor TConcreteDrawingEngine<T>.Create(Const Canvas: ICanvas<T>); Begin FCanvas := Canvas; End; Procedure TConcreteDrawingEngine<T>.DoSomething; Begin FCanvas.Pen.Width := 1; // <= Does not compile as it thinks T is not Integer End; Var IntegerCanvas : ICanvas<Integer>; IntegerDrawingEngine : TConcreteDrawingEngine<Integer>; SingleCanvas : ICanvas<Single>; SingleDrawingEngine : TConcreteDrawingEngine<Single>; Begin Try IntegerCanvas := TConcreteCanvas<Integer>.Create; IntegerDrawingEngine := TConcreteDrawingEngine<Integer>.Create(IntegerCanvas); //... SingleCanvas := TConcreteCanvas<Single>.Create; SingleDrawingEngine := TConcreteDrawingEngine<Single>.Create(SingleCanvas); //... Except On E: Exception Do Writeln(E.ClassName, ': ', E.Message); End; End.
  6. David Hoyle

    Tools API - Changing Key Assignment

    Ctrl+D has never worked for me but then again I'm still using WordStar/Classic IDE key bindings which might grab Ctrl+D for moving the cursor.
  7. David Hoyle

    Tools API - Changing Key Assignment

    I already do this with GExperts so I know it can be done unfortunately I'm on my work machine so cannot show you. The menu item is now hidden underneath View | Editor I think but it is there somewhere. I use Ctrl+Alt+D so I need to disable this shortcut first (disassembly view I think) and then I can assign it for Format Source.
  8. David Hoyle

    Tools API - Changing Key Assignment

    Use GExperts to define an alternate keybinding for this rather go through the rigmarole of creating an expert to do this.
  9. Install WordFence (the are free and paid version) and keep the number of plug-ins to a minimum.
  10. David Hoyle

    cannot install Konopka VCL Controls from GetIt

    Did you install from the ISO? If so you need to reconfigure GetIT for on-line use: `GetItCmd.exe -c=useonline ` (http://docwiki.embarcadero.com/RADStudio/Sydney/en/Release_Notes).
  11. David Hoyle

    Grep search empty window with 10.4.1

    My mistake @dummzeuch I thought it was dependant upon JCL/JVCL. I must be thinking of something else.
  12. David Hoyle

    Grep search empty window with 10.4.1

    @dummzeuch I think the only thing that stops me compiling it myself is setting up all the JCL/JVCL dependencies unless that has changed.
  13. David Hoyle

    ExtractFileDrive bug

    The \\?\UNC is for unicode path up to 32K in length so you can work around the MAX_PATH limit. I wouldn't expect ExtractFileDrive to work with these as you would add the \\?\UNC prefix before calling CopyFileW() etc. There is similar syntax for drive letter. Have a look at the Microsoft Documentation (Looks like they've change something in Windows 10 recently as well - https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-copyfile
  14. @limelect Yes, BPLs can see to be easier to work with but bear in mind that if you code something wrong you can make the IDE you are working in unstable. I always use a secondary IDE using a -rNewRegKey command line and then I can kill of that session if I do something wrong.
  15. Her e's my code from last night. Add Comp To Form.zip
×