AGB  ·  Datenschutz  ·  Impressum  







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

Vererbung von TDataSet auf einem Frame

Ein Thema von Codehunter · begonnen am 2. Jul 2019 · letzter Beitrag vom 3. Jul 2019
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#1

Vererbung von TDataSet auf einem Frame

  Alt 2. Jul 2019, 15:09
Hallo!

Ich erstelle ein neues Frame und lege ein Dataset darauf. Das füge ich nun der Objektablage hinzu. Nun erstelle ich ZWEI neue Units A und B mit dem soeben erzeugten Frame als Vorlage.

Wenn ich nun in Unit A beim Dataset den Feldeditor öffne und ein paar Felder hinzufüge, dann erscheinen die auch in Unit B im Dataset. Scheint so als würde die IDE die Felder nicht im DFM der abgeleiteten Frames anlegen sondern im Elternframe. Löschen kann ich die Felder aber NUR in Unit A, nicht in der Eltern-Unit und auch nicht in Unit B. Dann erscheint die Fehlermeldung "Auswahl enthält eine Komponente, die in einem Vorfahr-Formular eingeführt wurde, das nicht gelöscht werden kann.."

Denk ich da jetzt falsch oder gibt es einen Trick, die IDE die Felder im Kind-DFM anlegen zu lassen?

Grüße
Cody
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
684 Beiträge
 
Delphi 12 Athens
 
#2

AW: Vererbung von TDataSet auf einem Frame

  Alt 2. Jul 2019, 15:13
die gehören ja auch zu Unit A
Ich würde einen Frame machen, welcher alle vererbbaren Elemente enthält und dann in davon in Unit A und B ableiten ... damit bleibt die Feldauswahl lokal.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#3

AW: Vererbung von TDataSet auf einem Frame

  Alt 2. Jul 2019, 15:15
die gehören ja auch zu Unit A
Ich würde einen Frame machen, welcher alle vererbbaren Elemente enthält und dann in davon in Unit A und B ableiten ... damit bleibt die Feldauswahl lokal.
Versteh ich grad nicht. Weil eigentlich hab ich genau das gemacht.

EDIT: Nennen wir die Unit vom Elternformular mal "uMama.pas" und die beiden abgeleiteten Units "uKindA.pas" und "uKindB.pas". Das Dataset liegt auf dem Formular von uMama, die Felder habe ich in uKindA hinzugefügt. Sie erscheinen aber auch in uKindB. Ich hoffe, jetzt wird mein Problem verständlicher.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter ( 2. Jul 2019 um 15:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
684 Beiträge
 
Delphi 12 Athens
 
#4

AW: Vererbung von TDataSet auf einem Frame

  Alt 2. Jul 2019, 15:21
Versteh ich grad nicht. Weil eigentlich hab ich genau das gemacht.
Sorry, verlesen
Ich habe beim ersten Durchlesen es so verstanden, dass Du von dem Frame in Unit A ableitest. Ich arbeite eigentlich nicht mit Frames, sondern nehme immer Forms, welche ich dann zur Laufzeit ohne Rand in ein Panel o.ä. einbette - da kommen sie sich nicht ins Gehege.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#5

AW: Vererbung von TDataSet auf einem Frame

  Alt 2. Jul 2019, 15:25
Das kann ich leider nicht beeinflussen, das Projektkonzept sieht Frames vor.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.656 Beiträge
 
Delphi 12 Athens
 
#6

AW: Vererbung von TDataSet auf einem Frame

  Alt 2. Jul 2019, 15:35
Wenn die Frames aus der Objektablage kommen, muss man aufpassen, dass man beim Einfügen auch "Vererben" ausgewählt hat und nicht "Verwenden".
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#7

AW: Vererbung von TDataSet auf einem Frame

  Alt 3. Jul 2019, 07:30
Meiner Meinung nach gehört ein TDataset in ein Datamodul und nicht in ein TFrame oder ein TForm auch wenn das m... funktioniert.
Um mich selbst zu zitieren:

Das kann ich leider nicht beeinflussen, das Projektkonzept sieht Frames vor.
Aber so wie es aussieht ist das Dataset nicht die Ursache sondern nur die Folge eines Problems mit der Objektablage in der IDE.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Delphi.Narium

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

AW: Vererbung von TDataSet auf einem Frame

  Alt 2. Jul 2019, 15:43
Verstehe ich irgendwie nicht:

Du hast ein Frame, das Du zweimal auf ein Formular legst.

Auf diesem Formular liegt auch ein DataSet.

Nun sollen dem einen DataSet auf dem ersten Frame Felder hinzugefügt werden und auf dem zweiten Frame andere?

Irgendwie erschließt sich mir hier der Sinn nicht so ganz.

Habe mal ein Frame erstellt, das 'ne DataSource, ein DBGrid, 'nen DBNavigator und so diverses Allerlei für "Standardhandling" von Datenbankenanzeigen in meinen Programmen kapseln soll.

Das Frame hat u. a. eine Eigenschaft DataSet. Dazu gibt es einen passenden Setter und auch 'nen Getter.
Weise ich nun der Eigenschaft DataSet des Frames eine DataSet zu, so wird im Setter der DataSource auf dem Frame mit dem DataSet auf dem Formular versorgt.

Für mehrere Frames auf einem Formular benötige ich dann auch mehrere DataSets auf dem Formular, es sei denn: Mehrere Frames sollen die gleichen Daten anzeigen.

Alles was das DataSet betrifft, also Feldeditor und Felder hinzufügen ..., geschieht auf dem Formular und nicht in der / den Unit/s der / des Frames.

Wenn in der Unit des Frames was geändert wird, so betrifft das alle Frames dieses Typs und hat auch Auswirkungen auf bestehende Programme, sofern sie neu kompiliert werden.

Das ist aber nicht der Sinn des Feldeditors zum DataSet, da sollen Änderungen nur für eine konkrete Instanz eines Frames gelten.

Eventuell hilft das ja, wenn nicht, weil ich die Aufgabenstellung falsch verstanden habe, vergiss es einfach
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.283 Beiträge
 
Delphi 12 Athens
 
#9

AW: Vererbung von TDataSet auf einem Frame

  Alt 2. Jul 2019, 16:00
Du hast ein Frame, das Du zweimal auf ein Formular legst.
Schon falsch. Ich habe ein Frame, dass ich in die Objektablage hinzufüge. Der Fehler scheint schon hier zu passieren. Denn wenn ich genauer hinschaue, fügt die IDE der Objektablage nicht das von mir erstellte Frame mit dem Dataset hinzu sondern dessen Elternframe (ja ich weiß, schreckliche Verschachtelung, nicht auf meinem Mist gewachsen).

Ich mache da erstmal einen Haken dran, weil zu verfrickelt in der Hierarchie. Da müssen erstmal die Erfinder ran.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
711 Beiträge
 
Delphi 12 Athens
 
#10

AW: Vererbung von TDataSet auf einem Frame

  Alt 2. Jul 2019, 19:25
Hallo!

Ich erstelle ein neues Frame und lege ein Dataset darauf. Das füge ich nun der Objektablage hinzu. Nun erstelle ich ZWEI neue Units A und B mit dem soeben erzeugten Frame als Vorlage.

Wenn ich nun in Unit A beim Dataset den Feldeditor öffne und ein paar Felder hinzufüge, dann erscheinen die auch in Unit B im Dataset. Scheint so als würde die IDE die Felder nicht im DFM der abgeleiteten Frames anlegen sondern im Elternframe. Löschen kann ich die Felder aber NUR in Unit A, nicht in der Eltern-Unit und auch nicht in Unit B. Dann erscheint die Fehlermeldung "Auswahl enthält eine Komponente, die in einem Vorfahr-Formular eingeführt wurde, das nicht gelöscht werden kann.."

Denk ich da jetzt falsch oder gibt es einen Trick, die IDE die Felder im Kind-DFM anlegen zu lassen?

Grüße
Cody
Ich kann mich dumpf erinnern das visual form inheritance Probleme (in der IDE) mit Collection-Properties hat, und TDataset.Fields ist so eine. Leider kann ich mich nicht mehr an Details erinnern und bin auch selbst nie auf dieses Problem gelaufen, da ich solche Properties nie im Designer fülle.
Peter Below
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 06:58 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 by Thomas Breitkreuz