Hallo.
Am liebsten wäre mir ja eine "professionelle" TLinkLabel Komponente, die exakt das selbe Ergebnis liefert wie Windows (
API?). Aber ich glaube, da in der
VCL ja sowieso meist alles Eigenentwicklungen sind, ist das eine Utopie.
@Assertor / @Daniel: Ja, es wäre sehr interessant zu wissen, ob diese Link-Komponente von D2009 XP erfordern wird oder nicht. Wenn es auch mit Windows 2000 funktionieren würde, wäre es die Non-Plus-Ultra-Lösung.
@Michael Habbe: Von der Idee halte ich leider nichts. Eine TEdit Komponente handelt den Focus anderst. Es gibt zum einen einen Text-Tastaturcursor, zum anderen sind Tastenkombinationen wie Strg+A möglich etc.
@omata: Vielen Dank für dieses Beispiel. Ich bin gerade dabei, es mir anzuschauen und zu begreifen.
Derzeit sehe ich aber in deinem Beispiel folgende Probleme:
1. Wenn das Label den Focus hat, dann erscheint es in fetter Schrift (liegt das an meiner ClearType-Schriftartenglättung?) Ich finde aber keine override-Eigenschaft, die Code ausführt, wenn das Label den Focus erhält. Ich weiß echt nicht, was hier los ist.
2. Der Focus-Rahmen ist nicht korrekt um den Link positioniert. Abstände vor und hinter dem Link sind mir etwas zu groß.
3. Die Strichellinien um den fokusierten Link sind zu breit. Windows strichelt ein Focus'ed Item mit 1-1 Pixel Strichen.
4. Die Link-Standardfarben sollten verwendet werden. Ich glaube, dass (siehe Post 1) die Standardfarbe für einen Link innerhalb eines Windows-Dialoges clHotLight ist.
5. Links natürlich standardgemäß unterstreichen.
Außerdem würde ich mir einen Microsoft-Hand-Cursor wünschen (natürlich über die
API, nicht als fest eingebundene statische Ressource) - leider finde ich in
DP und Google nichts dergleichen. (Schlagwörter: Hand Cursor, Windows Hand Cursor, IE-Cursor, IDC_Hand, Microsoft Hand Cursor)
Ich würde gerne ein Spin-Off von deiner
VCL machen, in der ich zum einen die Probleme behebe und eventuell den Microsoft-Cursor-Support aktiviere.
Außerdem möchte ich eine
VCL mit weniger Umfang erstellen, die nur 1 Link enthält.
Sprich:
- 1 Label = 1 Link
- Keine "<link>" und "</link>"
- Folglich nur 1 möglicher Linkfokus, der dem Labelfokus entspricht
- Folglich keine Focuswechsel mit Pfeiltasten etc.
Mal gucken, ob ich das hinbekomme. Der Quellcode ist mir im Moment noch ein Rätsel.
Gruß
blackdrake