AGB  ·  Datenschutz  ·  Impressum  







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

Eigene Komponente von TCustomForm abgeleitet

Ein Thema von little-x · begonnen am 13. Apr 2007 · letzter Beitrag vom 17. Apr 2007
Antwort Antwort
little-x

Registriert seit: 13. Apr 2007
Ort: Brandenburg
60 Beiträge
 
Delphi 6 Enterprise
 
#1

Eigene Komponente von TCustomForm abgeleitet

  Alt 13. Apr 2007, 15:14
DIE AUSSAGE "GEHT NICHT"
würde mir ja auch schon reichen!

Hallo,

habe schon öfter mal eigene Komponenten entwickelt, z.B. DBEdits mit erweiterten Funktionen etc., hat auch immer gut funktioniert.

Diesmal bin ich mir nicht sicher ob es sich nur um eine Wissenslücke, oder um ein Verständnisproblem handelt. Ich müsste eine eigene Komponente von TCustomForm ableiten. Das geht auch alles, nur:

Beim Registrieren will Delphi ja die Palette wissen. Bei Formularen ist das doch aber unsinnig. Schließlich "platziert" man Formulare nicht auf einem anderen Formular, sondern man erstellt diese halt mit

Datei -> Neu ->
und dann eben ->Formular , ->unit oder etc.

Wie kann ich dafür sorgen dass eine eigene Formularkomponente dort erscheint?

Viele Grüße!
manchmal machts mich mürbe
  Mit Zitat antworten Zitat
shmia

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

Re: Eigene Komponente von TCustomForm abgeleitet

  Alt 13. Apr 2007, 17:56
Alles, was von TCustomForm abgeleitet ist braucht/darf nicht als normale Komponente installiert werden.
Deine Komponente ist ja in einer eigenen Unit.
Du kannst nun einfach diese Unit in dein Projekt einfügen und mit der Uses-Klausel einbinden.
Dann wird das Formular so wie es ist in die EXE eingebunden und du musst nur noch eine Instanz erzeugen:
Delphi-Quellcode:
uses ...,MeinSuperFormular;

var
   f : TMeinSuperFormular;
begin
   f := TMeinSuperFormular.Create(Application);
   try
      f.ShowModal;
   finally
      f.Free
   end;
end;
Du kannst aber auch von diesem Formular ableiten und somit die vorgegebenen Properties ändern und auch alle Events benützen.
In der IDE -> Datei -> Neu... -> den Reiter mit dem Namen deines Projekts auswählen und dann TMeinSuperFormular auswählen.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Eigene Komponente von TCustomForm abgeleitet

  Alt 13. Apr 2007, 18:00
@shmia: Er will es aber nicht dynamich erzeugen sondern im Designer weiter bestücken.
Ich weiß das es irgendwie ging, weiß im Moment nur nicht mehr wie (auf jeden fall musste man das Form nicht registrieren)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
shmia

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

Re: Eigene Komponente von TCustomForm abgeleitet

  Alt 13. Apr 2007, 18:16
Zitat von SirThornberry:
@shmia: Er will es aber nicht dynamich erzeugen sondern im Designer weiter bestücken.
Dann muss die Unit in einem Design-Time Package untergebracht werden und die Funktion RegisterNoIcon() aufgerufen werden.
Ich würde aber von dem ganzen Plan abraten, weil ein TCustomForm - Abkömmling gar nicht so allgemein sein kann, dass
man es in beliebigen Anwendungen gebrauchen kann. (Mal abgesehen von irgendwelchen Spielereien mit transparenten Formularen oder "Skins")
Andreas
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Eigene Komponente von TCustomForm abgeleitet

  Alt 14. Apr 2007, 01:08
Ansonsten die Basisform aufmachen, Rechtsklick drauf und dort dann "In das Repository einfügen" und dann liegt es als Vorlage bei Datei -> Neu -> Andere... vor und kann frei von dem abgeleitet oder kopiert werden (je nach darunterliegenden Radiobutton Einstellung)
  Mit Zitat antworten Zitat
little-x

Registriert seit: 13. Apr 2007
Ort: Brandenburg
60 Beiträge
 
Delphi 6 Enterprise
 
#6

Erstmal Dankeschön für die Antworten -

  Alt 16. Apr 2007, 09:02
Ja, genauso ist es, ich will sie weiter bestücken und daher idealerweise in der Objektablage verfügbar haben. Grund ist dass ich an einer Software arbeite mit sehr vielen Teilprogrammen arbeite, deren deren Masken nun ein einheitliches Design- und auch Verhaltenskonzept verfolgen müssen.

Nun weiß ich zwar, dass ich einfach per
Zitat:
Rechtsklick -> In Objektablage zufügen
das bewerkstellige, aber das genügt nicht, weil ich die Vorlage auch sukzessive weiterentwickeln möchte und dann die Änderungen in allen Programmen durch einfaches Kompilieren wirksam werden lasse.

Ich habe gehört, das geht, allerdings habe ich hier 3 dicke Delphi-Bücher, darunter das offizielle Entwicklerhandbuch, aber DAS steht nicht drin...

Viele Grüße!
manchmal machts mich mürbe
  Mit Zitat antworten Zitat
uwewo

Registriert seit: 14. Jul 2004
Ort: Karlsruhe
479 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Eigene Komponente von TCustomForm abgeleitet

  Alt 16. Apr 2007, 09:21
Hallo little-x,

hier habe ich was gefunden für dich, sollte die helfen.
Uwe
  Mit Zitat antworten Zitat
little-x

Registriert seit: 13. Apr 2007
Ort: Brandenburg
60 Beiträge
 
Delphi 6 Enterprise
 
#8

LÖSUNG GEFUNDEN -> Jetzt Folgeproblem! Jetzt aber allgeme

  Alt 17. Apr 2007, 14:44
Hallo,

Euer letzter Tipp hat's gebracht. Nach einiger Suche nach der Unit designIntf.pas hab ich das jetzt mit RegisterComponents hinbekommen.

Jetzt möchte ich die Komponente (-nklasse) sukzessive weiterentwickeln (Properties, Konstruktoren, Eigenschaften erweitern etc.)...

Wenn ich das aber mache, wirken sich die Änderungen nicht aus, auch wenn ich die Unit, in der ich die Komponente deklariert habe, neu compiliere.

Könnte es sein dass ich die Klasse neu registrieren muss? Wenn ich das aber versuche, kommt die Fehlermeldung "...Exception...Eine Klasse mit dem Namen blabla existiert bereits." Auch wenn ich vorher ein Unregister mache, klappt es nicht.

Was mach ich jetzt falsch?

Grüße
manchmal machts mich mürbe
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Eigene Komponente von TCustomForm abgeleitet

  Alt 17. Apr 2007, 15:05
Schonmal in der Form-Textansicht kontrolliert, ob ein korrektes "inherited" anstatt "object" vermerkt wurde?
  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 15:48 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