Привет!
Я хочу из всплывающего меню (на скрине) изменять размер шрифта в мемо.
procedure TForm1.PopupMenu1Change(Sender: TObject; Source: TMenuItem;Выдает ошибку сразу при запуске. Как тут быть?
Rebuild: Boolean);
var
a:integer;
begin
a:=strtoint(Source.Caption);
memo1.Font.Size:=a;
end;
procedure TForm1.N101Click(Sender: TObject);, всем остальным пунктам назначь этот же обработчик...
var
s: string;
p: integer;
begin
s := (Sender as TMenuItem).Caption;
p := pos('&', s);
if p > 0 then Delete(s, p, 1);
Memo1.Font.Size := StrToInt(s);
end;
СПАСИБО!
А почему '&' символ в разных пунктах на разных позициях?
И еще, допустим есть 2 кнопки. При нажатии на кнопку1 происходят определенные действия. А при нажатии на кнопку2 сначала происходят какие-то действия, а потом тоже самое, что и при нажатии кнопки1. Как вызвать нажатие кнопки1 при щелчке на кнопку2?(можно конечно написать свою процедуру, но это не то)
procedure TForm1.Button1Click(Sender: TObject);
begin
// что-то
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// еще что-то
Button1Click(Sender);
end;
Понятно. А как программно можно добавить/удалить кнопку на панель?
Точно так же, как и любой другой компонент:
new_button := TButton.Create(Application);
new_button.Parent := ...
new_button.OnClick := ...
// Ну, и что там тебе еще нужно...
new_button := TButton.Create(Application);Добавил описание
new_button:tbutton;При нажатии кнопки создаю, но ничего нету...
procedure TForm1.Button1Click(Sender: TObject);
var
new_button:tbutton;
begin
new_button := TButton.Create(Application);
end;
procedure TForm1.Button1Click(Sender: TObject);Получилось) А как добавить кнопку на панель инструментов? Это же не обычная кнопка? И что значит new_button.Parent:=Self?
var
new_button:tbutton;
begin
new_button := TButton.Create(Application);
new_button.Left:=100;
new_button.Top:=100;
new_button.Caption:='dfdsfds';
new_button.Parent:=Self;
end;
t1 := TButton.Create(Application);Сделал предком тулбар и все как надо
t1.Left:=100;
t1.Top:=100;
t1.Caption:='новая кнопка';
t1.Parent:=ToolBar1;
Parent:=Selfи
Parent:=Form1работает одинаково. Self это же "сам"?
Parent:=Selfи
Parent:=Form1работает одинаково. Self это же "сам"?
О_О буду знать, я думал что это "текущий объект"
СПАСИБО БОЛЬШОЕ VOLVO ЗА ПОМОЩЬ!
...Как тут вызвать процедуру на нажатие созданной кнопки?
private
procedure NEWButtonsClick(Sender: TObject);
...
procedure NEWButtonsClick(Sender: TObject);
begin
showmessage('СООБЩЕНИЕ')
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
t1 := TButton.Create(Application);
t1.Left:=100;
t1.Top:=100;
t1.Caption:='кнопка';
t1.Parent:=Form1;
t1.OnClick:=NEWButtonsClick();
end;
Где "тут"? Как только ты нажмешь на кнопку, событие и сработает. Только скобки после NEWButtonsClick убери, а то будет ошибка компиляции.
unit Unit1;Все работает(хотя только что ошибку давал)
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure SomeButtonEvent(Sender: TObject );
public
{ Public declarations }
end;
var
Form1: TForm1;
t1:tbutton;
implementation
{$R *.dfm}
procedure TForm1.SomeButtonEvent( Sender:TObject );
begin
ShowMessage( 'Сообщениее');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
t1:=TButton.Create(Application);
t1.Left:=100;
t1.Top:=100;;
t1.Parent := form1;
t1.OnClick := SomeButtonEvent;
end;
end.