AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Vererbung auf Frames

Ein Thema von Samufi · begonnen am 2. Dez 2008 · letzter Beitrag vom 28. Nov 2012
Antwort Antwort
Seite 1 von 2  1 2      
Samufi

Registriert seit: 27. Nov 2008
Ort: Güstrow
93 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 19:58
Hallo,
ich erstelle einen Frame TFrame1, deklariere und implementiere eine Funktion darin. Dann erstelle ich einen zweiten, weise ihm einen Platz in der Hauptunit und ordne ihn der Klasse Tframe1 zu. Der zweite erbt nun die Funktion des ersten, ist auf der Hauptunit zu sehen, alles funktioniert. Wenn ich jetzt aber mein Projekt schließe und später wieder öffne bekomme ich die Fehlermeldung "Fehler beim Lesen von Frame2.ParentColor: Eigenschaft existiert nicht. [...]". Diesen Fehler kann ich ignorieren, der Frame wird aber von der HauptUnit entfernt. Wenn ich jetzt den Frame wieder einbinden will, kommt die Fehlermeldung "Formular oder Datenmodul kann nicht in ein anderes Formular oder Datenmodul eingefügt werden.". Wenn ich jetzt beispielsweise ParentColor auf "false" setze kommt dieselbe Fehlermeldung.
Wisst ihr, wo das Problem liegt? Wenn ja, wisst ihr auch, wie ich den Frame, bei dem die Probleme auftraten wieder nutzbar machen kann?
Danke für alles Überlegen,
treuergebenst
Samufi
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 20:22
Zeig mal etwas Code
Markus Kinzler
  Mit Zitat antworten Zitat
Samufi

Registriert seit: 27. Nov 2008
Ort: Güstrow
93 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 20:42
Das ist der Code des erbenden Frames:
Delphi-Quellcode:
unit gehezu;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, frames;

type
  TFrame2 = class(TFrame3)
    Ausgeben: TButton;
    procedure AusgebenClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }

  end;

implementation
{$R *.dfm}

procedure TFrame2.AusgebenClick(Sender: TObject);
begin
Ausgabe('5','6');

end;

end.
Und das der des vererbenden Frames:
Delphi-Quellcode:
unit frames;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TFrame3 = class(TFrame)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
     function Ausgabe(Inhalt,Code:String):String;
  end;

implementation
uses HauptUnit;
function Tframe3.Ausgabe(Inhalt,Code:String):String;
var Sender:TObject;
begin
HauptUnit.form1.Inhalt.Text:=Inhalt;
HauptUnit.form1.Code.Text:=Inhalt;
HauptUnit.Form1.Frame11.FindekomponenteClick(Sender);
{$R *.dfm}
end;
end.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 20:55
{$R *.dfm}
Markus Kinzler
  Mit Zitat antworten Zitat
Samufi

Registriert seit: 27. Nov 2008
Ort: Güstrow
93 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 20:59
Stört das?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 21:01
Ja, wenn die Datei, die eingebunden werden soll nicht existiert
Markus Kinzler
  Mit Zitat antworten Zitat
Samufi

Registriert seit: 27. Nov 2008
Ort: Güstrow
93 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 21:08
Ich dachte immer, das wäre eine Art Kommentar... Aber die Datei, die eingebunden ist besteht doch?! Warum muss das dann weg und in welcher Unit muss es weg?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 21:14
Wenn frames.dfm existiert dann kann der Include natürlich bleiben
Markus Kinzler
  Mit Zitat antworten Zitat
Samufi

Registriert seit: 27. Nov 2008
Ort: Güstrow
93 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 21:21
Frames.dfm existiert, ich habe es auch schon mit löschen der Zeile probiert, es hat aber nicht geholfen...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Problem mit Vererbung auf Frames

  Alt 2. Dez 2008, 21:58
AFAIK geht es nur das das letzte Glied der Vererbungskette eine Formularressource einbindet. In allen Basisklassen müssen die dort vorhandenen Controls per Code erzeugt werden.


Nebenbei gemerkt:

Konstrukte der Art:
HauptUnit.form1.xxx zeugen von schlechten Programmdesign. Sorge für eine Lose kopplung zwischen deinen Units/Formularen indem du solche Zugriffe z.B. per Callbacks/Events realisierst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 23:01 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