![]() |
Link in Delphi einbauen!
Hiho alle,
so ich will ein Link in mein Delphi programm einbauen! Wie dies funktioniert weiss ich schon:
Code:
dabei wird dann die Seite geöffnet, wie das label die Cation hat!
procedure TForm1.Label1Click(Sender: TObject);
begin ShellExecute(Application.Handle, 'open', PChar(Label1.Caption), nil, nil, SW_ShowNormal); So: Jetzt will ich, dass wie im Internet-Explorer die Links untersrichen werden, sobald man darüberfährt! ich habe das probiert:
Code:
Aber danach bleibt dann das Label untersrichen!
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer); begin label1.Font.Style:=[fsUnderline]; end; Das will ich aber nicht! Die Lösung ist bestimmt ganz einfach! Aber ich komme nicht drauf! Danke Trouble_Maker |
Ich hab probiert das mit OnMouseLeave zu machen:
Delphi-Quellcode:
Funktioniert aber leider noch nicht. Vielleicht kannst du das irgendwie so umstellen, dass es geht.
procedure TForm1.undo_underline(Sender: TObject);
begin if Label1.Font.Style:=[fsUnderline] then Label1.Font.Style:=[fsNormal] end; MfG Florian |
Du mußt dein Label durch ein TStaticText ersetzen, da ich das Handle brauche und TLabel ist von TGraficControl abgeleitet und nicht von TWinControl und besitzt somit kein Handle. Es unterscheidet sich in der Handhabung aber nicht von einem TLabel.
Delphi-Quellcode:
Warum einfach, wenn es umstaändlich geht. Habe gerade gesehen ab D6 gibt es bei TLabel das Ereignis OnMouseEnter und OnMouseLeave. Brauchst du also nicht nachrüsten und kannst dein Label nehmen.
type
TForm1 = class(TForm) StaticText1: TStaticText; private { Private-Deklarationen } procedure CMMOUSEENTER(var msg: TMessage); message CM_MOUSEENTER; procedure CMMOUSELEAVE(var msg: TMessage); message CM_MOUSELEAVE; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.CMMOUSEENTER(var msg: TMessage); var pt : TPoint; begin GetCursorPos(pt); if WindowFromPoint(pt) = StaticText1.Handle then begin StaticText1.Font.Color := clBlue; StaticText1.Font.Style := [fsUnderline]; end; end; procedure TForm1.CMMOUSELEAVE(var msg: TMessage); var pt : TPoint; begin GetCursorPos(pt); if WindowFromPoint(pt) <> StaticText1.Handle then begin StaticText1.Font.Color := clBlack; StaticText1.Font.Style := []; end; end; |
Hallo,
ich hätte hier auch noch eine Komponente für Dich, ist aber nicht von mir! TLinkLabel. Grüsse, Daniel :hi: |
Sehr gute Komponente! Find ich gut! Gefällt mir! :bouncing4:
MfG Florian |
Es gibt übrigens noch die offizielle DP-LinkLabel Komponente
![]() ...:cat:... |
Hmm...
also habe den Code von Luckie ausprobiert! Leider habe ich aber kein CM_MOUSEENTER und CMMOUSELEAVE !!! (besitze Delphi 51) kann das sein, dass es das da noch nich gibt! - Und wie installiere ich diese TLinkLabel ??? hab keine Ahnung ^^ Kann mir das jemand erklären ?!? Danke Trouble_Maker |
Moin TroubleMaker,
CM_MOUSEENTER/CM_MOUSELEAVE sind in der Unit Controls deklariert. Die müsstest Du dann noch in die Uses Liste mit einbinden. Wobei ich mich nur frage, warum das bei Dir nicht der Fall ist, denn diese Unit wird standardmässig mit eingebunden, wenn Du ein neues Formular erzeugst (z.B. über Datei\Neues Formular) |
Hallo,
habe zu Hause auch D5, bei mir Funktioniert Luckies Code, für CM_MOUSEENTER muß die Unit "Controls.pas" in USES eingebunden sein (sollte aber in jedem Form automatisch eingebunden sein). |
Hallo,
Zitat:
Wenn Du dieses Package erstellt hast, dann mach einen Doppelklich drauf. Anschliessen sieht man ein kleines Fenster mit 3 oder 4 grossen Icons, eins davon heisst Intallieren, das anklicken, dabei wird/wurde die Komponente installiert, anschliessend kommt noch eine Abfrage ob Du das Speichern willst oder nicht, da sagst Du dann einfach Nein und alles ist Fertig. Grüsse, Daniel :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr. |
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-2025 by Thomas Breitkreuz