Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Form über String aufrufen (https://www.delphipraxis.net/188965-form-ueber-string-aufrufen.html)

Sugar 22. Apr 2016 16:10

Form über String aufrufen
 
Sorry, mir ist kein besserer Titel eingefallen...

Mein Anliegen: Ich möchte dem Benutzer erlauben Programmteile (Formulare) per Kurztext aus einem EIngabefeld heraus aufzurufen. Mein Ansatz ist, ich speichere den Benutzernamen, sein individuelles Kürzel unter dem er diesen Programmteil (das Formular) als Direktaufruf speichern möchte und den Namen des Formulars in einer Tabelle jeweils als String.

Müller, KDSTAMM, KDSTAMMFORM
Meier, KD,KDSTAMMFORM
Beckenbauer, REP, FORMANPAFORM
...

Ich weiß nun nicht, wie kann ich mit dem Namen der Form als String auch diese Form aufrufen? Ich muss irgendwie wohl den String umwandeln...

Kann mir einer helfen?

VG
Heiko

himitsu 22. Apr 2016 16:19

AW: Form über String aufrufen
 
Entweder du hast im Programm eine Liste/Array, wo Klassennamen (als TFormClass) und dein Bezeichner abgelegt sind.

Wenn man direkt den Klassennamen verwendet, kann man auch über die RTTI suchen, aber da sollte man aufpassen, daß nicht Blind irgendwas aufgerufen werden kann, womit man dann z.B. Sicherheitsmechianismen umgehen oder einfach nur alles verschrotten kann.



Alt, aber geht: Man kann auch in einer EXE Prozeduren "exportieren", so wie bei einer DLL, die sich dann über HInstance (das EXE-Handle) mit GetProcAddress aufrufen lassen.
Nur das was du exportiert hast, kann dann als Funktion aufgerufen werden.
Deine Aufrufe/Proceduren brauchen dann nur eine einheitliche Signatur (Parameter/Rückgabewert).

Uwe Raabe 22. Apr 2016 18:08

AW: Form über String aufrufen
 
Das kommt auch darauf an, ob die alle Forms schon beim Programmstart erzeugst, oder dies erst bei Bedarf machst. Im ersten Fall kannst du über
Delphi-Quellcode:
Screen.Forms/FormCount
das passende Form suchen. Bei dynamisch erzeugten Forms musst du erst die Formklasse kennen. Die IDE sorgt aber dafür, daß die Formklasse durch voranstellen eines T aus dem Formnamen ableitbar ist.

rNoob 22. Apr 2016 20:39

AW: Form über String aufrufen
 
Zitat:

Zitat von Sugar (Beitrag 1336379)
Sorry, mir ist kein besserer Titel eingefallen...
Ich weiß nun nicht, wie kann ich mit dem Namen der Form als String auch diese Form aufrufen? Ich muss irgendwie wohl den String umwandeln...
Kann mir einer helfen?

Ich glaube mit euren sehr vertieften Antworten erschlagt ihr den Themenersteller ein wenig - oder sogar komplett.
Denn er scheint nicht einmal die kompletten Grundlagen zu kennen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz