====== Standard-Funktionen und -Methoden ======
===== Nachrichten und Events =====
==== Nachrichten vom Hauptprogramm zum Modul ====
CurrentModule.NotifyModuleI('DemoModeChanged', IfThen(dxBarButton26.Down, 1, 0));
CurrentModule.NotifyModuleS('xxx', string);
Zum Empfangen der Nachrichten müssen im TInsightsModuleMain die virtuellen Methoden überschrieben werden:
insights.module.base - TinsightsModuleBase
procedure NotifyModuleI(const mInfo: string; mInt: Integer); virtual;
procedure NotifyModuleS(const mInfo, mStr: string); virtual;
insights.module.main - TinsightsModuleMain
procedure NotifyModuleI(const mInfo: string; mInt: Integer); override;
procedure NotifyModuleS(const mInfo, mStr: string); override;
==== 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
Result.Events.OnReceiveIDInt := formMain.DoReceiveIDInt;
Result.Events.OnReceiveIDStr := formMain.DoReceiveIDStr;
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;
===== im Module (TinsightsModuleBase) =====
==== Presets ====
* ActivatePresetsByID ++ Info | \\ //Aktiviert einen Preset für das aktuelle Modul über die PresetID// ++
* CurrentConfigToJson ++ Info | \\ //...// ++
* CurrentConfigFromJson
===== TCommon - insights.common =====
* AddButtonToButtonLayoutGroup ++ Info | \\ //AddButtonToButtonLayoutGroup(dxLayoutGroup, 'btn1', 'btn', 1, 1, GroupButtonClicked);// \\
Beschreibung
++
===== Drag & Drop =====
* Um das Drag&Drop von Dateien auf ein Modul zu aktivieren, muss man im Modul TinsightsModuleMain.Create **FInfo.AcceptFiles** auf True setzen.
* Die auf das Formular gedroppten Dateien können dann in der override-Methode **procedure FilesDropped(const mText: string); override;** ausgewertet werden.
procedure TinsightsModuleMain.FilesDropped(const mText: string);
begin
// direkt im Module Code ausführen oder
// den Event OnFilesDropped des formModuleBase (override im eigentlichen Formular) ausführen
if assigned(FConfigForm.OnFilesDropped) then
FConfigForm.OnFilesDropped(mText);
end;
Im ConfigForm kann man dann in InitVars dem OnFilesDropped eine eigene Methode zuweise:
procedure TformConfigForm.InitVars;
begin
inherited;
OnFilesDropped := FilesDropped;
end;
procedure TformConfigForm.FilesDropped(const mText: string);
begin
CodeSite.Send(csmGreen, 'mText', mText);
hsSList(mText, #13#10).ForEachI(procedure(const mStr: string; mInt: Integer)
begin
CodeSite.Send(mInt.ToString, mStr);
end);
end;