AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Button.OnClick Procedure aus DB lesen?
Thema durchsuchen
Ansicht
Themen-Optionen

Button.OnClick Procedure aus DB lesen?

Ein Thema von strom · begonnen am 2. Aug 2018 · letzter Beitrag vom 2. Aug 2018
Antwort Antwort
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#1

Button.OnClick Procedure aus DB lesen?

  Alt 2. Aug 2018, 05:22
Hallo,

ist es möglich die OnClick (Event) aus einer DB zu lesen?


Vielleicht so?
Button1.OnClick := Tabel1.FieldByName('Funktion').Text;
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.158 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Button.OnClick Procedure aus DB lesen?

  Alt 2. Aug 2018, 07:09
Delphi ist keine Skriptsprache. Die Ereignis-Behandler müssen von dir geschriebener Code sein der sich in der erstellten .exe-Datei befindet. Du kannst hingegen in der Datenbank hinterlegen welche der von dir geschriebenen Handler benutzt werden soll.

Delphi-Quellcode:
var
   onClickName: String;
begin
   onClickName := Tabel1.FieldByName('Funktion').AsString;
   
   if (onClickName = 'spezial') then
      Button1.OnClick := onClickSpezial
   else if (onClickName = 'super-spezial') then
      Button1.OnClick := onClickSuperSpezial
   else
      Button1.OnClick := onClickNormal;
end;
  Mit Zitat antworten Zitat
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#3

AW: Button.OnClick Procedure aus DB lesen?

  Alt 2. Aug 2018, 08:06
ah

super, danke für Deine Hilfe
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.205 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Button.OnClick Procedure aus DB lesen?

  Alt 2. Aug 2018, 08:51
Hmmm. Ich hab das noch nicht ausprobiert, aber das da
http://www.malcolmgroves.com/blog/?t...nymous-methods
behandelt Anonyme Funktionen wie Daten. Und Daten bekomme ich in die Datenbank +kann sie von dort lesen.

Das da ist auch hilfreich:
https://stackoverflow.com/questions/25500770/is-there-a-way-in-delphi-to-assign-an-anonymous-method-to-a-button-event?rq=1


Solltest du da was ausprobieren, lass es uns wissen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#5

AW: Button.OnClick Procedure aus DB lesen?

  Alt 2. Aug 2018, 11:06
Zitat:
ist es möglich
JaNein.

Methoden sind Zeiger. (eigentlich Zwei, aber wenn du das Objekt kennst, dann nur noch Einer)
Die Namen sind "eventuell" in der TypeInfo und RTTI hinterlegt und man kann darüber den Zeiger bekommen.
Delphi-Referenz durchsuchenSystem.TMethod (Code = der Methoden-Zeiger und Data = die Object-Referenz, was in der Methode dann das Self ist)

Das Delphi-Referenz durchsuchenTObject.MethodAddress und Delphi-Referenz durchsuchenTObject.MethodName nutzt z.B. der DFM-Reader (Delphi-Referenz durchsuchenTReader/Delphi-Referenz durchsuchenTWriter) und es geht natürlich nur für Methoden, die published sind.
Und dann gibt es noch Einiges in den Units TypInfo und RTTI.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 2. Aug 2018 um 11:09 Uhr)
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.443 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Button.OnClick Procedure aus DB lesen?

  Alt 2. Aug 2018, 11:41
http://www.malcolmgroves.com/blog/?t...nymous-methods
behandelt Anonyme Funktionen wie Daten. Und Daten bekomme ich in die Datenbank +kann sie von dort lesen.
Na ja stenggenommen werden nicht die Methoden in der DB gespeichert sondern nur Keys dazu. Zur Kompilierzeit muss der Code also schon bekannt sein.

Wenn man wirklich den Code speichern möchte, dann geht das IMHO nur wenn man eine Art Plugin-System implementiert was man mit DLLs oder BPLs machen kann und dann kann man diese dann als BLOB speichern. (Wobei ich mir jetzt keine sinnvoll Anwendung vorstellen kann)

Oder man implementiert halt doch eine Scriptsprache ins Programm und speichert die Scripts.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#7

AW: Button.OnClick Procedure aus DB lesen?

  Alt 2. Aug 2018, 15:56
Wenn man ins Programm PascalScript von RemObjects einbaut, sollte sowas möglich sein.

Man braucht dann halt ein Script, dass man kompilieren und ausführen kann. Diese Scripts kann dan auch Ereignisroutinen enthalten, die man diversen Komponenten im Programm zuweisen kann.

Ein ganz banales Beispiel, dass dem DataSet meines Editors 'ne AfterScroll-Routine zuweist wäre:
Delphi-Quellcode:
program Test;

procedure MachWas(DataSet: TDataSet);
begin
  Status(DataSet.Fields.Fields[0].AsString);
end;

begin
  DataSet.AfterScroll := @MachWas;
end.
Ab jetzt wird beim Scrollen durch die Datenmenge in der Statuszeile der Inhalt des ersten Feldes des aktuellen Datensatzes angezeigt.

Das kann man analog auch mit jeder anderen Komponenten machen.

Wenn man also in der Datenbank ein Script hat, das sowohl die Ereignisroutinen, als auch deren Zuweisung enthält, kann man das gewünschte umsetzen.
  Mit Zitat antworten Zitat
Antwort Antwort


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 11:48 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