Jump to content

Search the Community

Showing results for tags 'ide'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Delphi Questions and Answers
    • Algorithms, Data Structures and Class Design
    • VCL
    • FMX
    • RTL and Delphi Object Pascal
    • Databases
    • Network, Cloud and Web
    • Windows API
    • Cross-platform
    • Delphi IDE and APIs
    • General Help
    • Delphi Third-Party
  • C++Builder Questions and Answers
    • General Help
  • General Discussions
    • Embarcadero Lounge
    • Tips / Blogs / Tutorials / Videos
    • Job Opportunities / Coder for Hire
    • I made this
  • Software Development
    • Project Planning and -Management
    • Software Testing and Quality Assurance
  • Community
    • Community Management

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Delphi-Version

Found 48 results

  1. Lorenzo B

    Crash when copy a control CTRL+C

    hello, I have never created FMX applications, I have always used only VCL. Lately however I needed to develop a simple application for windows, which would have been better to do in FMX, but I immediately noticed a very strange problem. Basically if I try to copy any control into the form, as soon as I press CTRL+C the IDE crashes. I am using Delphi 12.2, but I also have Delphi 10.4 installed, I tried to do the same thing in that version, and I have the same problem there too. If instead of using CTRL+C I use Copy from the menu, everything works and I can copy and paste without problems. I thought it could depend on some helper shell that I use (MMX or CnPack) but I checked and I found nothing, but I have not tried to uninstall them! Below I have put the extract of what comes out when the IDE goes into "general protection fault". Does anyone have any ideas about this? [01998939]{coreide290.bpl} EditorActions.TEditorActionLists.EditCopyItemExecute (Line 891, "EditorActions.pas" + 1) + $A [5053EE5A]{vcl290.bpl } Vcl.AppEvnts.TMultiCaster.DoActionExecute (Line 406, "Vcl.AppEvnts.pas" + 5) + $E [5053EE7E]{vcl290.bpl } Vcl.AppEvnts.TMultiCaster.DoActionExecute (Line 410, "Vcl.AppEvnts.pas" + 9) + $3 [01998931]{coreide290.bpl} EditorActions.TEditorActionLists.EditCopyItemExecute (Line 891, "EditorActions.pas" + 1) + $2 [774F400B]{rtl290.bpl } System.Classes.TBasicAction.Execute (Line 18584, "System.Classes.pas" + 3) + $7 [50373752]{vcl290.bpl } Vcl.ActnList.TCustomAction.Execute (Line 284, "Vcl.ActnList.pas" + 19) + $35 [774F3DBD]{rtl290.bpl } System.Classes.TBasicActionLink.Execute (Line 18479, "System.Classes.pas" + 😎 + $7 [504BE60B]{vcl290.bpl } Vcl.Menus.TMenuItem.Click (Line 2627, "Vcl.Menus.pas" + 17) + $7 [504C033F]{vcl290.bpl } Vcl.Menus.DoClick (Line 3859, "Vcl.Menus.pas" + 41) + $4 [504C042B]{vcl290.bpl } Vcl.Menus.TMenu.IsShortCut (Line 3912, "Vcl.Menus.pas" + 38) + $6 [50396E80]{vcl290.bpl } Vcl.Controls.TWinControl.IsMenuKey (Line 12838, "Vcl.Controls.pas" + 😎 + $12 [50396EF5]{vcl290.bpl } Vcl.Controls.TWinControl.CNKeyDown (Line 12858, "Vcl.Controls.pas" + 5) + $4 [5038F15E]{vcl290.bpl } Vcl.Controls.TControl.WndProc (Line 7920, "Vcl.Controls.pas" + 91) + $6 [50390D7A]{vcl290.bpl } Vcl.Controls.TControl.GetStyleName (Line 8986, "Vcl.Controls.pas" + 1) + $8 [504A0704]{vcl290.bpl } Vcl.Themes.TStyleHook.AcceptMessage (Line 7406, "Vcl.Themes.pas" + 23) + $5 [50472B6D]{vcl290.bpl } Vcl.ExtCtrls.TPanelStyleHook.AcceptMessage (Line 12563, "Vcl.ExtCtrls.pas" + 1) + $2 [504A075B]{vcl290.bpl } Vcl.Themes.TStyleHook.HandleMessage (Line 7422, "Vcl.Themes.pas" + 3) + $6 [505CB0D0]{vcl290.bpl } Vcl.Styles.TStyleEngine.HandleMessage (Line 3616, "Vcl.Styles.pas" + 20) + $8 [773D2789]{rtl290.bpl } System.@UStrAsg (Line 27007, "System.pas" + 18) + $0 [5049D170]{vcl290.bpl } Vcl.Themes.TStyleManager.HandleMessage (Line 5892, "Vcl.Themes.pas" + 11) + $11 [50392767]{vcl290.bpl } Vcl.Controls.TWinControl.DoHandleStyleMessage (Line 9956, "Vcl.Controls.pas" + 0) + $F [50394813]{vcl290.bpl } Vcl.Controls.TWinControl.WndProc (Line 11154, "Vcl.Controls.pas" + 178) + $6 [50393CD8]{vcl290.bpl } Vcl.Controls.TWinControl.MainWndProc (Line 10823, "Vcl.Controls.pas" + 3) + $6 [774F4E3C]{rtl290.bpl } System.Classes.StdWndProc (Line 19091, "System.Classes.pas" + 😎 + $0 [504E44F0]{vcl290.bpl } Vcl.Forms.TApplication.IsKeyMsg (Line 13284, "Vcl.Forms.pas" + 25) + $12 [504E458A]{vcl290.bpl } Vcl.Forms.TApplication.IsHintMsg (Line 13305, "Vcl.Forms.pas" + 3) + $2 [504E4797]{vcl290.bpl } Vcl.Forms.TApplication.ProcessMessage (Line 13370, "Vcl.Forms.pas" + 17) + $31 [504E47FE]{vcl290.bpl } Vcl.Forms.TApplication.HandleMessage (Line 13406, "Vcl.Forms.pas" + 1) + $4 [504E4B3D]{vcl290.bpl } Vcl.Forms.TApplication.Run (Line 13545, "Vcl.Forms.pas" + 27) + $3 [00458B02]{bds.exe } bds.bds + $DE regards Lorenzo
  2. I've had a couple of requests for information on what settings etc I use to edit, compile Delphi from VSCode and I'm hoping others can add insights on what they use. I don't have extensive experience with VSCode and moved to it last year for the following reasons, in priority order To work around a lot of problems we encounter with the Embarcadero IDE with our projects To have a consistent IDE between Linux C work and Windows Delphi To trial effectiveness of CoPilot after co-workers said how great it was. Unfortunately I haven't done a clean VSCode setup and notes record from scratch so these aren't definitive notes. I do some C coding on a Linux VM for a real time control app as well as Windows Delphi, hence C/C++ extensions Extensions I have following extensions installed C/C++, C/C++ Extension Pack, C/C++ GNU Global, C/C++ Themes, CMake, CMakeTools, CodeLLDB Delphi LSP, Insert GUID, #region folding, #region tree view GitHub Copilot GitHub Copilot Chat Numbered Bookmarks Pascal, Pascal Formatter SVN Todo Tree WSL XML The following extensions are installed but disabled #region tree view Auto-align Better Align My notes say I installed the following but they aren't there now Delphi Extension Pack which installs Pascal (still installed), Numbered Bookmarks (still installed), Delphi Keymap, Delphi Themes, CodeRunner, MakeFile, Note on CoPilot, I'm a greybeard (although haven't had a beard for many years) and have been amazed at what it suggests, can do and some of the inferences it makes. Sometimes it's mind boggling, eg coming up with a correct suggestion for something you're typing that's not related to anything else in the code nor anything else that you would think was commonplace. You do need to check it carefully though, hallucinations, subtle and not subtle mistakes but well worth the time it can save. Editor Tab colors I use dark themes. It can be difficult to see which tab item in the tab bar belongs to the currently visible file in the editor, especially when jumping to function definitions etc. To add colorization open settings and search for colorcustomization Under workbench: Color Customization click on Edit in settings.json Example settings 1) black inactive tab header with active tab having medium blue background and light blue activeBorder and activeBorderTop "workbench.colorCustomizations": { "tab.activeBackground": "#0091ff56", "tab.activeBorder": "#00aaff", "tab.unfocusedActiveBorder": "#000000", "tab.activeBorderTop": "#00aaff" // Active Tab Top Highlighting }} 2) black tab headers with red activeBorder and activeBorderTop "workbench.colorCustomizations": { "tab.activeBackground": "#11ff001a", "tab.activeBorder": "#ff0000", "tab.unfocusedActiveBorder": "#000000", "tab.activeBorderTop": "#ff0000" // Active Tab Top Highlighting } VSCode for Delphi Programming Here’s Embarcadero’s page on setting up DelphiLSP with Visual Studio Code https://docwiki.embarcadero.com/RADStudio/Athens/en/Using_DelphiLSP_Code_Insight_with_Other_Editors Generation of a .delphilsp.json file from Delphi is controlled through Delphi Options, Editor->Language->Code Insight->Generate LSP Config Type LSP into VSCode settings to to Delphi LSP settings and set the location of the project delphilsp json file Preferences / Settings I don't like the LSP suggestion autocomplete happening when I press enter, for example by default when I type begin and hit enter it replaces it with BeginGlobalLoading To prevent this I leave suggestions on but turn off ENTER as a completion shortcut ( TAB can still be used). Go to settings File > Preferences > Settings > Text Editor > Suggestions > Accept Suggestions On Enter > Select on, off or smart. ("Controls whether suggestions should be accepted on Enter, in addition to Tab [...]" Building via VSCode tasks I suspect creating an extension to build by normal VSCode method would be not difficult to do but haven't had time to investigate. Currently I build using tasks and it's a bit messy but is functional. If you were only building a single DEBUG config using this method it would be simpler as you wouldn’t need to choose the config each time you build or run, we build different configs for different emulations. I was hoping we could somehow easily preselect the emulator config we want to use at the start of a session and then just build/run each time (eg via <shift><ctrl>B) without having to select the config but haven't had time to look into that further. We already had batch files setup for release building done outside of the IDE, ie Crbuild.bat, and use these for building via VSCode. tasks.json needs to go in the .vscode folder, eg if I'm working on the TC7\TC7.dproj project then in TC7\.vscode folder, assuming TC7 is the workspace folder you have open. <shit><ctrl>B will build or you can choose to run your desired task from Tasks: Run Task Sample tasks.json from our wiki /* Tasks definitions for compiling and running TC7 in VS Code. You can use this file for .vscode/tasks.json file in a workspace, or as "User level tasks" (indepedent of workspace). This tasks file allows to compile /run / compile+run the TC7 project using Wrist Bevel Emulator associated with the currently open file. Need to look at how to handle building using different emulators. One option could be to open a file in the emulator folder and then use ${fileDirname}, can set cwd using the following "cwd": "${fileDirname}" See https://go.microsoft.com/fwlink/?LinkId=733558 for the documentation about the tasks.json format. */ { "version": "2.0.0", "inputs": [ { "id": "emulatorFolder", "type": "pickString", "description": "Select the emulator folder", "options": [ "RELEASE", "DEBUG", "abs encoded 12 magnet twin sled PUG", "700 Towers", "725 K4100 wrist bevel", "wrist bevel x86", "K5100 wrist bevel and unloader" ], "default": "K5100 wrist bevel and unloader" } ], "tasks": [ // Compile and then Run the TC7 project of the currently open editor file. // This is like F9 in Delphi. { "label": "(TC7) Compile And Run", /* We use VS code "dependsOn" feature to run 2 tasks in a sequence. This is better than using shell command with && which is not universally supported by PowerShell. */ "dependsOn": [ "(TC7) Compile", "(TC7) Run" ], "dependsOrder": "sequence", "group": { "kind": "build", } }, // (Re)build the TC7 project { "label": "(TC7) (Re)Build", "type": "shell", /* Compile in debug mode using TC7 build tool (calls msbuild under the hood). */ "command": "${workspaceFolder}\\crbuild.bat", "args": [ "-ProductVersion", "23.0", // "-config", "DEBUG", "-config", "${input:emulatorFolder}", "-nolog", "-target", "rebuild" // "-OutDir", "${workspaceFolder}\\Output\\EMUs\\${input:emulatorFolder}" ], "options": { "cwd": "${workspaceFolder}" // "cwd": "${workspaceFolder}/Output/EMUs/${input:emulatorFolder}" }, "group": { "kind": "build", "isDefault": false }, "problemMatcher": { "fileLocation": "autoDetect", //["autoDetect", "${workspaceFolder}"], "pattern": [ { /* Match lines like xxx.pas(123,456) Fatal: some message Deliberately avoid matching summary line like xxx.pas(2201) Fatal: There were 26 errors compiling module, stopping Deliberately avoid xxx.pas(648,15) Error: Found declaration: ... because they only make sense when connected to previous error message, and VS Code reorders them. Test: https://regex101.com/ (ECMAScript flavor) */ "regexp": "^([^\\(]+)\\(([\\d+,]+)\\)\\s+(Fatal|Warning|Error|Note|Hint):\\s+((?!\\(10026\\) There were)(?!There were)(?!Found declaration: )(?!\\(5088\\)Found declaration: ).*)$", "file": 1, // location may be line or line+column. "location": 2, "severity": 3, "message": 4 } /* , { // Match lines like // Compiling xxx.pas "regexp": "^(Compiling) ([^\\s]+)$", "file": 2, "message": 1, "kind": "file" } */ ], /* We need non-empty owner to hide older problems on recompilation. See https://github.com/Microsoft/vscode/issues/50448, https://github.com/microsoft/vscode/issues/66982 */ "owner": "Kinetic Engineering" } }, // Compile the TC7 project { "label": "(TC7) Compile", "type": "shell", /* Compile in debug mode using TC7 build tool (calls msbuild under the hood). */ "command": "${workspaceFolder}\\crbuild.bat", "args": [ "-ProductVersion", "23.0", // "-config", "DEBUG", "-config", "${input:emulatorFolder}", "-nolog", "-target", "build" // "-OutDir", "${workspaceFolder}\\Output\\EMUs\\${input:emulatorFolder}" ], "options": { "cwd": "${workspaceFolder}" // "cwd": "${workspaceFolder}/Output/EMUs/${input:emulatorFolder}" }, "group": { "kind": "build", "isDefault": true }, "problemMatcher": { "fileLocation": "autoDetect", //["autoDetect", "${workspaceFolder}"], "pattern": [ { /* Match lines like xxx.pas(123,456) Fatal: some message Deliberately avoid matching summary line like xxx.pas(2201) Fatal: There were 26 errors compiling module, stopping Deliberately avoid xxx.pas(648,15) Error: Found declaration: ... because they only make sense when connected to previous error message, and VS Code reorders them. Test: https://regex101.com/ (ECMAScript flavor) */ "regexp": "^([^\\(]+)\\(([\\d+,]+)\\)\\s+(Fatal|Warning|Error|Note|Hint):\\s+((?!\\(10026\\) There were)(?!There were)(?!Found declaration: )(?!\\(5088\\)Found declaration: ).*)$", "file": 1, // location may be line or line+column. "location": 2, "severity": 3, "message": 4 } /* , { // Match lines like // Compiling xxx.pas "regexp": "^(Compiling) ([^\\s]+)$", "file": 2, "message": 1, "kind": "file" } */ ], /* We need non-empty owner to hide older problems on recompilation. See https://github.com/Microsoft/vscode/issues/50448, https://github.com/microsoft/vscode/issues/66982 */ "owner": "Kinetic Engineering" } }, // Run the previously compiled TC7 project. // This is like <ctrl><shift><F9> in Delphi IDE. { "label": "(TC7) Run", "type": "shell", "command": "./TC7.exe", "args": [ "/no_scale", "/t:0", "/l:105", "/portrait", "/no_polling_err", "/moveable_display", "/web_debug:..\\Web\\Resources\\" ], "options": { "cwd": "${workspaceFolder}/Output/EMUs/${input:emulatorFolder}" }, "group": { "kind": "build" } } ] } A sample crbuild.bat is as follows @echo off set BUILD_TARGET_TYPE="rebuild" set BUILD_CONFIG=Release set OUTPUT_TO_LOG=Y set OUTPUT_FOLDER_PARAM= rem Set the default Delphi version to compile with, 22.0 => Delphi 11.x, 23.0 => Delphi 12.1 set ProductVersion=22.0 :argsloop IF NOT [%1]==[] ( IF /i [%1]==[-config] ( SET BUILD_CONFIG=%2 shift ) IF /i [%1]==[-ProductVersion] ( SET ProductVersion=%2 shift ) IF /i [%1]==[-Target] ( SET BUILD_TARGET_TYPE=%2 shift ) IF /i [%1]==[-nolog] ( SET OUTPUT_TO_LOG=N ) SHIFT GOTO :argsloop ) set BUILD_TYPE=DEBUG set BUILD_CONFIG_UNQUOTED=%BUILD_CONFIG:"=% if /i ["%BUILD_CONFIG_UNQUOTED:~0,7%"]==["RELEASE"] ( set BUILD_TYPE=RELEASE ) set DELPHI_VARS_PATH="C:\Program Files (x86)\Embarcadero\Studio\%ProductVersion%\bin\rsvars.bat" call %DELPHI_VARS_PATH% rem build using msbuild set MSBUILD_CMD=msbuild TC7.dproj /t:%BUILD_TARGET_TYPE% /p:config=%BUILD_CONFIG% echo Running %MSBUILD_CMD% if /i "%OUTPUT_TO_LOG%"=="Y" ( %MSBUILD_CMD% 2>&1>>".\Output\crbuild.log" ) else ( %MSBUILD_CMD% ) Debugging Not working yet, would like to get it working for simple debugging and have only spent a little bit of time on it. Whether it's overly usable for inspecting values/classes etc though will be interesting - but then we have a lot of problems with Delphi debugging inspection etc of things not working. Have tried using lldb setup via the following VSCode launch.json setting file but lldb won't run the exe (eg running lldb from command line). WinDBG will run the exe but have only briefly tried it { "version": "0.2.0", "configurations": [ { "name": "Launch Delphi TC7 L102 Maxphotonics", "type": "lldb", "request": "launch", "program": "${workspaceFolder}/Output/emus/L102 Maxphotonics/TC7.exe", "args": ["/no_scale /t:0 /l:105 /portrait /no_polling_err /moveable_display /web_debug:..\\Web\\Resources\\"], "cwd": "${workspaceFolder}/Output/emus/L102 Maxphotonics", "stopOnEntry": false, "preLaunchTask": "Echo vars" } ] }
  3. Hi, I've been writing an app that takes a data feed from Stdin, and while I have it working using the code below, which works fine if you are running it on the commandline ie sendstuff | MyApp However I was trying to get the App to run inside the IDE by first piping the output to a file sendstuff > xxx and then in the run params having "< xxx", but it doesnt see the input as Stdin and you get a stream size of -1. Anyone got any ideas how to be ablue to simulate the stdin properly so I can step through the code in the IDE, debugging via writeln really sucks. Its a windows app atm, will eventually want to expand it so its windows/linux. Im using Delphi 12.2 John. var StdInHandle: THandle; StdInStream: TStream; Buffer: TBytes; BytesRead: Integer; begin StdInHandle := GetStdHandle(STD_INPUT_HANDLE); // Ensure the handle is valid if StdInHandle = INVALID_HANDLE_VALUE then begin WriteErr('Invalid standard input handle.'); Exit; end; try // Wrap the handle in a THandleStream for easier reading StdInStream := THandleStream.Create(StdInHandle); while StdInStream.Position < StdInStream.Size do begin SetLength(Buffer, StdInStream.Size); BytesRead := StdInStream.Read(Buffer, StdInStream.Size); // do stuff end;
  4. In some of my TCollectionItem derived classes I override GetDisplayName so that the name shown in the IDE is meaningful for a user. This is very useful. Also when creating code for an event property on the TCollectionItem it uses that display name to name the method which is also very useful. In one of my TCollectionItem classes I am representing the definition of data attributes in a structured record. GetDisplayname was set to return the name of the attribute. To assist users who want to see an overall view of the definition without having to inspect each property at user request I changed the display name to the SQL definition for that attribute. This includes spaces, brackets and commas. This works and is very helpful for the users that requested it, but now the events are named based on the default display name (So instead of having something like CardCodeWriter I have something like TITIODataAttribute64Writer). Is there any way to supply a 'stub' for naming the events that's not the same as the result of the DisplayName?
  5. I write property and component editors for the classes I define so that they can be edited in the IDE. When editing an object in the IDE's object inspector a standard TPersistent only exposes properties which are not events. However, some TPersistents (notably anything deriving from TCollectionItem) do expose events. I would like to have events declared on TPersistent derived objects editable, but I cannot discover what I need to do in my property / component editors so that the IDE will expose them. I would very much appreciate a link to a sample component / property editor that does this. Thanks in advance!
  6. Ali Dehban

    ChatGPT plug-in for RAD Studio.

    Hello, everybuddy. Recently I made a plug-in for Delphi to use ChatGPT inside the IDE. The main service is ChatGPT but it's actually multi-AI support, you can get responses from three different sources, compare and decide. I hope this can be helpful and accelerate your work. Repository: https://github.com/AliDehbansiahkarbon/ChatGPTWizard Key features: - Free text question form. - Dockable question form. - Inline questions(in the editor). - Context menu options to help you to find bugs, write tests, optimize code, add comments, etc... - Class view. - Predefined Questions for class view. - History to save your tokens on OpenAI ! - Fuzzy string match searches in the history. - Animated letters(Like the website). - Proxy server options. - Supports Writesonic AI (https://writesonic.com) - Support YouChat (https://you.com) Short Video 1: Short Video 2 - Inline Questions: Full Video (ver. 2.0):
  7. Hello 🙂 At the beginning: thanks to all of you for many very informative discussions on this forum. When working in D7 in most cases Ctrl+F1 was the right answer to most problems. But now I'm more and more frequently saved by the info provided by members of Delphi-PRAXiS 🙂 And now my actual pain: I'm using Delphi 11 CE ver 28.0. While working with quite simple code I have encountered two strange, fully reproducible problems. The description and related code are below. Additionally all the details and both problems are presented within a short video: https://drive.google.com/file/d/147uSLerfnu-3DZME1jHQ8nsnlAdqtNRi (the code is compiled without optimization). Maybe someone wise can shed some light on the sources of those problems and how to get rid of them (excluding "Embarcadero" problem) ? All the best! --------- >>> The example task: The square matrix TConfusionMatrix = array[0..x,0..x] of Extended is created in two ways (please see the code below): - with primitive functions such as Cmtx33() or Cmtx22() which place the right values in the right cells of the matrix, or - by splitting string representation of the matrix (with function MtxStr2ConfusionMatrix). Example string representation of the 3x3 matrix is: '[0,1,2, 3,4,5, 6,7,8]' (rows concatenation, spaces and brackets do not matter). Created matrices should represent structure "array of rows" and oboth methods should fill the matrix in the same way. For example, if cmtx and cmtx2 are of TConfusionMatrix type then after calls: MtxStr2ConfusionMatrix('[43,0,1,0,45,0,2,0,44]', cmtx, class_cnt); cmtx2:=Cmtx33(43,0,1,0,45,0,2,0,44); variables cmtx and cmtx2 should include the same values in the same elements of matrices (among those which were modified by both functions). Additionally class_cnt will include the size of the row/column of the matrix (in this example class_cnt will be equal 3). It is assumed that strings representing the matrix will always have correct structure and that will include the right number of elements to create a square matrix (so we do not need to think about such things here). >>> Encountered problems: 1.) The first problem ("the inspection problem"): Depending on the order of calls to MtxStr2ConfusionMatrix() and Cmtx33() the results of the former function differ. Sometimes after the call of MtxStr2ConfusionMatrix() the created matrix is displayed in inspection window as it would be (improperly) transposed. But after next call of Cmtx33() the matrix set by MtxStr2ConfusionMatrix() starts to look properly. Further comparison of matrices created with both functions indicate that they are equal and related code execution reacts accordingly. 2.) The second problem ("the wtf problem"): But sometimes - for exactly the same data - the matrix being the result of MtxStr2ConfusionMatrix() permanently stays improperly transposed and the matrices created with both methods are recognised as different. Then this breaks the logic of the code. I'm blind or something but I can't see any obvious reason for such behaviour. Results from primitive functions Cmtx33(), Cmtx22() are always correct and presented properly. ---------- >>> The code: const MAX_CLASSES = 50; type TConfusionMatrix = array[0..MAX_CLASSES,0..MAX_CLASSES] of Extended; //transforms square matrix in the form of string to a table of rows; //cmtx_str = '[0,1,2,3,4,5,6,7,8]' => [[0,1,2][3,4,5][6,7,8]] //(row and column of index=0 are left for other purposes) function MtxStr2ConfusionMatrix(cmtx_str :String; var cmtx :TConfusionMatrix; var class_cnt :Word) :Boolean; var i,j :Word; splittedString : TStringDynArray; res :Boolean; begin res:=True; try RemoveChar(cmtx_str,' '); RemoveChar(cmtx_str,'['); RemoveChar(cmtx_str,']'); class_cnt:=0; splittedString:=SplitString(cmtx_str, ','); if Length(splittedString)<4 then res:=False else begin if Frac(Sqrt(Length(splittedString)))<0.01 then class_cnt:=Round(Sqrt(Length(splittedString))) else res:=False; end; if class_cnt>=2 then begin EraseConfusionMatrix(cmtx,class_cnt,MAX_CLASSES,0); for i:=1 to class_cnt do for j:=1 to class_cnt do cmtx[i,j]:= StrToFloat(splittedString[i+(j-1)*class_cnt - 1]); end; except res:=False; end; result:=res; end; function CompareConfusionMatrices(c1,c2 :TConfusionMatrix; class_cnt :Word) :Boolean; var i,j :Integer; ok :Boolean; begin ok:=True; for i:=1 to class_cnt do for j:=1 to class_cnt do if c1[i,j]<>c2[i,j] then begin ok:=False; break; end; result:=ok; end; function Cmtx33(c11,c12,c13,c21,c22,c23,c31,c32,c33 :LongInt) :TConfusionMatrix; begin cmtx[1,1]:=c11; cmtx[1,2]:=c12; cmtx[1,3]:=c13; cmtx[2,1]:=c21; cmtx[2,2]:=c22; cmtx[2,3]:=c23; cmtx[3,1]:=c31; cmtx[3,2]:=c32; cmtx[3,3]:=c33; result:=cmtx; end; function Cmtx22(c11,c12,c21,c22 :LongInt) :TConfusionMatrix; begin cmtx[1,1]:=c11; cmtx[1,2]:=c12; cmtx[2,1]:=c21; cmtx[2,2]:=c22; result:=cmtx; end; procedure RemoveChar(var s :String; ch :Char); var d :String; i,ls :LongInt; begin d:=''; ls:=Length(s); i:=1; for i:=1 to ls do if s[i]<>ch then d:=d+s[i]; s:=d; end; procedure EraseConfusionMatrix(var cmtx :TConfusionMatrix; num_classes, max_classes :Word; value :Integer); var i,j :Word; begin if num_classes<=max_classes then begin for i:=0 to num_classes do for j:=0 to num_classes do cmtx[i,j]:=value; end else ShowMessage('Confusion Matrix can not be greater than '+IntToStr(max_classes)+'x'+IntToStr(max_classes)); end; ===EOT===
  8. Hello, Under Windows 11, Delphi (Seattle, Rio, ...) Each "Step over" of a 32 bit app. (VCL and/or console) triggers a full redraw of the "Local variables" on the IDE. And of course, the more the list is important the more the repaint is "painful"... Any ideas how to avoid this ? thanks for you help
  9. alogrep

    IDE stopped saving to *.~

    Hi I noticed that the IDE (suddemnly) does not save the current Unit to the *.~ when I edit and save a Unit. What should I do to restore this feature? Thanks
  10. Dave Millington (personal)

    ANN: Parnassus Parallel Debugger

    A new IDE plugin aimed at helped debugging multithreaded apps! https://blogs.embarcadero.com/new-ide-plugin-parnassus-parallel-debugger/ The plugin: Displays all thread call stacks next to each other Lets you step over, run, etc a thread by itself, not the whole process Shows CPU usage by thread Editor integration to see where threads are executing, so you can easily see what other threads are in the same area of code and more... This has taken me five years to write! That said, most of that was downtime due to working too much time to spend time on this - this release is the result of working weekends since August. It's version 1, and I plan to add some more features over the next few months.
  11. Hi all. For someone could be a silly question but important for me. Today I've purchased Athens, and usually I work with Sydney. I have a lot of very big projects made with Sydney and moving them to Athens will be a long path ( a lot of 3rd parties libraries to install). Can I install Athens on the same PC where Sydney works ? If YES, are there some types of attention to be kept? At the moment I've also Code Gear RAD Studio 2007 for very old projects not ported to Sydney which live without problems with Sydney.
  12. I usually work in low light and it gets a little difficult sometimes to see certain characters when using the dark theme for the IDE. (Some of the colored fonts like blue/red/green get fuzzy looking under my laptop's 1366x768 screesize) I thought it would be a quick and simple method of Ctrl+Wheel-up/down, but that did not work. Is there a quick shortcut to enlarge/decrease the font at will? TIA.
  13. I am using Delphi 11.3 I type a single quote in my IDE editing a pascal unit, and the quote does not appear until I press the space character. What is happening? More than this if I press a capital C after the single quote, I get a C with a tail underneath it. Very strange.
  14. I moved from D10.4.2 (IIRC) to the D11.3 CE. I have already posted about issues with File Version, but here's something that may be correct or not. This is a DLL. When I view the Project pane in the IDE, it only shows the project, it does not show the related (or any other) *.pas files. There seems no way I can make it show them. For the record, the PAS file is uDbXConnect.pas: And further, in GIT version control, it only shows the *.dproj, I cannot, within the IDE at least, add any other files (just as I cannot in IDE>Project. Previously I was using subversion (yes, I know not as good, but at least it worked and was simple). I cannot get subversion to work with 11.3 - that's another issue. Here's what I see in GIT Commit, only the dproj file. Note I can view all of the non-versioned files, but I cannot seem to get them to add to the GIT version control/repository. Am I supposed to be doing things with GIT outside the IDE, that kinda makes no sense if we are assuming this is Version Control with IDE integration. As noted, with subversion previously, it was relatively easy, this just doesn't seem to work (as I expected it to). Does anyone have a handle on what I should do to set this up correctly or can point me to appropriate documentation? Thanks......
  15. Hi. Delphi 11.3. Open an existing project, press DEL Key twice (to delete 2 letters) and the IDE goes fishing: keystrokes or mouse totally disabled. Need taskbar to end it. Anybody experienced this? Funny thing: I put IDE in the serach of this newsgroup and get zero results.
  16. See [RSP-41949] LSP does not work when project includes modified file found in the search path - Embarcadero Technologies for details. Has anyone been bitten by this? Code Insight now works in my PyScripter project. I thought that cyclic unit dependencies may be the cause and spent quite a bit of time reducing them. I guess, that this was time well spent, but it was not the source of the LSP failures.
  17. Philip Vivier

    Library path problem on IDE

    When I click Tools->Options->Language->Delphi->Library -> [...] button, the whole system hangs. Does not matter on which [...] button I click. I need to stop Delphi every time with task manager. I am using windows 11 and Delphi 1.2.
  18. I've known of CodeSite for years, but I'm afraid not about CodeSite. And now that I know more, I could really put its logging to use rather than my cobbled-together and code-modifying techniques. Except, the GetIt installer runs and installs CodeSite to the catalog repository just fine, but it doesn't add it to the IDE (11.3). I have also run the installer from the catalog repository -- it's just a Windows installer -- but that also yields no love. I'm guessing the package version, from September 2022, doesn't know about this version of the IDE. It's Windows 10, and I give the OS admin-level credentials in my install efforts. Is there anything to be done? Thanks in advance for hints.
  19. Delphi was behaving fine in regards to startup until recently, when the IDE 'freezes' upon startup, after loading all design time packages. The splash screen shows the added component packages loading, and then nothing. If I set BDS.exe to run as admin it opens as before. There must be(maybe?) a file somewhere that a security setting has changed (maybe I did without knowing in a previous IDE session). I have re-installed some of the components, with no change. I do not plan to re install Delphi - I will wait for 11.3... Any suggestions or feedback is appreciated.
  20. Hi, An hour ago I've tried out CnPack's "Bug reporter" IDE enhancement. It did not go well, after I've clicked "send Email". (Lot's of AV errors, ca 100 / sec while tried to close Delphi 7.) Since than: If I click the green |> arrow or [F9] to start debugging >> it compiles the EXE fine, than starts the EXE normally! (without attaching the debugger process.) Tried to: - restart PC - disable some CnPack modules But nothing helps 😞 - Where is the Delphi "error LOG file"?
  21. I'm using the IDE dark theme and when I press F1 for help my eyes hurt (really) from the glare of help white pages! I uninstalled help in the hope of IDE will use the online help at https://docwiki.embarcadero.com but that didn't work, (the funny thing here is that I had to uninstall the whole thing not just help, no option for help uninstall only ) checked command line params but nothing there. Anyone knows a way to do this? PS: In case you may think online docwiki pages are also white?, I use the Dark Reader browser extension: https://i.ibb.co/py2qyxB/dt.png
  22. I have a Delphi 10.4.2 project that has issues when clicking the file [lighttheme.pas] in the Projects window on the right. It won't open the file. I loads information into the Object Inspector but the file doesn't create a tab at the top. This file does not an associated .DFM. Its a unit file that holds procedures. The only way i can get it to open where i can edit it is to close my project then choose File | Open...and open the file that way. I have also tried to remove it and re-add it to my project with no change. Something is stuck somewhere. Any ideas?
  23. Clément

    Project manager feature

    Hi, I was wondering if there's a feature (or plugin) that would allow me to right click a folder and add a new unit direct in that folder. For example: When I right-click "task.code" folder, I would like the context menu to display two new options "add new unit" and "add new existing unit". When selecting "add new unit", "Unit1.pas" would be created under "task.code" allowing me to renaming that unit directly and start working on it. Do you know if there's such a tool? I'm using D11.1 TIA, Clément
  24. Whenever a new Delphi version is out, there is this small tedious job I do of customizing the Toolbar. I add some speedbuttons (Exit, Close All, Compile project, Project Options and a few more), and I delete a few others that I don't use. (I never found a smart way to copy the settings from a previous Delphi version to a new version. The Migration Tool never works. This time I tried migrating from 10.4 to 10.5. Version 11 wasn't listed, so I guessed 10.5 actually stands for 11. Anyway. no luck there). So I added some and removed some. Then restarted Delphi. The result, in short: removal works, but adding does not. So removing for once is removing forever. Well, actually, adding speedbuttons to the toolbar works during a session. Restart and they are gone again. Anyone else seeing this? (shall i submit a bug report to QC?) Is there a solution or workaround?
  25. Hi all. In this thread I will post new information about my expert called RAD & Installer. Please make new thread for your support questions and keep this thread for announcements only. Official website, more info and download: http://rad-installer.com/ About RAD & Installer is a RAD Studio expert for creating NSIS and Inno Setup installers. It integrates NSIS (Nullsoft Scriptable Install System) and Inno Setup with Embarcadero RAD Studio IDE (Delphi and C++ Builder) and allows you to create and build NSIS and Inno Setup projects right within RAD Studio getting all benefits of common integrated environment. Key Features New project types: NSIS Project and Inno Setup Project Full integration into RAD Studio IDE, supports: RAD Studio 2009 - 2010 RAD Studio XE - XE8 RAD Studio 10 Seattle, 10.1 Berlin, 10.2 Tokyo, 10.3 Rio, 10.4 Sydney Works in C++ Builder and Delphi - all Editions including Starter and Community! Build installers directly with other project types NSIS Project and Inno Setup Project Properties (with MSBuild) Syntax highlighting (coloring) Code Insight Code Completion Code Insight Parameter Hints Code Insight Code Hints Navigation Bars Complete linkage to the project group build process Quick jump from Messages window Code Insight Code Browsing (Ctrl + Click) Find Declaration support Hints and tips for writing scripts Code optimizations Opening script files (Go To file) Live Templates support Creating custom Live Templates Plug-ins recognition (* NSIS Project only) Full version control system support Dynamic help system Cross-version compatibility for all RAD Studio versions Based on MSBuild projects Easy to be integrated into many popular build (automation) systems: Jenkins, Maven, Apache Ant, Hudson, Gradle, FinalBuilder... Here is picture of the IDE editing the Inno Setup script: IDE I will post new versions announcements in this thread, but I want to keep it clean so I start with latest version only (I am sorry my previous thread with old changelog was somehow lost). Get the full changelog here: http://rad-installer.com/changelog.html Version 1.0.2.4 Release: 2020-10-12 We have completely reworked how IntelliSense in Inno Setup works. IntelliSense is now [Section] sensitive, so only items valid for speficic section are shown when Ctrl + Space is performed in that section. That reduces searching and increases speed of work. Cleared, updated and removed deprecated IntelliSense items for Keywords, Flag,s Parameters, Attributes, etc. Support for NSIS 3.06 and 3.06.1 (see changes Support for GI for NSIS 4.10.01 (Webka) and Graphical Installer Wizard 1.15.01 (see changes) IntelliSense items for are now reordered so the most used items are on the top of the list. The order of appearance in section: Inno Setup Pascal (like MsgBox(), ...) -> Classes (like TButton, ...) -> Procedures and Functions (User defined) -> Variables (Global, Local, Parameters) -> Members (#Symbols, types, consts) The order of appearance outside of [Code] section: Keywords (like AppName, ...) in [Setup] or Various constants (like {pf}, MB_OK, ...) [non-Setup] -> Flags (each section has its own set of them) -> Parameters (each section has its own set of them) -> Procedures and Functions (User defined) -> Variables (Global, Local, Parameters) -> Members (like #Symbols, ...) Fixed parsing warnings from Inno Setup ISCC compiler (especially if multiple colons were present in the warning) Support for Inno Setup 6.0.5 See changes) Support for Graphical Installer for Inno Setup 6.0.5 (Wonka) and Graphical Installer Wizard 1.15.01 (see changes) Fixed Inno Setup #preprocessors: added missing #redim, fixed typo in #ifexists Improved parsing variables in Inno Setup - up to 10 variables per line in var block Added missing IntelliSense items for NSIS + fixed few typos Inno Setup Compiler: corrected parsing warnings: Warning: A message named "..." has not been defined for the "..." language. Will use the English message from Default.isl. Warning: Message name "..." in "...path...to...ISL...file..." is not recognized by this version of Inno Setup. Ignoring. Inno Setup New Project templates now (again) use 'OutputDir=Output' so running the setup directly with Ctrl+F9 is working.
×