Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Komponenten Editor und Propertys (https://www.delphipraxis.net/113576-komponenten-editor-und-propertys.html)

sebi87 10. Mai 2008 12:07


Komponenten Editor und Propertys
 
Hallo Delphi-Gemeinde,

Ich habe (mal wieder) ein Problem, ich muss mit einem Komponenten-Editor, der beim doppelklick auf die Komponente aufgerufen wird verschiedene Propertys lesen und ändern können.
Weiß jemand wie ich das machen kann das ich mit einem Komponenten-Editor mehr als eine Property ändern kann.

Also zum Beispiel:
Meine Komponente hat als property's:
Delphi-Quellcode:
property Groesse : integer read FGroesse write FGroesse ;
property Laenge : integer read FLaenge write FLaenge ;
und jetzt soll dieser eine Komponenten-Editor beim Öffnen die Werte aus Groesse und Laenge lesen ond beim Schließen sollen die geänderten Werte zurückgeschrieben werde.

Hat da jemand eine Idee oder sogar eine Lösung?


Danke

Sebastian

Muetze1 10. Mai 2008 14:32

Re: Komponenten Editor und Propertys
 
Zitat:

Zitat von sebi87
Ich habe (mal wieder) ein Problem, ich muss mit einem Komponenten-Editor, der beim doppelklick auf die Komponente aufgerufen wird verschiedene Propertys lesen und ändern können.
Weiß jemand wie ich das machen kann das ich mit einem Komponenten-Editor mehr als eine Property ändern kann.

Da du deinen Dialog aufrufst (welcher den Editor darstellt), kannst du ihm einfach die Instanz deiner Komponente mitgeben und damit hast du im Editor Zugriff auf alle Properties. Somit kannst du auch mehrere Abfragen/Setzen.

sebi87 10. Mai 2008 20:08

Re: Komponenten Editor und Propertys
 
Zitat:

Zitat von Muetze1
Da du deinen Dialog aufrufst (welcher den Editor darstellt), kannst du ihm einfach die Instanz deiner Komponente mitgeben

kann mir hierzu jemand ein Kodebeispiel posten, weiß im Moment nicht wie ich das machen soll.


Sitz gerade irgendwie zu dicht vor dem PC und sehe die Lösung nicht.


Danke

Muetze1 10. Mai 2008 20:13

Re: Komponenten Editor und Propertys
 
Na dann zeig doch mal deinen bisherigen Ansatz, oder soll ich dir gleich einen kompletten Property Editor schreiben?

sebi87 11. Mai 2008 12:13

Re: Komponenten Editor und Propertys
 
Nein ich will ja keinen Propery-Editor sondern einen Komponenten-Editor. Der funktioniert soweit auch.
Jetzt will ich nur die Instanz der Komponente übergehben, damit ich zugriff auf die Propertys habe und diese auch ändern kann.

DeddyH 11. Mai 2008 12:21

Re: Komponenten Editor und Propertys
 
Zitat:

Zitat von sebi87
Nein ich will ja keinen Propery-Editor sondern einen Komponenten-Editor.

Hä? :gruebel:

sebi87 11. Mai 2008 12:26

Re: Komponenten Editor und Propertys
 
Hä? Vertsteh ich jetzt nicht.

Eigentlich hab ich es doch ganz klar beschrieben.
Ich hab einen Komponenten-Editor und mit diesem will/soll ich auf mehrere Propertys gleichzeitig zugreifen und sie ändern können.

Wenn ich es richtig weiß ist ein Property-Editor immer nur für eine Property, bzw für mehrere des selben Typs aber nicht zur gleichen Zeit.

der Komponent-Editor wird über einen Doppelklick auf die Komponente aufgerufen und nicht über den Objectinspector.


Grüßle Sebastian

DeddyH 11. Mai 2008 12:32

Re: Komponenten Editor und Propertys
 
Gut, dann hab ich das falsch verstanden. Aber zumindest meine D7-Hilfe beschreibt die Entwicklung eines Komponenteneditors doch recht ausführlich.
Zitat:

Komponenteneditoren bestimmen, was geschieht, wenn der Benutzer im Entwurfsfenster auf die Komponente doppelklickt. Außerdem ermöglichen sie das Kopieren von Komponenten in benutzerdefinierten Formaten in die Windows-Zwischenablage.

Wenn Sie für die Komponenten keinen Komponenteneditor verfügbar machen, verwendet Delphi den Standardeditor. Dieser wird von der Klasse TDefaultEditor implementiert. TDefaultEditor fügt dem lokalen Menü der Komponente keine neuen Einträge hinzu. Wenn der Benutzer auf die Komponente doppelklickt, durchsucht TDefaultEditor die Eigenschaften der Komponente und generiert (oder aktiviert) die erste gefundene Ereignisbehandlungsroutine.

Wenn Sie neue Einträge in das lokale Menü aufnehmen, das Verhalten der Komponente bei einem Doppelklick ändern oder neue Zwischenablageformate hinzufügen wollen, leiten Sie eine Klasse von TComponentEditor ab und registrieren sie für die Komponente. In den überschriebenen Methoden können Sie über die Eigenschaft Component von TComponentEditor auf die zu bearbeitende Komponente zugreifen.

Ein Komponenteneditor wird in vier Arbeitsschritten erstellt:

Einträge in das Kontextmenü einfügen.
Das Doppelklickverhalten ändern.
Zwischenablageformate hinzufügen.
Den Komponenteneditor registrieren.
Und das ist nur die erste Zusammenfassung.

sebi87 11. Mai 2008 12:37

Re: Komponenten Editor und Propertys
 
Ja das ist mir alles klar, das selbe steht in der Hilfe von Delphi 4 und im Handbuch.
Hab ich auch alles definiert und funktioniert auch.

Nur kann ich nicht auf die Propertys der Komponete zugreifen, welche ich mithilfe des Dialogs, der beim Doppelklick geöffnet wird, ändern will, zugreifen.

Das ist eigentlich das Problem worum es hier geht, kann sein das ich es etwas missverständlich formuliert habe

Muetze1 11. Mai 2008 16:16

Re: Komponenten Editor und Propertys
 
Zitat:

Zitat von sebi87
Nur kann ich nicht auf die Propertys der Komponete zugreifen, welche ich mithilfe des Dialogs, der beim Doppelklick geöffnet wird, ändern will, zugreifen.

Ich verstehe dein Problem immernoch nicht, schliesslich hast du doch die Komponenteninstanz in der Eigenschaft Component, diese erbst du doch vom TComponentEditor. Wo liegt denn nun das eigentliche Problem?


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz