Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.05.06;
Скачать: [xml.tar.bz2];

Вниз

как сделать ссылку на сайт в форме   Найти похожие ветки 

 
Andvitar ©   (2012-01-01 17:13) [0]

Здравствуйте. Есть дочерняя форма Form2. Нужно в этой форме сделать ссылку на сайт чтобы при клике на эту ссылку сайт загрузился во внешний браузер.Как это реализовать ? Если просто поместить компонент Label с названием сайта то загрузки не будет.


 
WinExec   (2012-01-01 17:21) [1]

Но если к этому Label-у написать обработчик события OnClick, а в этом обработчике вызвать функцию WinExec (описание которой см. в справке по WinAPI), то загрузка будет.


 
asail ©   (2012-01-01 17:57) [2]


> Есть дочерняя форма Form2. Нужно в этой форме сделать ссылку
> на сайт

Так же, как и не на дочерней форме Form17...

> Если просто поместить компонент Label с названием сайта
> то загрузки не будет

Логично...

А если серьезно, то смотри
> WinExec   (01.01.12 17:21) [1]


 
Юрий Зотов ©   (2012-01-01 17:59) [3]


uses
 ShellAPI;

procedure TForm1.FormCreate(Sender: TObject);
begin
 with Label1 do
 begin
   Font.Style := [fsUnderline];
   Cursor := crHandPoint;
   Caption := "http://www.delphimaster.ru/cgi-bin/forum.pl?n=3"
 end
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
 ShellExecute(0, "open", PChar(Label1.Caption), nil, nil, SW_SHOWNORMAL)
end;


 
Andvitar ©   (2012-01-01 19:14) [4]

Спасибо за код. Заработало.


 
brother ©   (2012-01-02 09:56) [5]

unit HyperLink;

interface

uses
 Windows, Classes, SysUtils, Controls, StdCtrls, Graphics, ShellApi;

type
 THyperLink = class(TLabel)
 private
   FURL: string;
   FBold, FUnderline: boolean;
   function ValidationURL(AURL: string): boolean;
 public
   procedure _OnMouseLeave(Sender: TObject);
   procedure _OnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

   constructor Create(AOwner: TComponent); override;
 protected
   procedure Click; override;
 published
   property URL: string read FURL write FURL;
   property Bold: boolean read FBold write FBold;
   property Underline: boolean read FUnderline write FUnderline;
 end;

procedure Register;

implementation
{$R HyperLink.dcr}

procedure Register;
begin
 RegisterComponents("Standard", [THyperLink]);
end;

function THyperLink.ValidationURL(AURL: string): boolean;
begin
 if Length(AURL) = 0 then
 begin
   Result:= False;
   Exit;
 end;

 if (Pos("http://", AnsiLowerCase(AURL)) > 0) or
  (Pos("www.", AnsiLowerCase(AURL)) > 0) or
  (Pos("mailto:", AnsiLowerCase(AURL)) > 0) then Result:= True
 else
   Result:= False;
end;

procedure THyperLink._OnMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
 if (ValidationURL(URL)) or (ValidationURL(Caption)) then
 begin
   if Cursor <> crHandPoint then Cursor:= crHandPoint;
 end
 else
 begin
   if Cursor <> crDefault then Cursor:= crDefault;
 end;
 
 if FBold then Font.Style:= Font.Style + [fsBold];
 if FUnderline then Font.Style:= Font.Style + [fsUnderline];
end;

procedure THyperLink._OnMouseLeave(Sender: TObject);
begin
 if FBold then Font.Style:= Font.Style - [fsBold];
 if FUnderline then Font.Style:= Font.Style - [fsUnderline];
end;

constructor THyperLink.Create(AOwner: TComponent);
begin
 inherited;
               
 FBold:= False;
 FUnderline:= False;

 with Font do
 begin
   Color:= clBlue;
   Name:= "MS Sans Serif";
   Size:= 12;
 end;

 Transparent:= True;
 
 OnMouseMove:= _OnMouseMove;
 OnMouseLeave:= _OnMouseLeave;
end;

procedure THyperLink.Click;
begin
 inherited;
 {$WARNINGS OFF}
 if ValidationURL(URL) then
   ShellExecute(Parent.Handle, "open", PChar(FURL), nil, nil, SW_SHOW)
 else
   if ValidationURL(Caption) then
     ShellExecute(Parent.Handle, "open", PChar(Caption), nil, nil, SW_SHOW)    

 {$WARNINGS ON}
end;

end.


 
Андреевич   (2012-01-02 21:35) [6]

я бы курсор еще не дельфевый hand взял, а системный, примерно так:
Screen.Cursors[100]:=LoadCursor(0,IDC_HAND);


 
brother ©   (2012-01-03 21:09) [7]

> [5] brother ©   (02.01.12 09:56)

цэ поделка для домашенго использования...


 
Erythroxylum   (2012-01-04 05:00) [8]


> brother ©   (02.01.12 09:56) [5]


у це нереальный выпендрёж.


 
brother ©   (2012-01-06 09:34) [9]

удобно? наглядно? чего ж еще то?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2012.05.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
2-1326020364
Gu
2012-01-08 14:59
2012.05.06
dllmain vs init-final


2-1326037158
toropoff
2012-01-08 19:39
2012.05.06
скрол грида


15-1325175837
Алексей Татьянович
2011-12-29 20:23
2012.05.06
1 000 000. Куда?


15-1325104202
Юрий
2011-12-29 00:30
2012.05.06
С днем рождения ! 29 декабря 2011 четверг


9-1191964532
Help me!
2007-10-10 01:15
2012.05.06
Math либа для работы с векторами и матрицами.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский