Forum: Object-Pascal / Delphi-Language
Delphi
by geskill,
19. Jun 2009
Danke, virtual/override war's :wall:
Forum: Object-Pascal / Delphi-Language
Delphi
by geskill,
19. Jun 2009
Sorry, mein Fehler, da habe ich gestern Abend was durcheinanderbebracht, natürlich ist der Typecast auf TIBasic bezogen. Aber wenn ich in dieser Zeile:
IBasic := AClass.Create(FWorkPanel);
AClass gegen TIEdit ersetzte
IBasic := TIEdit.Create(FWorkPanel);
bekomme ich 2 Unterschiedliche Komponenten, da im Create von TIEdit z.b. noch ein TEdit erstellt wird. Oder wenn ich mit dem Debugger...
Forum: Object-Pascal / Delphi-Language
Delphi
by geskill,
18. Jun 2009
Hmm, es wird nur die Basisklasse erstellt, so war das nicht gewollt :(
procedure TComponentManager.NewControl(AClass: TIBasicMeta; {...});
var IBasic:TIBasic;
begin
IBasic := AClass.Create(FWorkPanel); // TIBasicMeta(AClass).Create
with IBasic do
begin
Name := AName;
Title := ATitle;
Forum: Object-Pascal / Delphi-Language
Delphi
by geskill,
17. Jun 2009
Jo, ich habe es schon angepasst, habe extra versucht ein schönes Diagramm zu zeichnen, die Basisklasse ist TIBasic.
Leider bekomme ich beim erstellen eine Fehlermeldung. Ich weiß nicht genau, aber AType ist keine Komponente sondern einfach nur eine Integer Konstante zu einer bestimmten Komponente.
type
TIBasicMeta = class of TIBasic;
procedure TComponentManager.NewControl;...
Forum: Object-Pascal / Delphi-Language
Delphi
by geskill,
17. Jun 2009
Hallo,
ich habe eine Prozedur, die mir verschiedene Controls erstellt, die Parameter wie Name, Titel, Position werden für jede neue Komponente gleich übergeben. Also den Block mit (Name := AName; ...) hätte ich dann sehr oft. Die Komponenten basieren aber alle auf einer Basisklasse, welche die meisten oben aufgelisteten Parameter schon enthält.
TIBasic
|-TIEdit
|-TIComboBox
...