Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TComboBox erweitern und einbinden (https://www.delphipraxis.net/10095-tcombobox-erweitern-und-einbinden.html)

ahachmann 11. Okt 2003 15:33


TComboBox erweitern und einbinden
 
Hallo,
Ich möchte gerne die Komponente TComboBox erweitern. Somit habe ich in einer Unit eine Klasse TMyComboBox erstellt, die von der Klasse TCombobox abgeleitet ist. Jedoch habe ich das Problem, diese Komponente in ein Formular einzubinden.
Wie kann ich solceh Komponenten Nutzen? Einfach den Typ einer TCombobox auf TMyComboBox zu ändern hat leider nicht funktioniert.
Hat jemand einen Tipp?
Vielen Dank,
Alexander

SirThornberry 11. Okt 2003 15:38

Re: TComboBox erweitern und einbinden
 
ist dein Problem "MyCombobox" auf dem formular zu plazieren oder darum das sie nicht funktioniert?? Wenns nicht funktioniert, was kommt für eine Fehlermeldung?? Bischen Source wäre nicht schlecht...

ahachmann 11. Okt 2003 15:50

Re: TComboBox erweitern und einbinden
 
Hallo,
Source in dem Sinne gibt es immo nicht. Ich habe bis jetzt lediglich die TMyComboBox erstellt und diese von TComboBox abgeleitet.
Somit sind die beiden immo identisch.
Ich habe die Unit mit der neuen Klasse in die FormularUnit eingebunden, eine TComboBox Erstellt und manuel den Typ auf TMyComboBox umgestellt.
Sowohl in der FormularUnit selber als auch in den Initialisierungsinformationen.

Die Fehlermeldung lautet: Klasse TMyComboBox nicht gefunden. Fehler Ignorieren oder ...

Die Unit mit der TMyComboBox ist aber in der FormUnit eingebunden.
Gruß,
Alexander

SirThornberry 11. Okt 2003 15:57

Re: TComboBox erweitern und einbinden
 
*hust* Das geht doch nicht!! *g* Du kannst nicht einfach in der Formularunit rumändern. Die MyCombobox ist Delphi doch noch gar nicht als Componente diesbezüglich bekannt, oder findest du die schon auf der Palette wo auch die andere sich befindet (oder auf ner anderen registrierkarte wie Samples). Wenn dem nicht der Fall ist musst du die componente erst noch in ein Packet stopfen und zu Palette hinzufügen oder du setzt die gar nicht aufs formular sondern schreibst alles in den Quelltext (position, parent etc.)

Daniel B 11. Okt 2003 15:59

Re: TComboBox erweitern und einbinden
 
Du solltest vielleicht mal die Komponente auch installieren.
Dazu ist auch der Registerteil in der neuen Unit schon autom. angelegt, sieht etwa so aus:
Delphi-Quellcode:
procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Setsuna Labs', [TSLEdit]);
end;
Für Dich dann halt so:
Delphi-Quellcode:
procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('DibaDibaDuu', [TMyComboBox]);
end;
Dann installierst Du die Kompo und sie erscheint oben bei den ganzen Komponenten, auf dem Reiter DibaDibaDuu, dann nimmst Du sie und setzt sie ganz normal auf Formular und schon geht alles.

ahachmann 11. Okt 2003 16:13

Re: TComboBox erweitern und einbinden
 
Ok, wurde schon grad beantwortet während ich dies Schrieb.

Hmm, dann muß ich auf jeden fall die CodeVariante nehmen. Da das ein TestatProgramm für die Uni wird, darf ich keine Komponenten zu Delphi hinzufügen. Bzw. würde es nichts bringen, da ich das dann auf jedem Rechner in der Uni machen müsste. :-(
Hast Du vielleich ein Codebeispiel für solch eine CodeImplementierung?
Delphi-Quellcode:
 
  ComboBox1 := TMyComboBox.Create(Self);
  ComboBox1.Top := 100;
  CombpBox1.Left := 100;
funktioniert leider nicht. Keine entsprechende Komponente . :-0
Wie Du merkst, bin ich da noch ein wenig Grün hinter den Ohren ;-)
Gruß,
Alexander

SirThornberry 11. Okt 2003 16:16

Re: TComboBox erweitern und einbinden
 
So weit stimmts schon, fehlt nur noch
CombpBox1.Parent = Self;
und halt der restliche kleinkram

kiar 11. Okt 2003 16:55

Re: TComboBox erweitern und einbinden
 
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  combobox1:TMyComboBox;
    public
    { Public-Deklarationen }
  end;

var Form1:TForm;

implementation

procedure TForm1.FormCreate(...);

begin
 comboBox1:=TMyComboBox1.Create(Aowner;
 comboBox1.parent:=self;
 ....
end;
und nicht vergessen die unit einzubinden.

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:16 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