![]() |
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: |
Hallo,
zur Installation von TLinkLabel auf das Package "PkgLinkLabel.dpk" doppelklicken, dann in D5 auf "installieren" drücken, danach erscheint in der Kompo-Leiste ein Reiter 'Delphi-PRAXiS' wo Du die Komponente findest. |
ich gebs auf, heute bin ich immer Zweiter :bounce1: :bounce2: :firejump:
|
hiho,
habs hinbekommen es zu installiern! Aber wie kann ich jetzt es mit dieser Komponente einstellen, dass es ein Link wie im Internet ist ? mit dem unterstrichenen, wenn die Maus darauf ist! danke Trouble_Maker |
Zitat:
Grüsse, Daniel :hi: |
Zitat:
Und wenn Du bei Caption was eingibst, dann sieht es wie ein benannter Link aus, also ![]() Grüsse, Daniel :hi: |
hmm nein ich möchte es so machen, dass so machen:
Code:
das das so ist!
label1.Font.Style:=[];
und später, wenn man mit der Maus darüberfährt soll es unterstrichen werden! also so :
Code:
aber wie geht das ? Es geht ja nich mit onmousemove!!!
label1.Font.Style:=[fsUnderline];
??? Trouble_Maker |
Delphi-Quellcode:
Grüsse, Daniel :hi:
procedure TForm1.Label1MouseEnter(Sender: TObject);
begin Label1.Font.Style := [fsUnderline]; end; procedure TForm1.Label1MouseLeave(Sender: TObject); begin Label1.Font.Style := [fsItalic]; end; |
arg... das is wohl nich klar geworden!
Aber bei mir bei den Ereignissen, habe ich kein onmouseenter und onmouseleave !!! Woran liegt das ?!? Danke... |
Also, ich kenne die Komponente nicht, aber sie sollte eigentlich ein OnMouseEnter und OnMouseLeave haben. Sollte das nicht der Fall sein, warum ersetzt du dein Label nicht durch ein TStaticText und nimmst meine Lösung?
|
Zitat:
Beweise im Anhang! Und wenn Du es immer noch nicht glauben willst, dann nimm doch einfach Luckies Lösung und gut is. :) Grüsse, Daniel :hi: |
ach.... irgendwie is das alles *******!
Ok der Bildbeweis is in Ordnung ! Aber trotzdem habe ich nich onmouseenter und onmouseleave! Weiss nich woran das liegt! Und das mit dem StaticText kann ich auch nich machen, weil dort bei den Ereignissen auch kein cmmouseenter und cmmouseleave gibt! :-( liegt das an meinem Delphi ??? Trouble_Maker |
Also ich denke das bei der Installation was scheif gegangen ist, oder Delphi selbst ne Macke hat und evtl. neu installiert werden muss.
Wie dem auch sei, folgendes ist mit dem Static auf jedenfall möglich.
Delphi-Quellcode:
Grüsse, Daniel :hi:
procedure TForm1.StaticText1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer); begin StaticText1.Font.Style := [fsUnderline]; end; |
Also die ScreenShot bezogen sich auf die Komponente, die Daniel gepostet hatte. Was ist eigentlich das Problem mit dem DPLinkLabel. Das hat doch alle Eigenschaften für HoverColor, VisitedColor und LinkColor? Und ist entwickelt und getestet für alle Versionen ab Delphi 5.
...:cat:... |
Zitat:
Was meinst du warum ich die Klimmzüge mit:
Delphi-Quellcode:
Gemacht habe? Übernimm den Code inklusive den Prozedur-Deklarationen so wie er da ist und fertig is.
procedure CMMOUSEENTER(...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 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