77 Stimmen

Delphi/Lazarus: Link zu einer Website in einer Anwendung setzen

Tutorial von Stefan Trost | Letztes Update am 29.01.2023 | Erstellt am 12.08.2012

Manchmal ist es eine schöne Sache, einen Link direkt aus einem Windows-Programm heraus aufrufen zu können, zum Beispiel um einen Link zu seiner Website oder zu Hilfeseiten des Programms zu setzen. In diesen Tutorial möchte ich euch zeigen, wie ihr dies in Delphi oder Lazarus realisieren können.

In Delphi benutzen wir dafür eine API-Funktion aus der Unit ShellApi und wir wollen das Design des Labels, das den Link zeigen soll, so anpassen, das es wie ein Link aussieht.

Das Label mit dem Link

Um unser TLabel wie ein Link aussehen zu lassen, nutzen wir die folgenden Font- und Cursor-Eigenschaften, die man natürlich auch über den Objektinspektor einstellen kann:

Label1.Caption    := 'www.sttmedia.de';
Label1.Font.Color := clBlue;
Label1.Font.Style := [fsUnderline];
Label1.Cursor     := crHandPoint;

Die Caption unseres Labels ist die Internetadresse, die wir aufrufen möchten. Diese soll später über den Code ausgelesen und aufgerufen werden, so dass wir zum Ändern der Adresse nur die Caption des Labels anpassen brauchen und nicht noch zusätzlich etwas im darunterliegenden Code.

Um auch mit der Schrift einen Link nachzubilden, setzen wir die Schriftfarbe auf blau und den Schriftstyle auf unterstrichen. Zusätzlich passen wir den Cursor an, so dass der Cursor zu einer Hand wird, sobald wir die Maus über das Label bewegen, um dessen Anklickbarkeit zu signalisieren.

Der Delphi-Code

Falls wir Delphi für die Programmierung nutzen, müssen wir die Unit "ShellApi" zu unserer "uses"-Section hinzufügen. Anschließend können wir den folgenden Code in das OnClick-Ereignis unseres Labels schreiben:

uses
   ShellApi, ...
 
procedure TForm1.Label1Click(Sender: TObject);
begin
  ShellExecute(Application.Handle, 'open', PChar(Label1.Caption), 
    nil, nil, SW_ShowNormal);
end;

Wenn wir nun auf unser Label klicken, öffnet sich der Standardbrowser mit unserer Internetseite, die wir in die Caption des Labels geschrieben haben.

Der Lazarus-Code

Wenn ihr statt Delphi Lazarus nutzt, geht es übrigens noch einfacher: In Lazarus könnt ihr einfach die Funktion OpenURL() aus der Unit LCLIntf verwenden, um eine Website plattformunabhängig aus eurem Lazarus-Programm heraus auf einem beliebigen Betriebssystem zu öffnen. Der Code könnte also so aussehen:

uses
   LCLIntf, ...

procedure TForm1.Label1Click(Sender: TObject);
begin
  OpenURL('https://' + Label1.Caption);
end;

OpenURL() kann die URL direkt ohne weitere Parameter übergeben werden und öffnet die Website im Standardbrowser des Systems. Da wir die Internetadresse ohne "https://" in die Caption unseres Labels geschrieben haben, hängen wir hier vor dem Aufruf noch "https://" vorne an die Caption des Labels an. Das lässt sich aber natürlich noch beliebig anpassen.

AntwortenPositivNegativ

Über den Autor

AvatarSoftware von Stefan Trost finden Sie auf sttmedia.de. Benötigen Sie eine individuelle Software nach Ihren eigenen Wünschen? Schreiben Sie uns: sttmedia.de/kontakt
Profil anzeigen

 

Ähnliche Themen

Delphi: Systemweiter HotKey

Tutorial | 3 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.