ワンクリックで
intraweb-framework
Guides and standards for using the Intraweb stateful web framework in Delphi projects.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Guides and standards for using the Intraweb stateful web framework in Delphi projects.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Pragmatic clean code standards for Delphi — concise, direct, no over-engineering
Delphi code review checklist — quality, security, performance, SOLID, memory
Good memory management practices, memory leak prevention and exception handling in Delphi
SOLID implementation patterns for Delphi projects — Repository, Service, Factory, Strategy with constructor injection and interfaces
Implementation of the 23 GoF (Gang of Four) patterns in Object Pascal / Delphi with interfaces, TInterfacedObject and SOLID principles. Covers Creational, Structural and Behavioral patterns.
Standards for using DevExpress (DEXT) components in Delphi VCL applications
| name | Intraweb Framework |
| description | Guides and standards for using the Intraweb stateful web framework in Delphi projects. |
Intraweb is a VCL-for-the-Web framework that allows you to create stateful business web applications in a semantic way similar to creating Desktop applications. When dealing with Intraweb in Copilot or your project, consider the following best practices to ensure maintainability and scalability.
Golden Rule: Do not use classic unit var global variables or Singleton instances for user data, since Intraweb applications run in a Multithread environment with concurrent sessions (each user has their own).
UserSessionUnit.pas unit (ServerController.UserSession Instance).//❌ BAD: Incorrect Usage (Global scope variable serves all sessions, Multithreading problem)
var
LCustomerId: Integer;
//✅ GOOD: Correct Usage (Safe properties of the current context)
UserSession.CustomerId := 10;
The global system parameters, database connection pool and initializations that do not depend on the user must be resolved in the ServerController (IWServerController.pas) object. Avoid injecting heavy dependencies and direct database scopes in TIWAppForm.
In the web context, you should not use blocking code to "wait" for the user, such as ShowMessage, InputBox, or classic VCL ModalResults calls that rely on code locking on the same line.
OnAsyncClick property for DOM updates without full-screen postback.WebApplication.ShowMessage combined with Ajax calls and safe web interface interrupts.//❌ BAD: Blocking the thread on the Intraweb
procedure TIWForm1.iwBtnSaveClick(Sender: TObject);
begin
if Application.MessageBox('Deseja salvar?', 'Confirme', MB_YESNO) = IDYES then
//Rescue code
end;
//✅ GOOD: Using Ajax Async from Intraweb
procedure TIWForm1.iwBtnSaveAsyncClick(Sender: TObject; EventParams: TStringList);
begin
WebApplication.ShowMessage('Registro Salvo via Callback Assíncrono!', smAlert);
end;
It is easy to build monstrous projects on the Intraweb by grouping the entire system rule behind the click (ex: num iwBtnProcessarAsyncClick). Follow the SRP (Single Responsibility Principle) principles:
IWApplication unit (do not use WebApplication.ShowMessage among persistence Services).Use iw concatenated with the native typologies:
TIWButton -> iwBtnSaveTIWEdit -> iwEdtNameTIWLabel -> iwLblTitleTIWComboBox -> iwCmbStatusTIWGrid -> iwGrdItemsTIWRegion -> iwRegContainerDespite being VCL-like, the massive stylizations in the components create large DOMS in the interface. Prefer to define external CSS files using ExtraHeader injection in the form and apply the Css property to the tags of the T visual components TIW* instead of manually painting the color of buttons and fonts via the Object Inspector.