AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Untermenü in den Eigenschaften einer Komponente
Thema durchsuchen
Ansicht
Themen-Optionen

Untermenü in den Eigenschaften einer Komponente

Ein Thema von Beck93 · begonnen am 5. Apr 2013 · letzter Beitrag vom 5. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
Beck93

Registriert seit: 2. Aug 2011
22 Beiträge
 
Delphi XE Professional
 
#1

Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 10:13
Hallo,

ich bin gerade meine erste Komponente am erstellen und bin soeben über ein Problem gestolpert.

Ich wollte gerne in den Eigenschaften ein Untermenü haben.So wie im Anhang auf dem Bild.
Leider habe ich keinen Anhaltspunkt wie ich das hinbekomme.

Also meine Frage:
Wie bekomme ich in den Eigenschaften meiner Komponente ein Untermenü erstellt?

Danke
Miniaturansicht angehängter Grafiken
untermenue.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

AW: Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 10:41
Das auf dem Bild dürfte vermutlich eine "Unterklasse" sein, die von der Komponente benutzt wird. Also etwas in der Art
Delphi-Quellcode:
type
  TUnterklasse = class(TPersistent)
  private
    FSomeField: SomeType;
    FSomeOtherField: SomeType;
    ...
  published
    ...
    property SomeField: SomeType read FSomeField write FSomeField;
    property SomeOtherField: SomeType read FSomeOtherField write FSomeOtherField;
  end;

  TDeinKomponente = class(TComponent)
  private
    FUnterklasse: TUnterklasse;
    ...
  published
    ...
    property Unterklasse: TUnterklasse read FUnterklasse;
  end;
Statt einer Klasse wäre aber auch ein Record denkbar.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Beck93

Registriert seit: 2. Aug 2011
22 Beiträge
 
Delphi XE Professional
 
#3

AW: Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 13:47
Vielen Dank für die schnelle Antwort.

habe es jetzt einmal getestet.
Es sieht prinzipiell sehr gut aus nur wenn ich auf das "+" vor der Eigenschaft "Unterklasse"
drücke öffnen sich meine Eigenschaften der "Unterklasse" nicht.

Woran könnte das liegen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 13:57
Wie sieht die Unterklasse denn aus?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Beck93

Registriert seit: 2. Aug 2011
22 Beiträge
 
Delphi XE Professional
 
#5

AW: Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 14:10
Delphi-Quellcode:
type
 TAnschluss = (asTCP_IP, asLPT1, asLPT2, asLPT3, asCOM1, asCOM2, asCOM3);

 TCOMUnterklasse = class(TPersistent)
  public
   FBaudRate: CPort.TBaudRate;
   FDataBits: CPort.TDataBits;
   FStopBits: CPort.TStopBits;
   FParity: CPort.TComParity;

  published
   property BaudRate:CPort.TBaudRate read FBaudRate write FBaudRate;
   property DataBits: CPort.TDataBits read FDataBits write FDataBits;
   property StopBits: CPort.TStopBits read FStopBits write FStopBits;
   property Parity: CPort.TCOMParity read FParity write FParity;
 end;

type
  Tptw_AveryEtikettendruck = class(TComponent)
   IndyClient: TIdTCPClient;
   COM: TComPort;
  private
    { Private-Deklarationen }
   FUnterklasse: TCOMUnterklasse;
...
  published
    property COMEinstellungen: TCOMUnterklasse read FUnterklasse write FUnterklasse;

So sieht der Aufbau momentan aus.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 14:15
Auf den ersten Blick fällt mir da jetzt nichts Ungewöhnliches auf. Hab ich das richtig verstanden, das "+" ist zu sehen, lässt sich aber nicht aufklappen?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Beck93

Registriert seit: 2. Aug 2011
22 Beiträge
 
Delphi XE Professional
 
#7

AW: Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 14:24
Ja "+" ist sichtbar aber leider keine Unterpunkte.

Im Anhang als Bild. Dort habe ich auf "+" gedrückt und nichts hat sich verendert bis auf das aus "+" "-" wurde.

Fals es interessant für den fall sein könnte:
Ich habe ebenso ein Menü mit Such funktion (wie Datei öffnen) in der Komponente. In Delphi 7 wird das angezeigt und funktioniert in Rad Studio XE nicht. Eine lösung habe ich aber auch leider noch nicht für das Problem.
Miniaturansicht angehängter Grafiken
untermenue.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

AW: Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 14:28
Vorraussezungen für den Erfolg sind:
* die Unterklasse muss von TPersistent abgeleitet sein und die Mehode Assign überschreiben werden.
Vergisst man Assign zu überschreiben, dann erscheint die Fehlermeldung "Klasse XXX kann XXX nicht zugewiesen werden" (oder so ähnlich)
* das published Property muss read-write sein
Delphi-Quellcode:
  private
    procedure SetUnterklasse(Value:TCOMUnterklasse);
  published
    property COMEinstellungen: TCOMUnterklasse read FUnterklasse write SetUnterklasse;


procedure COM.SetUnterklasse(Value:TCOMUnterklasse);
begin
  FUnterklasse.Assign(Value);
end;
* die Unterklasse muss registriert werden, damit der Objektinspektor dessen Objekte dynamisch erzeugen kann
Delphi-Quellcode:
procedure Register;
begin
  Classes.RegisterComponents(...);
  RegisterClass(TCOMUnterklasse); // ***
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

AW: Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 14:30
So etwas hatte ich bislang noch nie Was passiert, wenn Du den Properties einmal Getter und Setter verpasst, ändert sich dann etwas?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Beck93

Registriert seit: 2. Aug 2011
22 Beiträge
 
Delphi XE Professional
 
#10

AW: Untermenü in den Eigenschaften einer Komponente

  Alt 5. Apr 2013, 14:55
Danke nochmals für die Antworten.

bin gerade am versuchen, doch leider verstehe ich den letzten Code ausschnitt von sx2008 nicht. Egal was ich in die Klammern schreibe, es wird angemosert von Delphi.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 21:03 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