Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2009, 15:28   #1
Leo20
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 36
По умолчанию ActionList будь он не ладен.

Суть в следующем

нужно сделть экшены самому на изменение стиля текста.

делаю вот так

procedure TForm1.ActionPuhExecute(Sender: TObject);
begin
if (Sender as TSpeedButton).Down = false then
begin
richedit1.SelAttributes.Style:= richedit1.SelAttributes.Style - [fsBold];
end
else
begin
richedit1.SelAttributes.Style:= richedit1.SelAttributes.Style + [fsBold];
end;
end;

ошибка преобразования типа вылезает.
Хочу сделать экшен не привязанный к определенной кнопке, потому что если написать вместо

(Sender as TSpeedButton).Down = false

обычный

puh.Down = false

то все работает.
Leo20 вне форума Ответить с цитированием
Старый 11.10.2009, 15:35   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
ошибка преобразования типа вылезает.
можно её текст?
и я бы проверял лучше сам атрибут а не кнопку.(предыдущее мое сообщение как раз об этом)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.10.2009, 15:58   #3
Leo20
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 36
По умолчанию

Project2.exe raised exception class EinvalidCast whith message 'Invalid class typeCast'
Leo20 вне форума Ответить с цитированием
Старый 11.10.2009, 17:19   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
if Sender is TSpeedButton 
 then if (Sender as TSpeedButton).Down = false 
         then richedit1.SelAttributes.Style:= richedit1.SelAttributes.Style - [fsBold]
         else richedit1.SelAttributes.Style:= richedit1.SelAttributes.Style + [fsBold]
 else ShowMessage('Это не SpeedButton');
попробуйте так.

или еще так:
посмотрите класс сендера.
Код:
ShowMessage(Sender.ClassName);
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 11.10.2009 в 17:21.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.10.2009, 17:25   #5
Leo20
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 36
По умолчанию

Класс TAction выдает !?
Leo20 вне форума Ответить с цитированием
Старый 11.10.2009, 17:28   #6
Leo20
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 36
По умолчанию

Я же через ActionList создаю свой экшен, так. А потом как мне его вызвать тогда так чтобы он вызывался SpeedButton?
Leo20 вне форума Ответить с цитированием
Старый 11.10.2009, 17:36   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
и я бы проверял лучше сам атрибут а не кнопку.
я уже писал.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.10.2009, 17:37   #8
Leo20
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 36
По умолчанию

тогда будь добр подскажи как....
Leo20 вне форума Ответить с цитированием
Старый 11.10.2009, 17:42   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

http://programmersforum.ru/showpost....8&postcount=11
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.10.2009, 17:46   #10
Leo20
Пользователь
 
Регистрация: 28.08.2009
Сообщений: 36
По умолчанию

Блин, я так прошлый раз и делал.)))
Спасибо, ты меня на светлые мысли натолкнул про Sender)
Leo20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Actionlist - ? Evgenii Компоненты Delphi 2 20.07.2009 03:05
Динамический PopUp и ActionList TOJluK Компоненты Delphi 1 05.05.2009 07:56
Как правильно использовать ActionMainMenuBar, ActionList и ActionManager A1seg Общие вопросы Delphi 1 18.03.2009 08:29
Потрібна допомога!!!Будь-ласка Їжачок Помощь студентам 9 24.04.2008 15:40