Profile cover photo
Profile photo
Paul TOTH
About
Communities and Collections
View all
Posts

Post has attachment
Hello,

On some projects I put an invisible TMemo on the main form to keep notes about things todo...

is there any extension that could attach a kind of floating memo with some text saved in a Unit1.txt file for instance ?

Thanks
Photo

Post has attachment
Hello

I have a question on the IDE behavior.

You can define a layout for the design time and an other for debug time...but I offently move the IDE at debug time to let me see a console window for instance (I use that a lot for debug purpose)...and each time I restart the application, the IDE returns to it's original place.

I can save the layout for good, but I need that only for a couple of hours, not permanently. The default layout is just fine most of the time.

Don't you think that the window should remain at the same place ? at least until I close Delphi or load an other project ? Then it will reload the saved layout.
-
votes visible to Public
42%
It's perfect like it is
33%
You're right
13%
I don't care
11%
What are you talking about ?

Hello there,

can someone explain me the C syntax below (from sqlite)

SQLITE_PRIVATE void (*sqlite3OsDlSym(sqlite3_vfs *, void *, const char *))(void);

I don't understand why the function is inside "()" and followed by (void) ?!

Thanks

Feature request

https://quality.embarcadero.com/browse/RSP-18827

it's possible to ignore exceptions in the IDE global settings, but it could be comfortable to set this features by project or much better directly inside the code

{$IGNORE_EXCEPTION ON}
try
test_rights;
except
on e: Exception;
Assert(e.message = 'insuffisant rights');
end;
{$IGNORE_EXCEPTION OFF}

see for instance
https://github.com/tothpaul/Delphi/blob/master/XML/Execute.XML.Tree.pas#L755

The IDE is lost when you define something like

{code}
type
TRecord = record
dummy : record
any: Integer;
end;
end;
{code}

code completion (Ctrl+Shift+C) or code navigation (Ctrl+Shift+Up/Down) do not work anymore

was the IDE changed in Tokyo 10.2.1...I did not have such error with 10.2

[50065837]{rtl250.bpl } System.@DynArrayClear (Line 35287, "System.pas" + 49) + $0
[5005A42E]{rtl250.bpl } System.ErrorAt (Line 5669, "System.pas" + 3) + $4
[5005A472]{rtl250.bpl } System.Error (Line 5680, "System.pas" + 1) + $7
[50065837]{rtl250.bpl } System.@DynArrayClear (Line 35287, "System.pas" + 49) + $0
[50063F19]{rtl250.bpl } System.@FinalizeArray (Line 32162, "System.pas" + 168) + $0
[50063DD4]{rtl250.bpl } System.@FinalizeRecord (Line 31840, "System.pas" + 25) + $0
[5005F940]{rtl250.bpl } System.TObject.CleanupInstance (Line 17152, "System.pas" + 30) + $0
[5005F725]{rtl250.bpl } System.TObject.FreeInstance (Line 16921, "System.pas" + 1) + $2
[50060016]{rtl250.bpl } System.@ClassDestroy (Line 18289, "System.pas" + 0) + $2
[21E8EA74]{delphicoreide250.bpl} PasMgr.TPascalScanner.Destroy (Line 2014, "PasMgr.pas" + 3) + $6
[5005F8A8]{rtl250.bpl } System.TObject.Free (Line 16985, "System.pas" + 1) + $4
[500A0F04]{rtl250.bpl } System.SysUtils.FreeAndNil (Line 26606, "System.SysUtils.pas" + 2) + $2
[21E93712]{delphicoreide250.bpl} PasMgr.TPascalCodeManager.Destroy (Line 3799, "PasMgr.pas" + 3) + $3
[21E94D6C]{delphicoreide250.bpl} PasMgr.TPascalClassManager.Destroy (Line 4364, "PasMgr.pas" + 2) + $6
[21E995B0]{delphicoreide250.bpl} PasMgr.TUnitManager.Destroy (Line 6392, "PasMgr.pas" + 3) + $6
[50068B9B]{rtl250.bpl } System.TInterfacedObject._Release (Line 38262, "System.pas" + 7) + $7
[5006786D]{rtl250.bpl } System.@IntfCopy (Line 37270, "System.pas" + 19) + $0
[51C096A9]{delphicoreproide250.bpl} PascalParserNodes.TUnitInfoModel.NewModule (Line 1249, "PascalParserNodes.pas" + 23) + $F
[208EC41A]{coreide250.bpl} ModuleExplorer.TModuleExplorer.ModuleChanged (Line 229, "ModuleExplorer.pas" + 11) + $24
[20304F38]{coreproide250.bpl} ModExplorerForm.TCodeExplorerEditorHooks.DoDockFormUpdate (Line 525, "ModExplorerForm.pas" + 22) + $B
[20304DDE]{coreproide250.bpl} ModExplorerForm.TCodeExplorerEditorHooks.DockFormUpdated (Line 476, "ModExplorerForm.pas" + 5) + $4
[2030520A]{coreproide250.bpl} ModExplorerForm.TCodeExplorerEditorHooks.EditorViewActivated (Line 554, "ModExplorerForm.pas" + 0) + $2
[2078EF6F]{coreide250.bpl} EdScript.TIDEEditorServices.EditorViewActivated (Line 3724, "EdScript.pas" + 7) + $B
[2079DA8F]{coreide250.bpl} EditorBuffer.TEditBuffer.ViewActivated (Line 3585, "EditorBuffer.pas" + 9) + $18
[2079FCC6]{coreide250.bpl} EditorBuffer.TEditView.ActivateModule (Line 4769, "EditorBuffer.pas" + 10) + $6
[207D44A4]{coreide250.bpl} EditorForm.TEditWindow.ActivateModule (Line 2473, "EditorForm.pas" + 8) + $12
[207D8D3C]{coreide250.bpl} EditorForm.TEditWindow.ViewSelect (Line 4173, "EditorForm.pas" + 11) + $3
[207D9202]{coreide250.bpl} EditorForm.TEditWindow.ShowView (Line 4340, "EditorForm.pas" + 14) + $9
[207D3216]{coreide250.bpl} EditorForm.TEditWindow.SelectBuffer (Line 1976, "EditorForm.pas" + 74) + $6
[207D11E9]{coreide250.bpl} EditorForm.TEditWindow.InsertView (Line 1147, "EditorForm.pas" + 12) + $8
[207D0B79]{coreide250.bpl} EditorForm.TCustomEditView.AfterConstruction (Line 724, "EditorForm.pas" + 3) + $12
[50060039]{rtl250.bpl } System.@AfterConstruction (Line 18295, "System.pas" + 2) + $5
[2079FB38]{coreide250.bpl} EditorBuffer.TEditView.Create (Line 4717, "EditorBuffer.pas" + 56) + $25
[2079BC17]{coreide250.bpl} EditorBuffer.TEditBuffer.OpenNewView (Line 2556, "EditorBuffer.pas" + 13) + $E
[2079CBCC]{coreide250.bpl} EditorBuffer.TEditBuffer.ShowEditor (Line 3033, "EditorBuffer.pas" + 5) + $6
[206D1AF6]{coreide250.bpl} SourceModule.TSourceModule.ShowEditor (Line 605, "SourceModule.pas" + 2) + $E
[21E7D772]{delphicoreide250.bpl} CommonPasReg.TPascalFileOpenHandler.FileOpen (Line 519, "CommonPasReg.pas" + 6) + $6
[208A09D8]{coreide250.bpl} DocModul.TFilterList.OpenFile (Line 807, "DocModul.pas" + 36) + $14
[004A09C7]{bds.exe } AppMain.TAppBuilder.FileOpenDialog (Line 2590, "AppMain.pas" + 31) + $2
[004A0E19]{bds.exe } AppMain.TAppBuilder.FileSave (Line 2670, "AppMain.pas" + 1) + $0
[5016DADF]{rtl250.bpl } System.Classes.TBasicAction.Execute (Line 16861, "System.Classes.pas" + 4) + $1
[50A9DD6E]{vcl250.bpl } Vcl.ActnList.TCustomAction.Execute (Line 260, "Vcl.ActnList.pas" + 19) + $35
[5016D94B]{rtl250.bpl } System.Classes.TBasicActionLink.Execute (Line 16771, "System.Classes.pas" + 2) + $B
[50AB5160]{vcl250.bpl } Vcl.Controls.TControl.Click (Line 7440, "Vcl.Controls.pas" + 7) + $7
[50B33A8C]{vcl250.bpl } Vcl.ComCtrls.TToolButton.Click (Line 21620, "Vcl.ComCtrls.pas" + 0) + $0
[50AB5633]{vcl250.bpl } Vcl.Controls.TControl.WMLButtonUp (Line 7581, "Vcl.Controls.pas" + 7) + $6
[50AB4C0A]{vcl250.bpl } Vcl.Controls.TControl.WndProc (Line 7326, "Vcl.Controls.pas" + 91) + $6
[50AB4844]{vcl250.bpl } Vcl.Controls.TControl.Perform (Line 7104, "Vcl.Controls.pas" + 10) + $8
[50AB8E92]{vcl250.bpl } Vcl.Controls.GetControlAtPos (Line 9890, "Vcl.Controls.pas" + 4) + $75
[50AB8F5A]{vcl250.bpl } Vcl.Controls.TWinControl.ControlAtPos (Line 9913, "Vcl.Controls.pas" + 13) + $E
[50AB4844]{vcl250.bpl } Vcl.Controls.TControl.Perform (Line 7104, "Vcl.Controls.pas" + 10) + $8
[50AB9028]{vcl250.bpl } Vcl.Controls.TWinControl.IsControlMouseMsg (Line 9937, "Vcl.Controls.pas" + 15) + $29
[50AB95DE]{vcl250.bpl } Vcl.Controls.TWinControl.WndProc (Line 10106, "Vcl.Controls.pas" + 104) + $6
[50B35BB1]{vcl250.bpl } Vcl.ComCtrls.TToolBar.UpdateButtonState (Line 22898, "Vcl.ComCtrls.pas" + 11) + $27
[50B35BF2]{vcl250.bpl } Vcl.ComCtrls.TToolBar.UpdateButtonStates (Line 22909, "Vcl.ComCtrls.pas" + 3) + $4
[50B38620]{vcl250.bpl } Vcl.ComCtrls.TToolBar.WndProc (Line 24494, "Vcl.ComCtrls.pas" + 104) + $6
[50AB8D9C]{vcl250.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 9867, "Vcl.Controls.pas" + 3) + $6
[5016E844]{rtl250.bpl } System.Classes.StdWndProc (Line 17365, "System.Classes.pas" + 9) + $2
[50C60BB3]{vcl250.bpl } Vcl.AppEvnts.TMultiCaster.GetAppEvents (Line 655, "Vcl.AppEvnts.pas" + 1) + $7
[50C01963]{vcl250.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 10610, "Vcl.Forms.pas" + 23) + $1
[50C019A6]{vcl250.bpl } Vcl.Forms.TApplication.HandleMessage (Line 10640, "Vcl.Forms.pas" + 1) + $4
[50C01CD9]{vcl250.bpl } Vcl.Forms.TApplication.Run (Line 10778, "Vcl.Forms.pas" + 26) + $3
[0050688A]{bds.exe } bds.bds (Line 212, "" + 7) + $7

Post has attachment
Hello,

After my TinyPNG unit, now a tiny XML parser.

the test procedure at the bottom of the unit is the best documentation available :)

https://github.com/tothpaul/Delphi/blob/master/XML/Execute.XML.Tree.pas

Post has attachment
I hate the way Delphi handles UTF8 String

Why the IDE do not shows the difference between "é" and "é" in two UTF8String !

DN and Info.DN are of the same type, UTF8String :

type
TInfoPS = record
DN: UTF8String;
function Equals(const Info: TInfoPS): Boolean;
end;

function TInfoPS.Equals(const Info: TInfoPS): Boolean;
begin
Result := Info.DN = DN:
end;
Animated Photo

Post has attachment
Hello,

I've played with PNG format to build a tiny PNG Loader

and it works well :)

https://github.com/tothpaul/Delphi/tree/master/TinyPNG

Hello,

Do you know any way to extends Windows 7 desktop outside the screen ?

I'm using a w7 under VirtualBox with a DPI to 144 to test my application on high resolution, but the desktop resolution is too low and my application is shrunken.

The VM use my host resolution, I'de like to set a much higher virtual size.
Wait while more posts are being loaded