Jump to content

Pat Foley

  • Content Count

  • Joined

  • Last visited

  • Days Won


Pat Foley last won the day on August 9 2023

Pat Foley had the most liked content!

Community Reputation

51 Excellent

1 Follower

Technical Information

  • Delphi-Version
    Delphi 12 Athens

Recent Profile Visitors

3528 profile views
  1. Pat Foley

    RAD Studio 12 Update 1 IDE Instability

    I had a path issue to my mycontrolLibrary. I fixed by making a hard path to it. Though this is on Windows and not ARM it still may useful. Is check if the IDE can "see" the namespaces in uses clause by hovering over them. If not try a syntax check or compile after manually loading unit not "seen" until the IDE shows the blue tag. After a few days the need to 'prime' the IDE went away and no more small empty blue tags.
  2. Pat Foley

    How to debug a Not Responding program element

    Pre-make may be a bad 'fork' 😞 Otherwise saving the treeview and and reloading the treeview could allow a game to be restarted at the level the game was when tree was saved. Rather than needing to play the game at lower levels each time starting the game. Loading the game saved at higher level would save the users time. Or does the menu already have this feature?
  3. Pat Foley

    How to debug a Not Responding program element

    One. Just load a pre made with TV.LoadFromFile(wellformedTV.txt) and hookup as needed. Two. Your onidle is missing the pausing and userpause Booleans used in other Lemmix repros. So a Pause can not exit the onidle event.
  4. Pat Foley

    How to debug a Not Responding program element

    What does the SetInfo do on the TV.onclick? I populate my treeview childnodes by finding all the menuitems at startup. Then assign the menuitems onclick to the TV. The TV then follows the menu settings. Emba has Space Rocks game on Getit. Jim M uses a list to animate the rocks as they created and destroyed. Treeview has savetofile and loadfromfile. How is the game paused? is it ctrl- C? In the future pause the game not the IDE, insert a breakpoint, and restart the game. The IDE will then pause at breakpoint.
  5. Pat Foley

    Access violation installing a component

    Also the 290 version should be given a new guid unless using the '280' source is wanted. A new interface needs a new guid.
  6. Pat Foley

    TTabControl OwnerDraw Styled

    I didn't know about tabcontrols. Just started styles last month. Here's my stab at it using 'Tabber' for the symbol of the TabControl Sender vs 'control' and an assignable TStylefont enum. procedure TForm7.TabControl1DrawTab(Tabber: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); var TabStr:String; Pt : TPoint; R: TRect; TabUnderMouse:Integer; JohnFontcolorStyle: TStyleFont; begin with Tabber do begin Pt := ScreenToClient(Mouse.CursorPos); TabUnderMouse := IndexOfTabAt(Pt.X, Pt.Y); // Setting default font color to normal JohnFontcolorStyle := sfTabTextActiveNormal; if (TabUnderMouse = TabIndex) and Active then JohnFontcolorStyle := sfTabTextActiveHot; if Active then JohnFontcolorStyle := sfTabTextActiveNormal; if TabUnderMouse = TabIndex then JohnFontcolorStyle := sfTabTextInActiveHot; with Canvas do begin R := Rect; Font.Color := TStyleManager.ActiveStyle.GetStyleFontColor (JohnFontcolorStyle); if TabIndex = 0 then Font.Style := [fsStrikeout]; TabStr := (Tabber as TTabControl).Tabs[TabIndex]; // ? Brush.Style := bsClear; DrawText(Handle, PChar(TabStr), Length(TabStr), R, DT_SINGLELINE or DT_VCENTER or DT_CENTER); end; end;
  7. Pat Foley

    Set form in read only mode

    Set the DB to read only in viewing mode to prevent inadvertent record changes. Have the user log in when updating a record.
  8. Pat Foley

    Insert/Repalce image in MS Word Document

    Inside of Word record a macro doing your steps. Then use the terms found in Word's macro source in your Delphi source.
  9. uses Vcl.Forms, MyUnit, //From TrPartUnits.bpl, if remove, breakpoint works in win32 and win64 AppForm in 'AppForm.pas' {Form2}; {$R *.re Based on your info when the myunit is removed it compiles. Delphi 12 in debugger mode even with update often shows the dissembler first under a tab. To avoid compile the program and start the program using the browser in "attach to process" under the run button to start the executable and press f7-f9 buttons if hung up in the dissembler. If blue dots not lined up with the source check path.
  10. Reading between the lines means using a string for finding a form in runtime with the Screen. Or Each Library should just launch its own forms or class var singleton form as needed.
  11. program App; uses Vcl.Forms, MyUnit, //From TrPartUnits.bpl, if remove, breakpoint works in win32 and win64 = please don't put MyUnit here AppForm in 'AppForm.pas' {Form2}; {$R *.res} begin Application.Initialize; //Breakpoint here: on win32 is ok, but 64 the breakpoint dont stop! Application.MainFormOnTaskbar := True; Application.CreateForm(TForm2, Form2); Application.Run; end. If myunit is available in a library, it can't also be in the program's dpr. Access the Library myunit in each unit uses clause as needed! If the unit uses clause doesn't see myunit adjust the path. Putting my myunit in apps dpr will hide these issues and defeats the goodness of modular construction methods.
  12. Pat Foley

    A gem from the past (Goto)

    Here is a dangerous example of Goto causing endless loop you never finish this gamebook's first edition. In the gamebook You Can Be The Stainless Steel Rat by Harrison. There's an example of a typo goto 290 should be goto 190. https://stainlesssteelrat.fandom.com/wiki/You_Can_Be_The_Stainless_Steel_Rat
  13. Pat Foley

    Manual HDPI setting for VCL window

    I try to use EM units say roughly a font of 72 would be one inch high, on a laser printer of 600 dpi you get one inch high lettering. Using CSS you can set the sizing to show the ... when the ... rule is set. Somehow windows can make small images when hovering over an icon or medium size images in task view. What's neat the image is animated. Now I just right-size the form and use units of "fat-finger" on custom control resize events. This resize event helps on the 4k machines.
  14. Pat Foley

    x87 vs SSE single truncation

    Say with periodic stuff like TDateTime Trunc works well if it understood that right now is yesterday date + 0.xxxx fraction so Trunc not supposed be rounding up to zero when negative. Conversely On the Unit circle a truncated 1/4 turn needs one turn added to get a "reading" of 1 Now to turn back that turn added, we remove that turn when looking at "negative values" (-1/4 - 1) = Trunc(-1.25) = -1.
  15. Pat Foley

    Viewing All the Digits of Pi in Real Time with Delphi

    In you missed it Two Pie day or Tau June 28 is coming! https://tauday.com/tau-manifesto Article about using Tau in schools.