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.