AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eigenes Frame ableiten - funktioniert leider nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Eigenes Frame ableiten - funktioniert leider nicht

Ein Thema von angelika81 · begonnen am 16. Apr 2008 · letzter Beitrag vom 17. Apr 2008
Antwort Antwort
angelika81

Registriert seit: 8. Apr 2008
12 Beiträge
 
Delphi 2007 Professional
 
#1

Eigenes Frame ableiten - funktioniert leider nicht

  Alt 16. Apr 2008, 11:33
Hallo,

hier im Forum wurde schon öfters geschildert, wie man eigene Frames ableiten kann. Das geht mittlerweile ja nun sehr schön über Datei->Neu->Weitere und dann über "Vererbbare Elemente". Bei mir erscheint dieser Punkt nur, wenn ich Frames in einem frischen Projekt unter meinem Delphi 2007 angelegt habe.

In meinem Projekt, was ich in Delphi 2006 begonnen hatte und nun importiert habe, wird dieser Menüpunkt nicht angezeigt, obwohl genügend Frames vorhanden sind. Woran liegt das ? Er findet die Frames anscheinend nicht richtig?

Ich habe versucht, in der Quelltextdatei des Frames einfach folgendes zu schreiben:
Delphi-Quellcode:
inherited NeuesFrame: TAltesFrame
end
Da sagt er mir aber, dass er TAltesFrame nicht findet. Wenn ich es darüber bei den uses einfüge (ich weiß nicht, ob man das so machen kann), sagt er, es sein ein ungültiges Stream-Format.

Was kann ich da machen?
Dankeschön!
angelika
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#2

Re: Eigenes Frame ableiten - funktioniert leider nicht

  Alt 16. Apr 2008, 11:38
Delphi-Quellcode:
unit MeinFrame;

uses
  ...

interface

type
  TMeinFrame = class (TFrame) // <<-- Ableitung
  public
    //
  private
    //
  end;

implementation

...
end.
  Mit Zitat antworten Zitat
angelika81

Registriert seit: 8. Apr 2008
12 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Eigenes Frame ableiten - funktioniert leider nicht

  Alt 16. Apr 2008, 11:40
Hallo,

ich möchte das Frame aber visuell ableiten. Wenn ich das so mache, zeigt Delphi mir nicht den Quellframe an.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#4

Re: Eigenes Frame ableiten - funktioniert leider nicht

  Alt 16. Apr 2008, 12:10
Bei mir im Delphi 6 hab ich ein Menü "Komponente". Dort kann ich "Neue Komponente" und bekomme einen Dialog, wo ich Vorfahrtyp (TFrame) usw. einstellen und die neue Komponente direkt installieren kann.

Gibts das bei dir auch?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Eigenes Frame ableiten - funktioniert leider nicht

  Alt 16. Apr 2008, 12:16
Zitat von angelika81:
hier im Forum wurde schon öfters geschildert, wie man eigene Frames ableiten kann.
Und ob wohl immer wieder versucht wird, Frames abzuleiten, geht das regelmässig in die Hose.
Frames wurden erst mit Delphi 5 (oder war's 4) eingeführt und sind bis heute nicht 100% fehlerfrei.
==> man soll Frames nicht ableiten, das gibt nur Schwierigkeiten
Andreas
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Eigenes Frame ableiten - funktioniert leider nicht

  Alt 17. Apr 2008, 00:11
Zitat von shmia:
Frames wurden erst mit Delphi 5 (oder war's 4) eingeführt und sind bis heute nicht 100% fehlerfrei.
==> man soll Frames nicht ableiten, das gibt nur Schwierigkeiten
Ohne Probleme seit mehreren Jahren und in mehreren Projekten. Ist genauso sicher wie auch unsicher wie Form Ableitungen, aber grundlegend keine Problem bei beiden Arten.

@Angelika: Ich habe eine Vermutung zu deinem Problem. Hast du in der Projektverwaltung vor den den im Projekt befindlichen Frames ein Plus-Kästchen zum aufklappen? Im Normalfall listet er dann die Pascal Quelle und das DFM auf. Wenn dies nicht der Fall ist, dann ist der IDE nicht bewusst, dass es eine DFM zu der Pascal Quelle gibt. Und wenn der IDE dies nicht bewusst ist, dann bietet er die jeweilige Datei nicht in der Frame Liste für die vererbaren Elemente an.

Wenn die oben genannte Vermutung zutreffend ist, ein kleiner Exkurs wie die IDE dies handhabt: Die IDE hat im Gegensatz zu den C++ Projekte/Libraries, etc keine spezielle Projektdatei wo die Units aufgelistet werden. Dies geschieht bei Delphi Projekten noch immer im DPR File, kompatibel zu Pascal. Somit mussten sie diese Liste entsprechend erweitern um eine DFM Datei zu vermerken. Dies geschieht durch einen Kommentar in der uses Anweisung hinter der Datei und dem "IN" Schlüsselwort und der Pfad/Dateiangabe. Der Kommentar muss vor dem Listentrenner (, bzw. ; am Ende) auftauchen. Der Kommentar an sich enthält nur den Klassennamen ohne das vorangestellte T.

Beispiel ohne DFM Referenz im Projektmanager:
Zitat von kaputte DPR:
..
frmCommonEditForm in 'Forms\frmCommonEditForm.pas',
..
Beispiel mit DFM Referenz
Zitat:
..
frmCommonEditForm in 'Forms\frmCommonEditForm.pas' {frmEditForm},
..
Seit der Neuentwicklung der IDE mit Delphi 2005 und den folgenden BDS 2006 und RAD 2007 ist ein Fehler hinein gekommen, so dass unter manchen Umständen diese Kommentare rausfliegen. Wann und wie konnte ich noch nicht näher spezifizieren, somit konnte ich noch keinen QC Eintrag erstellen. Ohne Reproduzierbarkeit werden die Einträge sonst (fast) sofort geschlossen, somit ist noch keine Lösung für diesen sporadischen Fehler bekannt. Aber wodran es liegt ist somit bekannt und kann schnell korrigiert werden.

HTH
Muetze1
  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 23:25 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