Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Link in Delphi einbauen! (https://www.delphipraxis.net/3904-link-delphi-einbauen.html)

Trouble_Maker 4. Apr 2003 23:01


Link in Delphi einbauen!
 
Hiho alle,
so ich will ein Link in mein Delphi programm einbauen! Wie dies funktioniert weiss ich schon:

Code:
procedure TForm1.Label1Click(Sender: TObject);
begin
ShellExecute(Application.Handle, 'open',
             PChar(Label1.Caption), nil, nil,
             SW_ShowNormal);
dabei wird dann die Seite geöffnet, wie das label die Cation hat!

So: Jetzt will ich, dass wie im Internet-Explorer die Links untersrichen werden, sobald man darüberfährt!
ich habe das probiert:

Code:
procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
label1.Font.Style:=[fsUnderline];
end;
Aber danach bleibt dann das Label untersrichen!
Das will ich aber nicht!
Die Lösung ist bestimmt ganz einfach! Aber ich komme nicht drauf!
Danke

Trouble_Maker

flomei 4. Apr 2003 23:50

Ich hab probiert das mit OnMouseLeave zu machen:
Delphi-Quellcode:
procedure TForm1.undo_underline(Sender: TObject);
begin
if
Label1.Font.Style:=[fsUnderline]
then
Label1.Font.Style:=[fsNormal]
end;
Funktioniert aber leider noch nicht. Vielleicht kannst du das irgendwie so umstellen, dass es geht.

MfG Florian

Luckie 5. Apr 2003 03:55

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:
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;
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.

Daniel B 5. Apr 2003 08:42

Hallo,

ich hätte hier auch noch eine Komponente für Dich, ist aber nicht von mir!
TLinkLabel.

Grüsse, Daniel :hi:

flomei 5. Apr 2003 12:32

Sehr gute Komponente! Find ich gut! Gefällt mir! :bouncing4:

MfG Florian

sakura 5. Apr 2003 12:53

Es gibt übrigens noch die offizielle DP-LinkLabel Komponente

http://www.delphipraxis.net/download.php?id=265

...:cat:...

Trouble_Maker 5. Apr 2003 16:42

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

Christian Seehase 5. Apr 2003 16:49

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)

APP 5. Apr 2003 16:50

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).

Daniel B 5. Apr 2003 16:50

Hallo,
Zitat:

Zitat von Trouble_Maker
Und wie installiere ich diese TLinkLabel ???
hab keine Ahnung ^^

Kann mir das jemand erklären ?!?

Also, im Menü auf Komponenten\Komponente installieren, dann im kommenden Fenster auf der Reiter "In enues Package", dort wählst Du dann die Unit aus und vergibst einen Namen für das neue Package und dann auf OK klicken.

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.
Seite 1 von 3  1 23      

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