Hallo.
Ich hab mal wieder ein sehr exotisches Problem.
Ich möchte ein
URL-Link-Label haben, das einen Fokus erhalten kann (wie bei Windows XP in der Systemsteuerung) - dies natürlich auf
VCL Ebene und kompatibel mit allen Windows Versionen.
Das Problem ist natürlich, dass ein GraphicControl kein
Handle haben kann und das Setzen des Handles auch nur zu Problemen führt - desweiteren kann ich auch nicht auf die offizielle TabList des TWinControl zugreifen.
Ich habe daher mich an
http://www.delphipraxis.net/internal...ct.php?t=89215 orientiert und diesen Codeteil erheblich verbessert sowie es auf Labels angepasst. Diese Klasse schleift einfach ein TWinControl mit, das den Focus des Graphic-Controls bestimmt. Dies ist zwar generell eine eher unsaubere Variante, jedoch hier die einzigst mögliche.
Mittlerweile funktioniert es zwar zur Laufzeit gut, jedoch gibt es ein gravierendes Problem, mit dem ich mich mehrere Wochen beschäftigt habe...
Das funktioniert:
Wenn man die
VCL auf das Form platziert, erhält sie den korrekten TabStop. Existieren also 3 Objekte mit den Tabstopps 0..2, erhält die neu gesetzte Komponente den TabStop = 3. Das ist OK.
Problem:
KOPIERT man die
VCL mittels Strg+C und Strg+V, so wird der TabStop Wert mitkopiert (in diesem Falle 2) und auch tatsächlich eingefügt! Das heißt, die NEUE
VCL erhält den TabStop 2 anstelle 3. Die
VCL, die den TabStop = 2 hatte, wird dadurch automatisch auf 3 gestuft, was absolut falsch ist. Kopiert man nun also LinkLabel-VCLs, so werden die TabStopps total verwustet.
(PS: Dieser Bug existiert bereits in dem Originalcode der CodeLib)
Bitte helft mir! Ich hab schon alles mögliche versucht und nichts hat gefruchtet
Gruß
blackdrake