IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Панель инструментов
Client
сообщение 20.05.2009 11:50
Сообщение #1


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


Привет!
Я хочу из всплывающего меню (на скрине) изменять размер шрифта в мемо.
procedure TForm1.PopupMenu1Change(Sender: TObject; Source: TMenuItem;
Rebuild: Boolean);
var
a:integer;
begin
a:=strtoint(Source.Caption);
memo1.Font.Size:=a;
end;
Выдает ошибку сразу при запуске. Как тут быть?


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 20.05.2009 12:46
Сообщение #2


Гость






Цитата
Выдает ошибку сразу при запуске.
Правильно делает. У тебя в момент создания меню (а OnChange вызывается именно в момент создания, или при переформировании меню, а не при щелчке на его элементе) Source = nil со всеми вытекающими последствиями. Лови TMenuItem.OnClick для каждого их пунктов меню и делай то, что тебе надо:

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;
, всем остальным пунктам назначь этот же обработчик...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.07.2025 2:36
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"