Вопрос № 90804: Здравствуйте уважаемые эксперты! У меня на форме несколько ToolButton'ов , научите пожалуйста как при наведении на них получать hint'ы и если можно разного цвета....Вопрос № 90831: Добрый день. Вопрос следующий:
LabelOnline:tLabel;
if (MagRasCon.ConnectState = RASCS_Connected) then
LabelOnline.Caption := 'Online';
как Сделать 'OnLine' 3еленым, а OffLine красным?
.Вопрос № 90835: Не подскажите, как сделать так, чтобы по событию OnMouseMove Осуществить вращение рисунка в TImage-е? Нужно для реализации Регулятора громкости....Вопрос № 90905: Пишу программу в среде Делфи, в задачу входит отразить изменяющийся рисунок, плавное изменение цвета. Получается не очень, из-за перерисовки происходит мигание экрана. Можно ли сделать плавное изменение цвета определенной части экрана? Желательно
при...
Вопрос № 90.804
Здравствуйте уважаемые эксперты! У меня на форме несколько ToolButton'ов , научите пожалуйста как при наведении на них получать hint'ы и если можно разного цвета.
Отправлен: 10.06.2007, 12:06
Вопрос задал: GAZOT (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Melamed
Здравствуйте, GAZOT!
Свойству ShowHit присваиваешь значение TRUE А свойству Hint присваиваешь значение строки-подскаски,
которая ваыводиться в Hint-оене соответсвуюшего ToolButton'a или компонента TAction с ним связа
085;ного, который можно добавить в список компонента TActionList.
Ответ отправил: Melamed (статус: Студент)
Ответ отправлен: 10.06.2007, 13:12 Оценка за ответ: 4 Комментарий оценки: спасибо, жаль ничего по второй части вопроса не сказали
Отвечает: PGM
Здравствуйте, GAZOT!
Используйте предыдущий ответ для установки хинтов. А цвета менять можно используя событие OnShowHint из компонента TApplicationEvents. Вот его заголовок
procedure AppShowHint(var HintStr: string; var CanShow: Boolean; var HintInfo: THintInfo);
Меняете HintInfo.HintColor на свой в зависимости от условий (т.е. вычисляя какой компонент под мышью или опознавая их по HintStr), тут же можно и HintStr поменять если надо. У структуры HintInfo есть и другие поля, которые помогут настроить показ хинта.
Ответ отправил: PGM (статус: 8-ой класс)
Ответ отправлен: 10.06.2007, 17:25 Оценка за ответ: 4 Комментарий оценки: спасибо ,но на примере было бы наглядней
Вопрос № 90.831
Добрый день. Вопрос следующий:
LabelOnline:tLabel;
if (MagRasCon.ConnectState = RASCS_Connected) then
LabelOnline.Caption := 'Online';
как Сделать 'OnLine' 3еленым, а OffLine красным?
Приложение:
Отправлен: 10.06.2007, 15:31
Вопрос задал: Killka (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Ерёмин А.А.
Здравствуйте, Killka!
У Label есть свойство Font, т.е. можно изменять шрифт - разве это не подойдёт? Пример: LabelOnline.Font.Color:=clGreen; --------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин А.А. (статус: Профессор) Россия, Тула WWW:Программирование на DELPHI ---- Ответ отправлен: 10.06.2007, 15:34 Оценка за ответ: 5 Комментарий оценки: крута.... Большое спасбо.... это я и искал.
Отвечает: Градов Юрий Михайлович
Здравствуйте, Killka!
Менять свойство Label.Font.Color;
Приложение:
--------- Глаза боятся - руки делают!
Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 10.06.2007, 15:44
Отвечает: Уваров Андрей Александрович
Здравствуйте, Killka! !!!
Плохо искали. Все просто.
LabelOnline.Font.Color := clRed; //clLime и т.п. [Дублирующий ответ.][Edited by Gh0stik] --------- Обращаться в ICQ: 66550088 (Ally) или E-Mail: AvePassion@GMail.Com
Отвечает: Фадеев Юрий
Здравствуйте, Killka!
Если Вам надо чтобы менялся сам цвет надписи то я бы написал так:
if (MagRasCon.ConnectState = RASCS_Connected) then
Begin
LabelOnline.Caption := 'Online';
LabelOnline.Font.Color:=clGreen;
end;
ну и соответственно для OffLine можна написать LabelOnline.Font.Color:=clRed;
Ну а есле необходимо поменять сам фон, то можна написать так:
if (MagRasCon.ConnectState = RASCS_Connected) then
Begin
LabelOnline.Caption := 'Online';
LabelOnline.Color:=clGreen;
end;
Ответ отправил: Фадеев Юрий (статус: 1-ый класс)
Ответ отправлен: 11.06.2007, 12:31
Вопрос № 90.835
Не подскажите, как сделать так, чтобы по событию OnMouseMove Осуществить вращение рисунка в TImage-е? Нужно для реализации Регулятора громкости.
Отправлен: 10.06.2007, 15:57
Вопрос задал: SunnyLab (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Timoshin A.B.
Здравствуйте, SunnyLab!
Надеюсь вам подойдёт такой вариант поворота, относительно точки.
Удачи.
Приложение:
--------- Борюсь с нехваткой "мозгов"...
Ответ отправил: Timoshin A.B. (статус: Студент)
Ответ отправлен: 10.06.2007, 19:54
Вопрос № 90.905
Пишу программу в среде Делфи, в задачу входит отразить изменяющийся рисунок, плавное изменение цвета. Получается не очень, из-за перерисовки происходит мигание экрана. Можно ли сделать плавное изменение цвета определенной части экрана? Желательно пример.
Спасибо.
Отправлен: 11.06.2007, 05:26
Вопрос задал: Float (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Примак Руслан Николаевич
Здравствуйте, Float!
Мерцание можно убрать, если у родителя рисунка установить свойство DoubleBuffered := True;
Например, TPanel(MyImage.Parent).DoubleBuffered := True;
Одно замечание - не у всех компонентов есть свойство DoubleBuffered
Ответ отправил: Примак Руслан Николаевич (статус: 2-ой класс)
Ответ отправлен: 11.06.2007, 12:40
Отвечает: Градов Юрий Михайлович
Здравствуйте, Float!
Вот 3 варианта уменьшения мерцания при прорисовке обьекта:
1. Мерцание возникает, когда цвет точки меняется два раза подряд. Правильнее объект рисовать в памяти и выводить на форму уже готовое изображение поверх предыдущего. В таком случае смена цветов на экране происходит только 1 раз.
2. Если добавить флаг csOpaque (непрозрачный) к свойству ControlStyle компонента - то фон компонента перерисовываться не будет. Вариант в приложении
3. В методе Paint - InvalidateRect(Handle, NIL, FALSE), где Handle должен быть дескриптором формы или элемента управления.
Приложение:
--------- Глаза боятся - руки делают!
Ответ отправил: Градов Юрий Михайлович (статус: Студент)
Ответ отправлен: 11.06.2007, 12:45
Отвечает: Кэр Лаэда
Здравствуйте, Float!
в дополнение к ответу Примак Руслан Николаевич
кроме установки DoubleBuffered в True установите свойство
Image
Stretch:=true
Ответ отправил: Кэр Лаэда (статус: Студент)
Ответ отправлен: 11.06.2007, 12:56
Отвечает: DimonSoft
Здравствуйте, Float!
Если программа не должна иметь определённых ограничений, то намного проще будет воспользоваться библиотекой DirectX. Код будет приблизительно таким, как в приложении. Изменения следующие:
1. В функции InitDX() вместо Handle надо будет указать Handle контрола, на который будет производиться вывод (например, TPanel).
2. В функции Render() используется вспомогательная функция D3DCOLOR_XRGB(). Её параметры - числа от 0 до 255, соответствующие красному, зелёному и синему составляющим.
3. В примере используется также объект TApplicationEvents (и его событие OnIdle).
Кроме того, следует в секцию public описания формы добавить следующие строки:
DXObj:IDirect3D9;
DXDev:IDirect3DDevice9;
P.S. При желании функцию инициализации можно дополнительно упростить, обращайтесь.
Приложение:
Ответ отправил: DimonSoft (статус: 2-ой класс)
Ответ отправлен: 11.06.2007, 19:52