Entwickler-Ecke

Datenbanken - Interbase / DBGrid / URL aufrufen


klabri - Fr 26.03.10 15:31
Titel: Interbase / DBGrid / URL aufrufen
Hallo,
ich habe eine Interbase-Datenbank,die in einem Feld einen Internet-Link enthält;diesen
Link möchte ich über ein DBGrid aufrufen.
Mit einem Label funktioniert es so

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
Label1.Caption:=DBEdit5.Text;
Label1.Font.Color:=clBlue;
Label1.Font.Style:=[fsUnderline];
Cursor:=crHandPoint;

  ShellExecute(Application.Handle, 'open',
       PChar(DBEdit5.Text ), nilnil,
       SW_ShowNormal);

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt
Moderiert von user profile iconNarses: Titel erweitert.
Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Fr 26.03.2010 um 14:58


Nersgatt - Fr 26.03.10 15:34

Mit dem DB-Grid gehts es prinzipiell genauso (also der Aufruf mit ShellExecute). Du musst nur den Link aus dem Grid, statt aus dem Label nehmen. Die restlichen Zeilen Deines Quellcodes sind ja nur Design.


klabri - Fr 26.03.10 15:52

Ja, ich weiss ja gerade nicht wie ich den Link übernehmen kann.
Eigentlich wollte ich die Internetseit direkt aus dem Grid ausrufen,also Click
auf den Eintrag..


zuma - Fr 26.03.10 16:26

dazu kannst du das OnCellClick- oder onDblClick- Event des Grids verwenden (z.b anlegen durch Doppelklick auf onDblClick im Objectinspektor). Ich würde allerdings nie auf die Griddaten zugreifen, sondern aus der damit verbundenen Datenmenge die Daten nehmen.
Mal ein kleines Beispiel, um das per Doppelklick zu machen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm.DBGrid1DblClick(Sender: TObject);
var s : String;
begin
 if Sender is TDBGrid then
 begin
  s := TDBGrid(Sender).Datasource.Dataset.FieldByName('InternetlinkFeld').AsString;
  showmessage(s);
  ShellExecute(Application.Handle, 'open',
        PChar(s), nilnil,
        SW_ShowNormal);
 end;
end;

musst natürlich den Feldnamen 'InternetlinkFeld' auf deinen Feldnamen anpassen.


klabri - Fr 26.03.10 19:11

Danke für die Antwort !! (Bin Anfänger...)