AGB  ·  Datenschutz  ·  Impressum  







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

Verständnisfrage Vererbung

Ein Thema von AMaurer · begonnen am 4. Dez 2015 · letzter Beitrag vom 6. Dez 2015
Antwort Antwort
AMaurer

Registriert seit: 14. Dez 2010
34 Beiträge
 
Delphi 11 Alexandria
 
#1

Verständnisfrage Vererbung

  Alt 4. Dez 2015, 20:06
Hallo,

ich habe eine DB-Anwendung mit dem üblichen Aufbau:

- Stammdaten mit den entsprechenden Formularen
- Detaildaten mit Formularen

so z. B.

Stammdaten Rezepte
Stammdaten Zutaten

Detaildaten mit Unterabfrage Rezept, Liste der Zutaten und Kochvorschrift.

Um mir die Formularprogrammierung möglichst einfach zu machen, habe ich ein Template-Formular erstellt mit den entsprechenden Funktionen und Prozeduren, die jedes Formular hat (Suche, Einfügen, Löschen usw.). Dieses Template erbt jedes neue Formular. Es funktioniert 100 % für die Stammdaten, also bei Formularen ohne Detaildaten, die aus Unterabfragen kommen.

Bei den Formularen mit Detaildaten habe ich für die Unterabfragen zusätzliche Funktionen programmiert, die ebenfalls alle beim ersten Formularaufruf funktionieren, also wenn das Formular created wird.

Problematisch wird es, wenn ich innerhalb eines Formulare (mit Unterabfragen) zwischen den Datensätzen wechsle. Dann werden zwar die vererbten Funktionen abgearbeitet, die speziellen aber nicht.

Hat jemand eine Idee, was ich da falsch machen könnte?

Danke für Eure Hilfe!


Andreas
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#2

AW: Verständnisfrage Vererbung

  Alt 4. Dez 2015, 20:14
Sorry, meine ist gerade zur Reparatur.
Nein, im Ernst, ohne entsprechende Einblicke in deinen Quellcode ist das nur ein Stochern im Nebel.
Magst Du hier ein Beispiel posten?
Thomas Breitkreuz
  Mit Zitat antworten Zitat
AMaurer

Registriert seit: 14. Dez 2010
34 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Verständnisfrage Vererbung

  Alt 4. Dez 2015, 21:04
Eventuell hänge ich einfach mal die

BaseForm.pas und
Rezepte.pas hier an.

Die sind zwar noch nicht hübsch aber hoffentlich findest Du Dich / Ihr Euch zurecht.

Die BaseForm.pas ist also das Template, das jedes Formular erbt.
Angehängte Dateien
Dateityp: pas BaseForm.pas (21,0 KB, 20x aufgerufen)
Dateityp: pas Rezepte.pas (4,6 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

AW: Verständnisfrage Vererbung

  Alt 4. Dez 2015, 23:10
Um mir die Formularprogrammierung möglichst einfach zu machen, habe ich ein Template-Formular erstellt mit den entsprechenden Funktionen und Prozeduren, die jedes Formular hat (Suche, Einfügen, Löschen usw.). Dieses Template erbt jedes neue Formular.
So macht man das ja auch, allerdings besteht die Frage, wie Du das genau machst ? Irgendwie von Hand oder per Objektablage ?
Gruß
Hansa
  Mit Zitat antworten Zitat
AMaurer

Registriert seit: 14. Dez 2010
34 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Verständnisfrage Vererbung

  Alt 6. Dez 2015, 09:48
Um mir die Formularprogrammierung möglichst einfach zu machen, habe ich ein Template-Formular erstellt mit den entsprechenden Funktionen und Prozeduren, die jedes Formular hat (Suche, Einfügen, Löschen usw.). Dieses Template erbt jedes neue Formular.
So macht man das ja auch, allerdings besteht die Frage, wie Du das genau machst ? Irgendwie von Hand oder per Objektablage ?
Ich verstehe Deine Frage nicht. Die Formulare sind von Hand erstellt und werden im Programmablauf bei Bedarf created. Es gibt eine Namenkonvention für die Felder und anhand der Feldtypen und Namen funktionieren die Abläufe. Hilft Dir diese Erklärung weiter?
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

AW: Verständnisfrage Vererbung

  Alt 6. Dez 2015, 10:41
Poste mal noch die zu den bereits vorhandenen PAS-Dateien gehörenden DFM-Dateien.

Und was verstehst Du im Zusammenhang unter "speziell" ?

^::ann werden zwar die vererbten Funktionen abgearbeitet, die speziellen aber nicht.
Gruß
Hansa
  Mit Zitat antworten Zitat
AMaurer

Registriert seit: 14. Dez 2010
34 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Verständnisfrage Vererbung

  Alt 6. Dez 2015, 13:13
... anbei die beiden DFMs.

Mit "speziell" meine ich nur die Unterschiede zwischen den reinen Stammdatenformularen (nur Edit- und Combobox-Felder) und den Formularen, die Unterabfragen haben (dbGrid).

Hoffentlichen helfen die DFMs weiter.

Viele Grüße

Andreas
Angehängte Dateien
Dateityp: zip dfm.zip (11,8 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

AW: Verständnisfrage Vererbung

  Alt 6. Dez 2015, 18:59
Das hier reicht jedenfalls nicht aus.

TfrmRezepte = class(TfBaseForm) Ich meine da jetzt, einfach class (Basisform), so in der Richtung hinzuschreiben. Das ist ja schön, es wird irgendwas vererbt, d.h. man muss es nicht nochmals definieren, nur was ? Tja das weiss die erbende Form leider nicht. Deine DFMs geben auch keinen richtigen Aufschluss. Ich mache es deshalb kurz : lege das Basisform wie gewünscht an. Also mit Speicher-Button usw. Gehe dann aber mit rechter Maustaste wieder da drauf und sage "in Objektablage soeichern" oder ähnlich. Wird nun eine ähnliche Form gebraucht, dann gehe auf neu -> weitere und dann auf diese Form. Man braucht sich dann zumindest nicht zu überlegen, ob da irgendein "inheritd" fehlt. Insgesamt gesehen ist folgendes wichtig (Stichwörter, bitte in Hilfe nachlesen) : inherited, override, published, protected.
Gruß
Hansa
  Mit Zitat antworten Zitat
AMaurer

Registriert seit: 14. Dez 2010
34 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Verständnisfrage Vererbung

  Alt 6. Dez 2015, 20:49
...sorry, ich saß heute Morgen auf dem Schlauch.

Natürlich kommen die Formulare aus der Objektablage ...
  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 00:52 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