![]() |
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 |
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). |
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:
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.
Screen.Forms/FormCount
|
AW: Form über String aufrufen
Zitat:
Denn er scheint nicht einmal die kompletten Grundlagen zu kennen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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