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 Editor für Eigenschaft von Typ TLabel (https://www.delphipraxis.net/20744-editor-fuer-eigenschaft-von-typ-tlabel.html)

DirkG 22. Apr 2004 12:40


Editor für Eigenschaft von Typ TLabel
 
Ausgangsbasis ist eine Komponente mit einer Eigenschaften vom Typ TCaption.

Nun würde ich gerne den Eigenschaftseditor von TCaption verwenden, um diese Eingenschaft in der IDE zu ändern. Wo finde ich den? :wall:
Der Aufruf müsste ja wie folgt aussehen.

Delphi-Quellcode:
  RegisterPropertyEditor(TypeInfo([??? hier fehlt was]), [Klassenname], [Eigenschaft], [??? hier fehlt was]);
Danke!

[edit=sakura] BBCode aktiviert Mfg, sakura[/edit]

Muetze1 22. Apr 2004 13:30

Re: Editor für Eigenschaft von Typ TLabel
 
Moin!

Ich steig da nicht so hinter was du im Endeffekt haben willst:

1. Willst du eine Eigenschaft vom Typ TLabel den Property Editor für TCaption registrieren?
2. Oder hast du eine String-Property und möchtest dafür den TCaption Property Editor nutzen?

Bei dem 2. Punkt würde es reichen, wenn du in deiner Komponente diese Property abänderst auf den Typ TCaption, dann nimmt der OI automatisch den PropEditor für TCaption. Ansonsten ist TCaption nur ein neuer, in der RTTI vermerkter Typ, gleich dem Typ String.

Delphi-Quellcode:
Type
  TCaption = Type String;
MfG
Muetze1

DirkG 22. Apr 2004 13:41

Re: Editor für Eigenschaft von Typ TLabel
 
Da hab ich mich wohl nicht richtig ausgedrück :gruebel:! Sorry!
Also noch mal das ganze erklären.

Mein Problem stellt sich bei folgender Aufgabe:

Code:
//--- Komponentendefinition

type TMyCompo = class(TComponent)
        private      
          FCaption1: TCaption;
        :
        :
        published
          property MyCaption: TCaption read FCaption1 write FCaption1;
    end;

//---

//--- Komponente Registrieren

procedure Register;
begin
  RegisterPropertyEditor(TypeInfo(string [?] ), TMyCompo, MyCaption, [??? hier fehlt was]);
  RegisterComponents('Samples', [TMyCompo]);
end;

//---
Ich möchte gerne wissen, was an der Stelle der ? eingetragen werden muss.
Danke!

[edit=sakura] BBCode aktiviert. Mfg, sakura[/edit]

shmia 22. Apr 2004 13:47

Re: Editor für Eigenschaft von Typ TLabel
 
Zitat:

Zitat von DirkG
Ausgangsbasis ist eine Komponente mit einer Eigenschaften vom Typ TCaption.

Ist deine Komponente
  • von TLabel abgeleitet (Vererbung) ?
  • besitzt ein Property (property Label:TLabel read FLabel write FLabel) (also nur einen Zeiger auf ein TLabel-Objekt)
  • enthält ein TLabel-Objekt (Aggregation) und präsentiert dieses über ein Property nach aussen (property Label:TLabel read FLabel)
Im 1.) Fall brauchst du gar nichts tun, sondern nur das Label um deine Eigenschaften und Methoden erweitern.

Im 2.) Fall brauchst du ebenfalls nichts tun ausser deine Komponente zusammen mit einem Label
auf ein Formular zu setzen. Dann kannst du im ObjInsp. im Property Label ein Label aus allen
Labels auf dem Formular auswählen.

Im 3.) Fall hast du ein ernstes Problem, da das Label deiner Komponente gehört und nicht auf
dem Formular liegt.

DirkG 22. Apr 2004 13:58

Re: Editor für Eigenschaft von Typ TLabel
 
Hi Shmia

Zitat:

enthält ein TLabel-Objekt (Aggregation) und präsentiert dieses über ein Property nach aussen (property Label:TLabel read FLabel)
Das ist der Fall. Die Ursprungsklasse ist TPanel.

Du hast mich aber auf eine Idee gebracht. Ich werde mal ein wenig probieren und melde mich dann wieder. Vieleicht war das ja die Lösung.

Muetze1 22. Apr 2004 14:16

Re: Editor für Eigenschaft von Typ TLabel
 
Moin!

@DirkG:

Bei deinem geposteten Code brauchst du keinen Property Editor registrieren, da der OI automatisch durch den Typ TCaption den Property Editor für TCaption nimmt.

Und wenn du z.B. ein TLabel als Property definierst, dann wird auch automatisch das Label mit seinen Sub-Properties angezeigt.

MfG
Muetze1

DirkG 22. Apr 2004 15:43

Re: Editor für Eigenschaft von Typ TLabel
 
Moin, Moin

@Muetze1
@shmia

Vielen Dank für Eure Hilfe. Ich habe das Versuchen aufgegeben :freak: , da mir die Zeit etwas im Nacken sitzt und einen eigenen Editor erzeugt. Sollte jemand noch eine Lösung für das Problem haben, kann er sich ja melden. :hi:


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