Hallo!
Ich habe folgendes problem und beiss mir daran schon seit Tagen die Zähne aus, wahrscheinlich ist die Lösung aber so simple dass ich die einfach nicht sehen kann. Und zwar habe ich ein Formular auf dem nichts zu sehen ist (keine Komponenten) nun binde ich eine globale Unit ein die von sich aus auf dem Formular eine TToolbar und einen TToolbutton setzt. Wenn ich jetzt aber versuche dem Button ein OnClick zuzuweisen sagt mir Delphi "Inkompatible Typen: Methodenzeiger und reguläre Prozedur". Ich habe shon alles mögliche versucht aber ich komme einfach nicht drauf wie ich das in einer externen Unit deklarieren muss damit mich Delphi versteht.
Im folgenden habe ich die globale Unit die aufgerufen mal angehängt:
unit global;
interface
uses ComCtrls, Dialogs, Forms, Controls, StdCtrls, Classes, Sysutils;
procedure main;
procedure myClick(Sender: TObject);
implementation
uses Unit1;
var
tb : TToolbar;
btn: TToolButton;
procedure myClick(Sender: TObject);
begin
showmessage('Button was clicked!');
end;
procedure main;
begin
with Application.Mainform do
begin
Caption := 'Test';
tb := TToolbar.Create(nil);
tb.parent := Application.Mainform;
tb.Flat := true;
tb.Autosize := true;
tb.Images := Unit1.Form1.ImageList;
btn := TToolButton.Create(nil);
tb.InsertControl(btn);
btn.ImageIndex := 0;
btn.OnClick := myClick;
end;
end;
end.
Der Aufruf sieht so aus, dass lediglich in der Unit1 im OnShow Event des Formulares die Main Prozedur aufgerufen wird. Button und die Toolbar werden ja generiert und das Image aus der Imagelist wird auch zugewiesen, nur der kleine Click der fehlt halt noch.
Vielen Dank für Eure Hinweise! Oli
Ich habe folgendes problem und beiss mir daran schon seit Tagen die Zähne aus, wahrscheinlich ist die Lösung aber so simple dass ich die einfach nicht sehen kann. Und zwar habe ich ein Formular auf dem nichts zu sehen ist (keine Komponenten) nun binde ich eine globale Unit ein die von sich aus auf dem Formular eine TToolbar und einen TToolbutton setzt. Wenn ich jetzt aber versuche dem Button ein OnClick zuzuweisen sagt mir Delphi "Inkompatible Typen: Methodenzeiger und reguläre Prozedur". Ich habe shon alles mögliche versucht aber ich komme einfach nicht drauf wie ich das in einer externen Unit deklarieren muss damit mich Delphi versteht.
Im folgenden habe ich die globale Unit die aufgerufen mal angehängt:
unit global;
interface
uses ComCtrls, Dialogs, Forms, Controls, StdCtrls, Classes, Sysutils;
procedure main;
procedure myClick(Sender: TObject);
implementation
uses Unit1;
var
tb : TToolbar;
btn: TToolButton;
procedure myClick(Sender: TObject);
begin
showmessage('Button was clicked!');
end;
procedure main;
begin
with Application.Mainform do
begin
Caption := 'Test';
tb := TToolbar.Create(nil);
tb.parent := Application.Mainform;
tb.Flat := true;
tb.Autosize := true;
tb.Images := Unit1.Form1.ImageList;
btn := TToolButton.Create(nil);
tb.InsertControl(btn);
btn.ImageIndex := 0;
btn.OnClick := myClick;
end;
end;
end.
Der Aufruf sieht so aus, dass lediglich in der Unit1 im OnShow Event des Formulares die Main Prozedur aufgerufen wird. Button und die Toolbar werden ja generiert und das Image aus der Imagelist wird auch zugewiesen, nur der kleine Click der fehlt halt noch.
Vielen Dank für Eure Hinweise! Oli
Comment