Autor Beitrag
Daniel_100
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 63

Win XP
D3 Prof, D6 Enterprise
BeitragVerfasst: Do 12.05.11 11:06 
Hallo,

ich beschäftige mich seit Kurzem mit Klassen und der Komponentenentwicklung.
Ich habe jetzt versucht, eine nicht-sichtbare Komponente zu schreiben. Diese enthält mehrere Klassen. Unter anderem eine, die ein published property besitzt, welches einen eigenen Typ aufweist. Dieser Typ ist in der selben unit definiert und von der klasse TOwnedCollection abgeleitet. (Dafür gibts auch einen propertyeditor). Dann sind noch Klassen für die entsprechenden Items in der Collection vorhanden..
Mein Problem ist jetzt eigentlich nur, dass ich nicht weiß, wie ich von einer der letzten Klassen aus auf eine Objekteigenschaft der ersten Klasse zugreifen kann bzw ob das überhaupt geht.

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
type
  TButtonGroup2 = class;
  TGruppenItems = class;
  TButtonItem = class;
  TSBItem = class;



  

TButtonGroup2 = class(TComponent)
[...]
  published
    { Published declarations }

    property GruppenItems: TGruppenItems read FGruppenItems write SetGruppenItems;
    property GroupIndex: integer read GetGroupIndex write SetGroupIndex default 0;
  end;



[...]



TButtonItem = class(TComponent)
  private
   [...]
    procedure SetSpeedButton(Value: TMyNewSpeedButton);

  protected
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  published
    property SpeedButton: TMyNewSpeedButton read FMyNewSpeedButton write SetSpeedButton;
  end;






[...]


procedure TButtonItem.SetSpeedButton(Value: TMyNewSpeedButton);

begin

if (Value <> niland (Value.BtnGroupAssigned = false) then
 begin

  FMyNewSpeedButton := Value;
Value.GroupIndex := ???  // hier möchte ich den GroupIndex von dem erstellen  Objekt
                         // vom Typ TButtonGroup2 zuweisen, in der sich das 
                         // aktuelle ButtonItem befindet
  Value.NotManual := true;
  Value.BtnGroupAssigned := true;
  Value.NotManual := false;
 end
else
 FMyNewSpeedButton := nil;
end;


[...]


Vielen Dank schonmal =)

Daniel