Metainformationen zur Seite

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
code:defaultmethods [2026/05/06 13:45] – [Drag & Drop] Harald Schmidcode:defaultmethods [2026/08/24 18:54] (aktuell) Harald Schmid
Zeile 1: Zeile 1:
 ====== Standard-Funktionen und -Methoden ====== ====== Standard-Funktionen und -Methoden ======
 +
 +===== Nachrichten und Events =====
 +
 +==== Nachrichten vom Hauptprogramm zum Modul ====
 +
 +<code>
 +  CurrentModule.NotifyModuleI('DemoModeChanged', IfThen(dxBarButton26.Down, 1, 0));
 +  CurrentModule.NotifyModuleS('xxx', string);
 +</code>
 +
 +Zum Empfangen der Nachrichten müssen im TInsightsModuleMain die virtuellen Methoden überschrieben werden:
 +
 +insights.module.base - TinsightsModuleBase
 +<code>
 +    procedure NotifyModuleI(const mInfo: string; mInt: Integer); virtual;
 +    procedure NotifyModuleS(const mInfo, mStr: string); virtual;
 +</code>
 +
 +insights.module.main - TinsightsModuleMain
 +<code>
 +    procedure NotifyModuleI(const mInfo: string; mInt: Integer); override;
 +    procedure NotifyModuleS(const mInfo, mStr: string); override;
 +</code>
 +
 +==== Nachrichten vom Modul zum Hauptprogramm ====
 +
 +Um eine Nachricht aus einem Modul zum Hauptprogramm zu schicken, ruft das Modul die Methode Events.OnReceiveIDInt oder Events.OnReceiveIDStr auf. Diese triggern im Hauptprogramm dann
 +
 +<code>
 +      Result.Events.OnReceiveIDInt := formMain.DoReceiveIDInt;
 +      Result.Events.OnReceiveIDStr := formMain.DoReceiveIDStr;
 +</code>
 +
 +<code>
 +procedure TformMain.DoReceiveIDInt(const mEventStr: string; mID: Integer; var mResult: Integer);
 +begin
 +  if sametext('ModuleIsLoaded', mEventStr) then
 +    mResult := IfThen(FModuleList.ContainsKey(mID), 1, 0);
 +end;
 +
 +procedure TformMain.DoReceiveIDStr(const mEventStr: string; mID: Integer; var mResult: string);
 +begin
 +  if sametext('StartPageInitLog', mEventStr) then
 +    mResult := formInit.cxMemo1.Lines.Text;
 +end;
 +</code>
  
 ===== im Module (TinsightsModuleBase) ===== ===== im Module (TinsightsModuleBase) =====