unit uFormServer; {$mode objfpc}{$H+} interface uses Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, uTICSharedMemory; type // Structure de données partagée TDatas = packed record Text: shortstring; Size: integer; Date: TDateTime; end; PDatas = ^TDatas; { TFormServer } TFormServer = class(TForm) Edit1: TEdit; procedure Edit1Change(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private FPDatas: PDatas; FSMem : TTICSharedMemory; public end; var FormServer: TFormServer; implementation {$R *.lfm} { TFormServer } procedure TFormServer.FormCreate(Sender: TObject); begin FSMem:=TTICSharedMemory.Create('shmemtest',sizeof(TDatas)); FPDatas:=FSMem.Pointer; end; procedure TFormServer.FormDestroy(Sender: TObject); begin FSMem.Free; end; procedure TFormServer.Edit1Change(Sender: TObject); begin // Modification de la mémoire partagée FPDatas^.Text:=Edit1.Text+#0; FPDatas^.Size:=length(Edit1.Text); FPDatas^.Date:=now; end; end.