Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi VCL für Microsoft-Style URL-Label (https://www.delphipraxis.net/118874-vcl-fuer-microsoft-style-url-label.html)

grenzgaenger 17. Aug 2008 23:26

Re: VCL für Microsoft-Style URL-Label
 
müsstest halt TJvLinkLabel noch mit 'n tapstopp aufbohren...

link, funktioniert, den cursor kannste selbst einstellen ...

PS: das label ist aus der JVCL

PPS: 'n link, so

Delphi-Quellcode:
jvlinklabel1.caption := '<link>http://test</link> test';

blackdrake 17. Aug 2008 23:44

Re: VCL für Microsoft-Style URL-Label
 
Zitat:

Zitat von grenzgaenger
müsstest halt TJvLinkLabel noch mit 'n tapstopp aufbohren...

Ich glaub das ist einfacher gesagt, als getan.

Angenommen, es wäre ein einziges Label, dann könnte ich ja mal schauen, wie ich das TabStopp reinbekomme (ich denke aber, dass hier auch die WinAPI wegen dem Zeichnen des gestrichelten Kastens mithelfen muss). Leider habe ich auch noch sehr wenig Erfahrung mit VCLs und der API. Hier kommt aber das große Problem hinzu, dass dieses Label verschiedene Links aufnehmen kann ("<link>Link A</link, Text, <link>Link B</link>"). Folglich müsste das Hinzufügen einer TabStopp-Funktionalität auch das Wechseln zwischen diversen Linkhervorhebungen beeinhalten (omg, wie geht das :( )

Gruß
blackdrake

blackdrake 18. Aug 2008 22:49

Re: VCL für Microsoft-Style URL-Label
 
Ich habe mir mal 10 VCLs heruntergeladen. Einige wollten sich mal wie immer nicht installieren lassen, da irgendwelche DCU's nicht vorhanden waren, aber ich habe die einfache Variante genommen: Ich habe alle PAS-Dateien nach "TabStop" durchsucht - und nichts gefunden. Folglich unterstützt keine der VCLs die gewünschte Eigenschaft.

Das Nachträglich hinzufügen scheint auch extrem kompliziert zu sein.

Die Vererbung des TLabels ist:
TLabel - TCustomLabel - TGraphicControl - TControl

Die Vererbung des TButtons* ist:
TButton* - TButtonControl* - TWinControl* - TControl

* = Enthält TabStop/TabOrder.

Folglich müsste das Hinzufügen von TabStop/TabOrder für ein TLabel ein übelster Umstand sein, da der einzigste gemeinsame Vorfahre von TButton und TLabel TControl ist, welches selbst aber keine TabStopps hat -> kein Erwerben von TabStopps mit reiner Vererbung möglich.

Oh man, ist denn noch niemand auf die Idee gekommen, ein Label als URL getarnt, mit einem Tab anzusteuern? Bei Microsoft ist das schon seit 2002 üblich. Und Google gibt keine Tipps für Delphi zu diesem Thema. :(

Gruß
blackdrake

grenzgaenger 18. Aug 2008 23:08

Re: VCL für Microsoft-Style URL-Label
 
da bist wohl der erste, der so etwas braucht... ich wüsst keinen grund, warum ein label einen tabstop nehmen soll...

aber dann hast du die ehre so etwas zu zaubern ... :-)

erst mal den label 'n handle beibringen... dann 'n tabstopp und schliesslich die richtige reihenfolge setzen lassen ... :-)

viel spass und vergnügen :-)

blackdrake 18. Aug 2008 23:15

Re: VCL für Microsoft-Style URL-Label
 
Zitat:

Zitat von grenzgaenger
da bist wohl der erste, der so etwas braucht... ich wüsst keinen grund, warum ein label einen tabstop nehmen soll...

Bei modernen Dialogen mit URL-Labels sollte man korrekte Farben, korrekten Mauszeiger und die TabStopps eben vorziehen. Leider habe ich von der VCL-Entwicklung kaum Ahnung, weswegen ich das mit den Handles auch kaum verstehe. Ich werd aber trotzdem mal schauen.

Wenn das Label eben eine wichtige Funktion hat, dann muss es auch über die Tastatur ansteuerbar sein (siehe Microsoft-Eigene-Dialoge). Alles andere ist Müll.

Bei Microsoft-Produkten gibts so feine Sachen schon sei Jahr und Tag und man muss sich nicht mit so einem Zeug rumstressen. Und bei Delphi kommen die ganzen wichtigen Dinge (64 Bit, Unicode, moderne VCLs) erst mit Version 2009.

Michael Habbe 18. Aug 2008 23:19

Re: VCL für Microsoft-Style URL-Label
 
Hi.

Zur Not erstellst Du es Dir selbst.
Ich würde ungefähr so vorgehen:

- TLinkEdit (oder so) von TEdit ableiten.
- ReadOnly setzen
- Flach
- 3D aus
- weisser Hintergrund abschalten bzw. Farbe nach Parent
- OnClick Link öffnen
- nach Tab mit Enter auf KeyPress/Down Link öffnen
- OnMouseMove Cursor setzen

Wenn es fertig ist, hier aber bitte auch präsentieren.


mfg
Michael

omata 18. Aug 2008 23:37

Re: VCL für Microsoft-Style URL-Label
 
Die Idee hatte ich auch schon. Was machst du mit der Markierungsmöglichkeit? Ist dieses Hervorheben ok?

grenzgaenger 18. Aug 2008 23:53

Re: VCL für Microsoft-Style URL-Label
 
Zitat:

Zitat von blackdrake
Zitat:

Zitat von grenzgaenger
da bist wohl der erste, der so etwas braucht... ich wüsst keinen grund, warum ein label einen tabstop nehmen soll...

Bei modernen Dialogen mit URL-Labels sollte man korrekte Farben, korrekten Mauszeiger und die TabStopps eben vorziehen. Leider habe ich von der VCL-Entwicklung kaum Ahnung, weswegen ich das mit den Handles auch kaum verstehe. Ich werd aber trotzdem mal schauen.

Wenn das Label eben eine wichtige Funktion hat, dann muss es auch über die Tastatur ansteuerbar sein (siehe Microsoft-Eigene-Dialoge). Alles andere ist Müll.

Bei Microsoft-Produkten gibts so feine Sachen schon sei Jahr und Tag und man muss sich nicht mit so einem Zeug rumstressen. Und bei Delphi kommen die ganzen wichtigen Dinge (64 Bit, Unicode, moderne VCLs) erst mit Version 2009.

wüsste nicht, wofür man das braucht ... aber egal. das handle brauchst du, um dir mit 'n tabstopp setzen zu können. du hast es richtig erkannt, das handle und der tabstopp wird mit TWinControl eingeführt... entweder du bastelst dir die beiden routinen kurz nach, leitest dir dein neues label von tWincontrol ab... oder bastelst 'n edit um ... ;-)

noch viel erfolg und spass dabei ...
GG

omata 19. Aug 2008 06:36

Re: VCL für Microsoft-Style URL-Label
 
Anhang scheint keinen zu interessieren, egal.

hitzi 19. Aug 2008 08:29

Re: VCL für Microsoft-Style URL-Label
 
Seit wann ist das Control TStaticLabel bei Delphi dabei? Das hätte auch die Möglichkeit fokussiert zu werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr.
Seite 2 von 5     12 34     Letzte »    

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 by Thomas Breitkreuz