AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE IOTA-Frage zur Callbarkeit von Procs unterschiedlicher Notifier untereinander
Thema durchsuchen
Ansicht
Themen-Optionen

IOTA-Frage zur Callbarkeit von Procs unterschiedlicher Notifier untereinander

Ein Thema von r29d43 · begonnen am 25. Mai 2021 · letzter Beitrag vom 26. Mai 2021
 
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: IOTA-Frage zur Callbarkeit von Procs unterschiedlicher Notifier untereinander

  Alt 25. Mai 2021, 20:12
Vermutlich habe ich meine Situation zu ungenau beschrieben. Es geht einfach um alle Procedures und Functions und ebenso alle Variablen, die in einer Notifier-Ableitung jeweils „Public“ deklariert sind, und auf die ich von anderen Teilen meines Packages, also aus z.B. auch anderen Notifiers (die in anderen Units deklariert sind) zugreifen können möchte.

Beispiel: Ein von mir deklarierter Notifier sieht ungefähr so aus

Delphi-Quellcode:
unit readEditorCode_Unit;

interface

uses ToolsAPI, Winapi.Windows, Winapi.Messages, Registry, vcl.ExtCtrls, vcl.Controls, system.Rtti,

TIDENotifier = class(TNotifierObject, IOTANotifier, IOTAIDENotifier)
    Timer1 : TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    ...
  public
    // IOTAIDENotifier
    VarXYZ : integer; // <--------
    procedure FileNotification(NotifyCode: TOTAFileNotification; const FileName: string; var Cancel: Boolean);
    procedure BeforeCompile(const Project: IOTAProject; var Cancel: Boolean); overload;
    procedure AfterCompile(Succeeded: Boolean); overload;
    constructor Create;
    destructor Destroy; override;
    procedure ProcABC; // <--------
  end; { of "TIDENotifier = class() }

var
  NotifierIndex: Integer = -1;

procedure Register;

implementation

uses vcl.Dialogs, system.SysUtils, shellapi, EditServiceNotifer;

procedure Register;
var
  Services: IOTAServices;
begin
  if not Supports(BorlandIDEServices, IOTAServices, Services) then Exit;
  NotifierIndex := Services.AddNotifier(TIDENotifier.Create);
end;

usw. usf..
Wäre dieses TIDENotifier jetzt eine TForm in einem normalen Delphi-Programm, dann würde in der obigen Var-Deklaration direkt unter der TIDENotifier-Deklaration auch noch sowas stehen wie

var
IdeNotifier : TIDENotifier;
NotifierIndex: Integer = -1;

und man könnte aus anderen Units leicht auf diese obige Public-Var "VarXYZ" zugreifen, ala

andereVar := IdeNotifier.VarXYZ;

oder die Public-Proc "ProcABC" callen per

IdeNotifier.ProcABC;

Diese Procs müssen jetzt noch nichtmal irgendwelche normalen Event-Handler sein, die angesprungen werden, wenn bestimmte Ereignisse eingetreten sind. Sondern das sollen auch ganz normale Procs sein dürfen, die einfach mal aus irgendeinem anderen Notifier callbar sein sollen.

Was aber aufgrund der in IOTA-Packages fehlenden <IdeNotifer : TIDENotifer> -Zeile da jetzt leider nicht geht.

Oder wie geht das doch?

Geändert von r29d43 (26. Mai 2021 um 08:13 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz