Metainformationen zur Seite
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
TCommon - insights.common
- AddButtonToButtonLayoutGroup Info
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;