jeg kan ikke få det til at virke.
det er sikker mig der bare spørg dumt, men hvordan laver jeg den der TForm1.ToolButtonClick
for den er ikke under events, men der er denne TForm1.ToolBar1Click og den virker ikke.
Grunden til du ikke kan se den under events er fordi der ikke er oprettet nogen ttoolbuttons! De bliver først oprettet når programmet kører.
Jeg har ændret i din kode, så du kan se hvor det skal sættes ind, der er nok nogle små fejl.
form1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, Menus, ActnList, ExtActns, ImgList;
type
TForm1 = class(TForm)
ToolBar1: TToolBar;
ActionList1: TActionList;
MainMenu1: TMainMenu;
Filer1: TMenuItem;
tilfoej: TMenuItem;
Slet1: TMenuItem;
Afslut1: TMenuItem;
Om1: TMenuItem;
BrowseURL1: TBrowseURL;
ImageList1: TImageList;
procedure Afslut1Click(Sender: TObject);
procedure tilfoejClick(Sender: TObject);
procedure Slet1Click(Sender: TObject);
procedure Om1Click(Sender: TObject);
//Her fortæller vi der er en metode der hedder ToolButtonClick
procedure ToolButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4;
{$R *.dfm}
procedure TForm1.Afslut1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.tilfoejClick(Sender: TObject);
begin
Form2.ShowModal;
end;
procedure TForm1.Slet1Click(Sender: TObject);
begin
Form3.ShowModal;
end;
procedure TForm1.Om1Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;
//Her er koden for metoden
procedure TForm1.ToolButtonClick(Sender: TObject);
begin
Shellexecute(Handle, 'open', PChar( (sender as TToolbutton).Caption), '', '', SW_SHOW);
end;
end.
form2
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Shellapi;
type
TForm2 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.Button2Click(Sender: TObject);
var
Icon: TIcon;
Id: integer;
begin
Icon := TIcon.Create;
try
//Først indlæses det ikon, som er angivet
//med stien i edit
Icon.Loadfromfile( edit1.text );
//Ikonet lagres i imagelisten og dens plads
//gemmes i variablen id.
id := form1.ImageList1.AddIcon(icon);
//Her oprettes selve ToolButton'en
with TToolButton.Create(form1.ToolBar1) do
begin
Parent := form1.ToolBar1;
imageindex := id;
Caption := 'http:// Dit Link her';
//Her fortæller vi at ToolButtonClick skal være metoden der bliver kørt når vi trykker på knappen
onClick := form1.ToolButtonClick;
end;
finally
Icon.Free;
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
end;
end.
MvH
Stefan Svensson
http://fusket.frac.dk