AGB  ·  Datenschutz  ·  Impressum  







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

Objekt vom Typ (AKlasse) erstellen

Ein Thema von Rob09 · begonnen am 28. Okt 2010 · letzter Beitrag vom 29. Okt 2010
Antwort Antwort
Rob09

Registriert seit: 14. Aug 2007
58 Beiträge
 
Delphi 6 Personal
 
#1

Objekt vom Typ (AKlasse) erstellen

  Alt 28. Okt 2010, 21:58
Delphi-Version: 5
Hi!

Ich möchte ganz einfach eine Prozedur schreiben, die ein Objekt erstellt, dessen Typ der Prozedur übergeben wird. Ich stelle mir das bisher folgendermaßen vor:

Delphi-Quellcode:
procedure ErstelleObjekt(AKlasse: TClass);
var
  NeuesObjekt: TControl;
begin
  NeuesObjekt := AKlasse.Create;
end;
Aufruf:

Delphi-Quellcode:
...
begin
  ErstelleObjekt(TLabel);
end;
Funktioniert aber nicht. Fehler ist "Incompatible types: 'TControl' and 'TObject' (in der Zeile "NeuesObjekt := AKlasse.Create;")

Ich weiß übrigens, dass die Objekte, die erstellt werden sollen, alles Typen sind, die von TControl erben.

Ähnliche Posts (z.B. "Wie Klassen (keine Instanz!) als Variable übergegben?") haben mir auch nicht weiter geholfen, steh irgendwie aufm Schlauch... Wäre sehr dankbar für eure Hilfe! (Ignoriert einfach mal, dass die erstellte Instanz momentan ohne Pointer im Nirvana landet)

Gruß,
Robert

EDIT: Muss natürlich auch "AKlasse.Create(Owner);" heißen...

Geändert von mkinzler (28. Okt 2010 um 22:02 Uhr) Grund: Code-Tags durch Delphi-Tags ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: Objekt vom Typ (AKlasse) erstellen

  Alt 28. Okt 2010, 22:11
Delphi-Quellcode:
type TControlClasses = class of TControl;
// ...
procedure ErstelleObjekt(AKlasse: TControlClasses);
var
  NeuesObjekt: TControl;
begin
  NeuesObjekt := AKlasse.Create(nil); // oder eben Owner
end;
So sollte es gehen.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (28. Okt 2010 um 22:15 Uhr)
  Mit Zitat antworten Zitat
Rob09

Registriert seit: 14. Aug 2007
58 Beiträge
 
Delphi 6 Personal
 
#3

AW: Objekt vom Typ (AKlasse) erstellen

  Alt 28. Okt 2010, 22:28
Ja, vielen Dank!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Objekt vom Typ (AKlasse) erstellen

  Alt 28. Okt 2010, 23:49
Moin BUG,

warum nicht gleich so:

Delphi-Quellcode:
// ...
procedure ErstelleObjekt(AKlasse: TControl);
var
  NeuesObjekt: TControl;
begin
  NeuesObjekt := AKlasse.Create(nil); // oder eben Owner
end;
So sollte es gehen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#5

AW: Objekt vom Typ (AKlasse) erstellen

  Alt 29. Okt 2010, 00:03
Er möchte ja explizit eine Klasse übergeben, von der er noch kein Objekt hat.
Deine Version nimmt aber ein Objekt entgegen.

Sollte nicht funktionieren.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (29. Okt 2010 um 00:28 Uhr)
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Objekt vom Typ (AKlasse) erstellen

  Alt 29. Okt 2010, 00:24
Moin BUG,

stimmt, da hast Du auch wieder Recht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Objekt vom Typ (AKlasse) erstellen

  Alt 29. Okt 2010, 01:22
type TControlClasses = class of TControl;
Dieser Datentyp ist übrigens schon in der VCL in Unit Controls deklariert (unter dem Namen TControlClass).
  Mit Zitat antworten Zitat
Rob09

Registriert seit: 14. Aug 2007
58 Beiträge
 
Delphi 6 Personal
 
#8

AW: Objekt vom Typ (AKlasse) erstellen

  Alt 29. Okt 2010, 20:40
Vielen Dank an euch für eure Hilfe! Funktioniert jetzt einwandfrei
  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 04:32 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