delphi
Skill15 starsChanged 42 days agoMITView on GitHub
Expert Delphi / Object Pascal assistance covering VCL, FireMonkey, RTL, and enterprise desktop software. Use when maintaining or modernizing Windows desktop and cross-platform native applications.
4 other projects use a version of this.
Adopted by
Most recently taken up by
- danieleteti/delphi-ai-skillstheir own version, first seen Nov 7, 2026
- danieleteti/delphimvcframeworktheir own version, first seen Nov 2, 2026
- ericwood8/skillstheir own version, first seen Nov 1, 2026
- gensyn-ai/gensyn-delphi-skillstheir own version, first seen Apr 21, 2026
Other versions4 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 4
- danieleteti/delphimvcframework★ 1.4ksame name
- danieleteti/delphi-ai-skills★ 23same name
- gensyn-ai/gensyn-delphi-skills★ 16same name
- ericwood8/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository350 other files it gives its agents.
- airflowSkill
- catboostSkill
- claudeSkill
- comfyuiSkill
- cursor-aiSkill
- dalleSkill
- daskSkill
- dbtSkill
- deepseekSkill
- fastaiSkill
- geminiSkill
- github-copilotSkill
- huggingfaceSkill
- jaxSkill
- jupyterSkill
- kerasSkill
- langchainSkill
- lightgbmSkill
- llamaindexSkill
- llamaSkill
- matplotlibSkill
- midjourneySkill
- mistralSkill
- mlflowSkill
- nltkSkill
- numpySkill
- ollamaSkill
- openai-gptSkill
- opencvSkill
- pandasSkill
- perplexitySkill
- plotlySkill
- polarsSkill
- pytorchSkill
- raySkill
- scikit-learnSkill
- seabornSkill
- spacySkill
- sparkSkill
- stable-diffusionSkill
- tensorflowSkill
- vaexSkill
- weights-biasesSkill
- whisperSkill
- xgboostSkill
- api-gatewaySkill
- clean-architectureSkill
- cqrsSkill
- domain-driven-designSkill
- event-drivenSkill
- event-sourcingSkill
- graphqlSkill
- grpcSkill
- hexagonalSkill
- microservicesSkill
- modular-monolithSkill
- monolithSkill
- rest-apiSkill
- sagaSkill
- serverlessSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 101
Use explicit try..finally destruction blocks:
- Very specific: line 123
Always Wrap Object Allocations in try...finally: Guarantee that .Free executes to prevent memory leaks in non-ARC Windows runtimes.
- Distinctive: line 124
Use FireDAC for All Database Operations: Standardize on FireDAC.
- Very specific: line 126
Use Parameterized Queries: Always use ParamByName() to prevent SQL injection vulnerabilities.
- Distinctive: line 131
Use global variables in units: Keep state encapsulated inside classes and records.
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Delphi / Object Pascal
Delphi (RAD Studio) and Free Pascal (Lazarus) keep Object Pascal alive. It is famous for Single EXE deployment and instant compilation.
When to Use
- Rapid Application Development (RAD) for Windows Desktop: Building native Windows desktop applications with rich VCL graphical controls.
- Legacy Enterprise Maintenance: Modernizing and maintaining established corporate desktop software suites.
- Single-Binary Zero-Dependency Native Compilation: Producing fast, standalone native binaries that run without external runtime frameworks.
- High-Performance Database Clients: Interfacing with enterprise SQL databases via native FireDAC data access components.
Quick Start
program HelloWorld;
{$APPTYPE CONSOLE}
uses
System.SysUtils;
begin
try
Writeln('Hello from Delphi Object Pascal!');
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.Core Concepts
Object Pascal Strong Typing & Class Architecture
Clean, readable object-oriented architecture with explicit interfaces:
unit OrderProcessor;
interface
type
IOrderService = interface
['{8F3D1E1C-3A62-47CF-A98B-7D12A9E32049}']
function ProcessOrder(const OrderId: Integer; const Amount: Double): Boolean;
end;
TOrderService = class(TInterfacedObject, IOrderService)
public
function ProcessOrder(const OrderId: Integer; const Amount: Double): Boolean;
end;
implementation
function TOrderService.ProcessOrder(const OrderId: Integer; const Amount: Double): Boolean;
begin
// Business logic execution
Result := Amount > 0.0;
end;
end.Visual Component Library (VCL) & FireMonkey (FMX)
- VCL: Native Windows-only components wrapping direct Win32/Win64 APIs.
- FireMonkey (FMX): Cross-platform GPU-accelerated UI framework targeting Windows, macOS, iOS, and Android.
FireDAC Unified Database Connectivity
High-performance data access layer:
var
Query: TFDQuery;
begin
Query := TFDQuery.Create(nil);
try
Query.Connection := FDConnection1;
Query.SQL.Text := 'SELECT * FROM Customers WHERE Balance > :MinBalance';
Query.ParamByName('MinBalance').AsCurrency := 1000.0;
Query.Open;
// Process records
finally
Query.Free;
end;
end;Common Patterns
Safe Memory Management with Try..Finally
Problem: Object memory leaks in non-ARC desktop platforms when exceptions occur.
Solution:
Use explicit try..finally destruction blocks:
procedure ProcessCustomerList;
var
List: TStringList;
begin
List := TStringList.Create;
try
List.Add('Customer 1');
List.Add('Customer 2');
List.SaveToFile('customers.txt');
finally
List.Free;
end;
end;Best Practices
Do:
- Always Wrap Object Allocations in
try...finally: Guarantee that.Freeexecutes to prevent memory leaks in non-ARC Windows runtimes. - Use FireDAC for All Database Operations: Standardize on FireDAC; deprecate legacy BDE and dbExpress components.
- Target 64-Bit Windows (Win64): Ensure new applications compile for 64-bit to utilize modern memory spaces and system libraries.
- Use Parameterized Queries: Always use
ParamByName()to prevent SQL injection vulnerabilities.
Don't:
- Ignore compiler hints and warnings: Treat Delphi compiler warnings with priority; they frequently identify uninitialized variables.
- Use global variables in units: Keep state encapsulated inside classes and records.
- Block the UI thread with long database queries: Execute heavy queries asynchronously using
TTask.Runfrom the Parallel Programming Library.
Troubleshooting
| Error | Cause | Solution |
Access Violation at address ... (EAccessViolation) | Attempting to access an uninstantiated or freed object pointer. | Verify object was created with .Create before calling methods. |
[dcc32 Fatal Error] F2084 Internal Error | Compiler cache corruption or circular unit dependency. | Clean build directory and resolve circular references in uses clauses. |
Memory Leak Detected in ReportMemoryLeaksOnShutdown | Object created without matching .Free call. | Ensure every object creation is guarded with a try..finally Free; end; block. |
References
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

