AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klassenlose Procedure per String-Parameter aufrufen

Ein Thema von Harry Stahl · begonnen am 14. Sep 2017 · letzter Beitrag vom 15. Sep 2017
 
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.558 Beiträge
 
Delphi 12 Athens
 
#1

Klassenlose Procedure per String-Parameter aufrufen

  Alt 14. Sep 2017, 19:08
Im Internet findet man verschiedene Tipps, wie man Prozeduren oder Funktionen anhand deren Namen per Parameter aufrufen kann, vgl. z.B. hier:

http://www.swissdelphicenter.ch/en/showcode.php?id=799

Diese Tipps setzen aber voraus, dass die Funktionen Teil einer Klasse sind.

Nun habe ich aber verschiedene Prozeduren in einer unit (ohne Form) und ohne, dass diese Teil einer Klasse wären.
Bislang ist mir nur eingefallen, die Prozeduren manuell während der Initialisierung der Unit in einer Stringliste dieser Unit zu registrieren, so dass ich diese registrierten Prozeduren dann später über den String-Namen aufrufen kann (vgl. z.B. hier: http://delphi.cjcsoft.net/viewthread.php?tid=43267).

Ich bin aber (wie immer) zu faul und möchte mir ein wenig Tipparbeit ersparen. Gibt es hier keine Möglichkeit, die klassenlose Procedure zur Laufzeit anhand ihres Names in dieser Unit zu finden und aufzurufen?

Noch kurz ein paar Worte zum Sinn und Zweck des ganzen: Ich habe für ein Multi-Device-Projekt teilweise für Desktop- und Mobilanwendung unterschiedliche Forms, welche nur die Form selber halten, aber keinen Source-Code (mal abgesehen von der einen Prozedur, welche zur Laufzeit OnklickEvents an die Bedienelemente bindet und die Verbindung zum MessageManager herstellt).
Wenn man in diesen Forms auf einen Schalter oder ein Menü klickt, wird per MessageManager eine Botschaft versendet (generiert aus dem Namen des Buttons, Menu, usw), welche unterschiedliche Units abhören (die sich i.d.R. untereinander nicht kennen). Damit die Unit weiß, welche Prozedur sie ausführen soll, erhält Sie in der Message den Namen als String-Parameter übergeben.

Vorteil des ganzen ist, dass ich mein Basis-Programmcode quasi mit unterschiedlichen Oberflächen (und natürlich Plattformen) ausführen kann. Außerdem kann ich einige von den (Source-Code freien) Forms als "Blaupause" verwenden, für andere Programme, welche ähnliche Bedienoberflächen haben.
  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 20:42 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