Konzeptfrage: Frames vererben und identifizieren

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
charlytango
Beiträge: 845
Registriert: Sa 12. Sep 2015, 12:10
OS, Lazarus, FPC: Laz stable (2.2.6, 3.x)
CPU-Target: Win 32/64, Linux64
Wohnort: Wien

Konzeptfrage: Frames vererben und identifizieren

Beitrag von charlytango »

Hi,
stelle gerade Überlegungen und Tests für eine neue Datenbank-Frontend-Applikation an bei der es auch um Benutzerberechtigungen geht.

Meine Idee ist, dass alle Datenbankzugriffe bzw Datenbank-sensitiven Controls mittels eines zur Laufzeit erzeugten Frames erfolgen soll.
Dieses erzeugte Frame wird dann "einfach" in die GUI "eingeklebt."

Alle Frames mit Datenbankzugriffen sollen ein Parentframe haben das die Stuktur und wichtige Funktionen liefern soll, damit alle vererbten Frames dem gleichen Muster folgen und somit wartbarer sind.

Soweit noch kein wirkliches Problem.

Wenn es aber um Berechtigungen geht möchte ich zb wissen welcher Typ Frame da gerade erzeugt werden soll damit -- sollte der User nicht einmal die VIEW-Berechigung haben, dieses Frame auch gar nicht erzeugt und angezeigt wird.

Hier habe ich gefunden dass sich die Existenz eines Properties vor dem Erzeugen eines Objektes in der Klasse abfragen lässt.
Frage 1: kann ich auch deren Inhalt abfragen und wenn ja,wie ?

Frage 2: Eigentlich will ich ja die Art des Frames des Child-Frames herausfinden. Aber wie setze ich eine published Variable in der Klasse ohne dass das Objekt noch existiert -- bin etwas verwirrt. So ganz elegant scheint mir meine Idee noch nicht zu sein

THX

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6216
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Konzeptfrage: Frames vererben und identifizieren

Beitrag von af0815 »

charlytango hat geschrieben:
Fr 14. Jul 2023, 01:03
Frage 2: Eigentlich will ich ja die Art des Frames des Child-Frames herausfinden. Aber wie setze ich eine published Variable in der Klasse ohne dass das Objekt noch existiert -- bin etwas verwirrt. So ganz elegant scheint mir meine Idee noch nicht zu sein
ad 2)
Meinst du sowas https://de.wikibooks.org/wiki/Programmi ... uf_Klassen ?
Wenn es aber um Berechtigungen geht möchte ich zb wissen welcher Typ Frame da gerade erzeugt werden soll damit -- sollte der User nicht einmal die VIEW-Berechigung haben, dieses Frame auch gar nicht erzeugt und angezeigt wird.
Ich sehe das eher umgekehrt, du solltest wissen mit welcher Berechtigung du welches Frame erzeugen lässt.

Generell:
Hilft das vielleicht https://github.com/fluisgirardi/pascalsecure ich habe mich damit ein wenig beschäftig. Ist nicht gerade einfachste Kost, läuft aber stabil.

Allgemein:
Frames lassen sich wie Forms einfach vererben, man kann damit richtige Vorlagen erschaffen die mit DB gut umgehen können. Wichtig ist nur, so richtig Spass machen die nur, wenn sie zur Laufzeit verwendet werden. Weil statisch in die IDE gepflanzte Frames so ihre Machen von seitens der IDE haben. Dafür kann man aber Frames extrem Kapseln und somit auch komfortabel testen ausserhalb der eigentlichen Applikation. Wenn die Kapselung gut ist, so kann das Frame in der Testumgebung erstellt werden, die Parameter werden gesetzt und die Funktionen des Frames getestet und die Ergebnisse können geprüft werden.

Dynamische Rückmeldungen aus dem Frame lasse ich immer über Events in der Hierachie hochsteigen, ja keine Referenzen auf Parents zulassen und alles über Schnittstellen abhandeln, dann ist es extrem stabil und vor allen, in vielen Projekten einsetzbar. Allerding ist dann nichts mit 'ich ändere das mal schnell in App X' weil damit ist auch App Y betroffen, die das "Feature" gar nicht braucht oder es dort alles zerstört. Da muss man auf da Konzept aufpassen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten