AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eigene Komponente von TCustomControl > Eigenschaftseditor!
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Komponente von TCustomControl > Eigenschaftseditor!

Ein Thema von cherry · begonnen am 11. Apr 2006 · letzter Beitrag vom 9. Aug 2011
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#31

Re: Eigene Komponente von TCustomControl > Eigenschaftsed

  Alt 24. Apr 2006, 17:36
Zitat von cherry:
Na?
Wer wird denn hier ungeduldig werden?

Zitat von cherry:
1f) Ich will die Eigenschaft Default zur verfügung stellen.
Da diese Eigenschaft in keinem Vorgänger vorkommt, muss ich diese
selber programmieren. (Ist der Button Default reagiert er auf den Tastendruck Enter,
egal welche Komponente Fokusiert ist).
Schau doch mal in den Quelltext der VCL wie Borland das bei den Buttons gemacht hat.

Zitat von cherry:
Wie Fange ich alle Tastenereignisse ab?
Du verwendest ja schon CM_MOUSEENTER und CM_MOUSELEAVE.
Es gibt noch eine Menge weiterer Messages, die man verwenden kann.

Du musst hier im wesentlichen zwischen drei Arten unterscheiden:
  • WM_XXX Nachichten (Das WM steht für Windows Messages.)
  • CN_XXX Nachichten (Das CN steht für Component Notifications.) und
  • CM_XXX Nachichten (Das CM steht für Component Messages.)
Die WM_XXX Nachichten werden direkt von Windows an die Applikation gesendet. Manchmal sind die Nachichten aber nicht für das Form, sondern für einzelne Komponenten auf dem Form. Aus diesem Grund werden dann von dem Form (bzw. allgemein Parent Objekt) CN_XXX Nachichten an die Controlls gesendet für die die WM_XXX Nachichten eigentlich gedacht waren. Component Notifications sind also refektierte Windows Messages. CM_XXX Nachichten dagegen sind Nachichten die ausschließlich von der VCL generiert werden.

In Komponenten (Objekten) kann demnach WM_, CN_ und CM_ Nachichten abfangen.

Es gibt ein Dokument in dem alle CN und CM Nachichten aufgelistet sind.
(s. Anhang)

Zitat von cherry:
2f) Wie man in meinem Beispiel sieht, versuche ich die standard Caption auf den Komponentennamen zu setzen,
so wie ich es jetzt habe funktionierts. Einzige Nebenwirkung: Setzt man den Button auf ein Formular/Frame, dann
ist die Caption im OBJEKTINSPEKTOR erst gesetzt wenn man eine andere einstellung fokusiert. Zudem ists in meinem
Beispiel schlecht/kompliziert gemacht.
Wie setzte ich nun die standard Caption korrekt?
gleiche Antwort wie bei 1f)

Zitat von cherry:
3f) Ich bin auch dankbar für jeden sonstige Tipp!
Sachen die ich anders machen sollte?
Was mir damals bei der Komponentenentwicklung geholfen hat sind die Quelltexte der VCL.
Diese liegen ja dem Delphi (ich glaube ab Prof) bei.
(z.B. C:\Programme\Borland\Delphi7\Source\...)

Dort kann man sehen wie die Borländer das programmiert haben.
Sehr lehrreich.
Angehängte Dateien
Dateityp: zip delphi_messages_738.zip (5,4 KB, 18x aufgerufen)
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#32

Re: Eigene Komponente von TCustomControl > Eigenschaftsed

  Alt 25. Apr 2006, 08:44
Zitat von MaBuSE:
Zitat von cherry:
Na?
Wer wird denn hier ungeduldig werden?
Sorry, bin von natur aus ein wenig ungeduldug. Wollte ja nicht vergessen gehen

Zitat von MaBuSE:
Was mir damals bei der Komponentenentwicklung geholfen hat sind die Quelltexte der VCL.
Diese liegen ja dem Delphi (ich glaube ab Prof) bei.
(z.B. C:\Programme\Borland\Delphi7\Source\...)
Vielen Dank für den Tipp. Das wird mir einige Fragen beantworten.
Dank auch für den Anhang, ich hab nämlich so ein Dokument gesucht leider keins gefunden.

Dank der schön...

Gruss
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#33

Re: Eigene Komponente von TCustomControl > Eigenschaftsed

  Alt 26. Apr 2006, 11:40
Ok, ich gebs zu.. Ich bin zu blöde:

Ich hab weder rausgefunden welche Message ALLE Tastendrücke abfängt (Auch die die gar nichts mit meiner Komponente am Hut haben),
geschweige denn wie ich die Property "Deault" (Siehe z.B. TButton) programmiere!

Und das alles trotz den guten Tipps von MaBuSe...

AM I TOO SEXY?
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#34

Re: Eigene Komponente von TCustomControl > Eigenschaftsed

  Alt 1. Mai 2006, 09:06
Zitat von MaBuSE:
Was mir damals bei der Komponentenentwicklung geholfen hat sind die Quelltexte der VCL.
Diese liegen ja dem Delphi (ich glaube ab Prof) bei.
(z.B. C:\Programme\Borland\Delphi7\Source\...)

Dort kann man sehen wie die Borländer das programmiert haben.
Sehr lehrreich.
Dort habe ich die Datei "Buttons.pas" gefunden. Nur leider ist dort nicht ersichtlich wie die Property Default Programmiert
wird. Denn der gewöhnliche Button (TButton) finde ich nid dieser Datei nicht!
Ich finde aber z.B. den (TBitBtn) der von der Klasse TButton abgeleitet ist.. nur wo ist diese?
wo iser? help me!
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#35

Re: Eigene Komponente von TCustomControl > Eigenschaftsed

  Alt 1. Mai 2006, 09:09
Zitat von cherry:
...nur wo ist diese?
wo iser? help me!
die OH hilft doch fast immer :zwiner:

Zitat von OH:
TButton kapselt ein Schaltflächen-Steuerelement von Windows.

Unit
StdCtrls
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von cherry
cherry

Registriert seit: 14. Nov 2005
561 Beiträge
 
RAD-Studio 2009 Ent
 
#36

Re: Eigene Komponente von TCustomControl > Eigenschaftsed

  Alt 1. Mai 2006, 09:12
Uhh... Danke...
Ist das nur mein Gefühl, oder ist die ganze Welt verrückt geworden!?
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#37

AW: Eigene Komponente von TCustomControl > Eigenschaftseditor!

  Alt 9. Aug 2011, 12:48
Ich hänge mich mal hier dran...

Erst einmal danke an MaBuSE. Ich habe hier einige interessante Hinweise gefunden
(Die Bilder im Beitrag 9 sind übrigens hübsch. )

Nun zu meiner Frage:

Ich habe unter XE nun einen Propertyeditor für eine Komponete (TodDataSet) eingerichtet. Grundsätzlich funktioniert dies schon, aber es gibt ein paar unerwartete Details.
Anbei mal ein Screenshot, wie der Objektinspektor die Komponente standardmäßig anzeigt und wie mit registriertem Editor...

Ich kann jetzt mit Doppelklick mein Formular öffnen, hätte aber sonst gern die Originale Darstellung der SubPropertys. Insbesondere die Eigenschaft "Name" soll nicht dargestellt werden. Kann ich das auf Knopfdruck erreichen oder muss ich GetPropertys überschreiben?


aktueller Quelltext:
Delphi-Quellcode:
unit odPropNameEditor;
 
interface
 
uses
  DesignEditors, DesignIntf;
 
type
 
  TodPropNameEditor = class(TClassProperty)
  private
  protected
  public
    function GetAttributes: TPropertyAttributes; override;
    procedure Edit; override;
  published
  end;
 
implementation
 
uses
  odPropNameEditorDialog;
 
{ TodPropNameEditor }
 
procedure TodPropNameEditor.Edit;
begin
  ShowOdPropNameEditorDialog(nil);
end;
 
function TodPropNameEditor.GetAttributes: TPropertyAttributes;
begin
  Result := inherited GetAttributes + [paDialog];
end;
 
end.
 
*********************************************
 
unit odControlsEditorsRegister platform;
 
interface
 
procedure Register;
 
implementation
 
uses
  DesignIntf, odExpertEditor, odExpert, od_dataset, odPropNameEditor;
 
procedure Register;
begin
  RegisterComponentEditor(TodExpert, TodExpertEditor);
  RegisterPropertyEditor(TypeInfo(TodDataSet), nil, '', TodPropNameEditor);
end;
 
end.
Miniaturansicht angehängter Grafiken
propeditor.png  
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#38

AW: Eigene Komponente von TCustomControl > Eigenschaftseditor!

  Alt 9. Aug 2011, 14:39
Die Bilder im Beitrag 9 sind übrigens hübsch.
Ich habe das Verhalten der DP als Bug gemeldet.
( http://www.delphipraxis.net/issue-400/ )

Bitte den Bug bestätigen, damit er auch geprüft/behoben wird.-
( Are you able to reproduce this bug? -> [yes] !!! )

Zu deiner Frage kann ich im Moment leider nicht viel sagen, da ich mich schon eine Weile nicht mehr mit Komponentenerstellung beschäftigt habe. Und zum Einarbeiten fehlt mir im Monent die Zeit. Sorry.
Ich hoffe das jemand anderes eine Lösung schreibt.
Grüße
MaBuSE
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


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 02:07 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