| Class TMessageSocket (unit MsgSock) |
TComponent
| Constructors |
constructor Create(AOwner: TComponent);
constructor RunTimeCreate( AOwner: TComponent;
const PostThreadPriority: TThreadPriority;
const PostSupport: Boolean;
const LowMessageID: Word;
const HighMessageID: Word);| Functions |
procedure BroadcastIdentity;
destructor Destroy;
procedure MessageHandled;
procedure PostMessage(const MessageID: Word;
const DestinationHandle: Hwnd;
const DataPtr: Pointer;
const DataSize: Word);
function PostSupported(const Handle: Hwnd): Boolean;
procedure SendMessage(const MessageID: Word;
const DestinationHandle: Hwnd;
const DataPtr: Pointer;
const DataSize: Word);
procedure Loaded;
function PostHandle(const SendHandle: Hwnd): Hwnd;
procedure SendWindowProc(var Msg: TMessage);
procedure SetHighMessageID(ID: Word);
procedure SetLowMessageID(ID: Word);
procedure SetPostThreadPriority(Priority: TThreadPriority);| Properties |
property HighMessageID : Word
property LowMessageID : Word
property PostSupport : Boolean
property PostThreadPriority : TThreadPriority| Events |
event OnPostedMessage : TMessageEvent
event OnSentMessage : TMessageEvent| Variables |
FHighMessageID : Word;
FLowMessageID : Word;
FOnPostedMessage : TMessageEvent;
FOnSentMessage : TMessageEvent;
FPostSupport : Boolean;
FPostThreadPriority : TThreadPriority;
HandlesList : Pointer;
PostThread : TThread;
PostWindow : Hwnd;
SendWindow : Hwnd;| Constructors |
constructor Create(AOwner: TComponent);-- constructor Create Con Create si crea il componente e la associata SendWindow.
constructor RunTimeCreate( AOwner: TComponent;
const PostThreadPriority: TThreadPriority;
const PostSupport: Boolean;
const LowMessageID: Word;
const HighMessageID: Word);A Design time la PostThread non viene creata e quindi non va distrutta
| Functions |
procedure BroadcastIdentity;
destructor Destroy;-- destructor Destroy Con Destroy si distrugge il componente, la associata SendWindow, l'eventuale PostThread e la lista con gli handler dei componenti da cui sono arrivate risposte alla BroadcastIdentity.
procedure MessageHandled;Si invia un messaggio WM_Datacopy all'handle ottenuto con la PostHandle a partire dall'handle corrispondente ad un componente TMessageSocket, con WParam si trasferisce l'handle del componente da cui proviene il messaggio
procedure PostMessage(const MessageID: Word;
const DestinationHandle: Hwnd;
const DataPtr: Pointer;
const DataSize: Word);Si invia un messaggio WM_Datacopy all'handle corrispondente ad un componente TMessageSocket, con WParam si trasferisce l'handle del componente da cui proviene il messaggio
function PostSupported(const Handle: Hwnd): Boolean;L'uguaglianza dei due handle segnala l'assenza di supporto dei messaggi asincroni
procedure SendMessage(const MessageID: Word;
const DestinationHandle: Hwnd;
const DataPtr: Pointer;
const DataSize: Word);La lista con gli handler dei componenti da cui in precedenza sono arrivate risposte alla BroadcastIdentity va eliminata
procedure Loaded;-- procedure Loaded Al caricamento del componente si crea, se richiesto, la PostThread.
function PostHandle(const SendHandle: Hwnd): Hwnd;-- function PostHandle Dato l'handle di un componente TMessageSocket restituisce il corrispondente handle della PostWindow cui devono essere inviati i messaggi asincroni.
procedure SendWindowProc(var Msg: TMessage);* TMessageSock **************************************************************} {-- procedure SendWindowProc Window procedure della window associata al componente. Essa gestisce direttamente i messaggi sincroni e indirettamente, tramite PostThread, quelli asincroni attivando i corrispondenti eventi. Essa provvede inoltre direttamente alla risposta al messaggio inviato dalla BroadcastIdentity.
procedure SetHighMessageID(ID: Word);
procedure SetLowMessageID(ID: Word);-- procedure SetLowMessageID/SetHighMessageID Tramite esse si blocca l'assegnamento di valori illegali a LowMessageID e HighMessageID.
procedure SetPostThreadPriority(Priority: TThreadPriority);-- procedure SetPostThreadPriority Tramite essa si blocca l'assegnamento di valori illegali a PostThreadPriority
| Properties |
property HighMessageID : Word
property LowMessageID : Word
property PostSupport : Boolean
property PostThreadPriority : TThreadPriority| Events |
event OnPostedMessage : TMessageEvent
event OnSentMessage : TMessageEvent| Variables |
FHighMessageID : Word;
FLowMessageID : Word;
FOnPostedMessage : TMessageEvent;
FOnSentMessage : TMessageEvent;
FPostSupport : Boolean;
FPostThreadPriority : TThreadPriority;
HandlesList : Pointer;Handle della window associata alla PostThread
PostThread : TThread;
PostWindow : Hwnd;Handle della window associata al componente, è usata per identificare il componente stesso
SendWindow : Hwnd;