Delphi как заменить цвет
Казалось бы — что может быть проще, чем изменить цвет кнопки типа TButton в Delphi?
Ан нет. Не так все просто. Бьюсь уже второй час.
Подскажите пожалуйста как можно изменить цвет кнопки, не использую сторонних компонент?
Всем заранее спасибо!
← →
ЮЮ © ( 2005-01-13 12:41 ) [1]
Изменить оформление Windows. TButton в Delphi — это родная кнопка Windos — а они во всей системе одного цвета.
← →
Neznaika © ( 2005-01-13 12:42 ) [2]
TButton не изменишь!
Используй BitBtn или другие компоненты.
← →
Vetal © ( 2005-01-13 12:54 ) [3]
ЮЮ> Изменить оформление Windows не катит. Нужно изменить цвет только одной кнопки в приложении..
Neznaika>> Хорошо, а как можно изменить цвет кнопки, если она TBitBtn?
← →
TButton © ( 2005-01-13 12:55 ) [4]
Можно и у TButton:
MakeObjectInstance + FreeObjectInstance (или SetWindowLong), а также сообщения WM_ERASEBKGND/WM_PAINT
PS. ИМХО не стоит геморроя, проще использовать TBitBtn
← →
TUser © ( 2005-01-13 13:15 ) [6]
> TButton в Delphi — это родная кнопка Windos — а они во всей
> системе одного цвета
И тем не менее есть компоненты, которые изменяют стиль оформления программы, в т.ч. и цвет TButton»ов.
← →
Vetal © ( 2005-01-13 13:23 ) [7]
Так а как все-таки изменить цвет TBitBtn?
← →
Neznaika © ( 2005-01-13 13:24 ) [8]
>>Vetal © (13.01.05 12:54) [3]
Наложить картинку однотонную 😉
← →
Vetal © ( 2005-01-13 13:31 ) [9]
Через свойство Glyph что ли?
Так по краям будет серенькое все.
Vetal по-моему там все это регулируется, сейчас уже не помню как но у меня это получалось.
← →
WhiteGuy © ( 2005-01-13 13:42 ) [11]
Vetal,зайди на torry.net — там есть такие компоненты!! типa RbControls[RbButton]
← →
Vetal © ( 2005-01-13 13:53 ) [12]
Короче, сделал TPanel, заполнял его цвет. А по клину менял стиль с Uppered на Lowered и наоборот.
Источник
Изменение цвета ячеек Delphi Stringgrid
В основном компонент Stringgrid, используется для вывода строковой информации в свои ячейки. Но при написании программ очень часто возникает желание сделать их более удобными, выделяя отдельные столбцы, строки или области ячеек разными цветами илидобавлением рисунков в ячейки StringGrid. Средствами инспектора объектов эту задачу не выполнить. Отдельной формы настроек для этого, в компоненте тоже не предусмотрено.
Однако, эта задача легко разрешается программно. Для этого используется событие компонента OnDrawCell, срабатывающее при отрисовке каждой отдельной ячейки таблицы. Таким образом, если использовать свои условия назначения того или иного цвета, можно «раскрасить» таблицу, нужным образом.
Для этого в установленном компонент Stringgridназначаем событие OnDrawCell. В созданную процедуру добавляем следующий код, назначающий цвет ячейки и цвет шрифта текста, а так же отрисовывающий их:
Данный код закрасит все ячейки одним цветом.
Для выделения отдельных строк, столбцов или ячеек, следует пользоваться условиями:
В результате получим таблицу, ячейки которой будут иметь разные цвета. Следует отметить, что последовательность условий в данном случае перекрывает назначение цвета колонок последней строкой, поэтому она получается одного цвета.
Рисунок: «Раскрашенный» StringGrid
Если есть необходимость изменить цвет фиксированных ячеек, иногда может быть не удобно использовать условия проверки номеров строк и столбцов. Это может быть в случае, если фиксированными будут несколько строк или столбцов. Здесь стоит воспользоваться иным условием, проверяющим именно параметр фиксированности ячейки:
Аналогично можно выделить сразу всю строку:
Источник
DelphiComponent.ru — бесплатно видеоуроки по Delphi, статьи, исходники
Работа с цветом в Delphi
В играх и графических пакетах этому байту нашли применение. Он часто указывает прозрачность, но в офисных приложениях его просто игнорируют.
Как вы уже знаете, один байт может принимать значения от 0 до 255 (в десятичной форме) или от 0 до FF (в шестнадцатеричной). Так что в шестнадцатеричной форме цвет будет выглядеть как SOOFFFFFF. Только тут сразу надо отметить, что первые два нуля — это лишний байт, потом идут FF для голубого цвета, затем FF для зеленого и последние FF для красного. Получается, что в памяти цвет хранится как BGR (в обратном порядке). Абсолютно красный цвет будет равен $000000FF , абсолютно зеленый — $0000FF00 , а голубой — S00FF0000 .
Давайте попробуем научиться работать с цветом на практике, заодно и познакомимся с необходимыми функциями. Создайте новое приложение и установите на него компоненты так, как это показано на рис.
Итак, на форме три компонента TEdit. Для красного цвета компонент назовите RedEdit, ДЛЯ зеленого — GreenEdit, ну И ДЛЯ СИНвГО — BlueEdit. Так же на форме есть кнопка для смены цвета (ее имя не имеет значения) и компонент CoiorDialog, для смены цвета.
Если вы сами создаете пример, постарайтесь все разместить так, как показано на рисунке выше (ближе к правому краю), потому что слева будем рисовать квадрат.
Для события кнопки onclick пишем код, показанный в листинге:
procedure TFormi.ButtonlClick(Sender: TObj ect);
В разделе var объявлена одна переменная целого типа Longint. Это целое число размером в 4 байта, оно будет использоваться для хранения значения цвета.
В первой строке показывается ОКНО смены цвета ColorDialogl.Execute. Если пользователь не выбрал цвет (об этом говорит конструкция if not), то выполнение процедуры прерывается с помощью exit.
Дальше выбранный цвет ColorDialog1 .color из типа TCoior преобразовывается в простое число с помощью функции coiorToRGB. Этой функции надо передать цвет в виде TCoior (мы передаем ColorDialogl.color), и она вернет целое 4- байтное число, которое мы записываем в переменную с. Функция CoiorToRGB выполняет одно очень важное, действие— очищает первый байт, который как раз не несет смысловой нагрузки в 24-битной RGB системе.
В следующей строке идет присвоение строке ввода RedEdit значения красной составляющей цвета. Для этого сначала используется функция GetRValue. Ей передается значение цвета в виде целого числа (переменная с). Результат—однобайтное число, которое показывает значение красной составляющей. Поскольку результат— число, то прежде чем его присваивать в строку ввода, оно должно быть преобразовано в строку. Для этого переводим его в текст с помощью знакомой нам ФУНКЦИИ IntToStr.
То же самое проделываем и с зеленым цветом в следующей строке кода. Только для получения зеленой составляющей используется функция GetGValue.
Для получения синей составляющей используется функция GetBValue. Таким образом, после выполнения всех этих действий, мы разбили 4 байта цвета из переменной с на отдельные байты по цветам и разнесли их в соответствующие строки ввода.
После этого нужно заставить окно прорисоваться с помощью вызова метода Repaint.
Для события OnPaint напишем следующий код:
procedure TForml.FormPaint(Sender: TObj ect); begin
StrToIntDef(GreenEdit.Text, 0), StrToIntDef (BlueEdit.Text,0));
Canvas.Rectangle(10,10, 250, 150);
Здесь надо проделать обратные действия — превратить три составляющих цвета из строк ввода в одно целое значение цвета. Для этого используется функция rgb (r, g, в). У этой функции три параметра, и все они целые числа.
- r — значение красного цвета.
- g — значение зеленого цвета.
- в — значение синего цвета.
В качестве параметров передаются значения, указанные в соответствующих строках ввода, с предварительным преобразованием их из строк в числа.
Результат преобразования цвета записываем в цвет кисти. После этого рисуется прямоугольник, у которого цвет фона будет тот, что мы выбрали.
И последнее — создадим обработчик события onchange для всех строк ввода.
- Выделите строку ввода для красного цвета.
- Удерживая shift, щелкните мышью по остальным строкам.
У вас должны быть выделены все строки ввода серыми рамками. Теперь перейдите в объектный инспектор на вкладку Events и дважды щелкните мышью по событию onchange, чтобы создать обработчик сразу для всех выделенных компонентов. В нем напишите следующий код:
procedure TForm1.RedEditChange(Sender: TObject);
Попробуйте запустить этот пример. Теперь выберите какой-нибудь цвет, и вы увидите составляющие этого цвета. Можете даже напрямую изменять значения в строках ввода, и результат моментально будет отражаться на цвете прямоугольника.
Ну а теперь познакомимся с константами, которые уже заготовлены для основных цветов. Вы можете их реально использовать в своих программах и присваивать, как ранее это делалось в примере. Здесь не будут перечисляться все константы, потому что вы можете их сами в любой момент найти, если щелкнете в объектном инспекторе по свойству color любого компонента. Все, что вы увидите в этом списке, — это и есть константы, которые можно использовать. Этот прием довольно удобный, потому что сразу видно константу и цвет.
Источник
Delphi как заменить цвет
О проблемах с регистрацией пишите сюда — alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.
| Регистрация Подскажите, пожалуйста, каким образом можно заменить на изображении ВСЕ оттенки белого, на чисто зеленый или любой другой, а затем все оттенки черного на чисто белый. Оттенки черного: Оттенки белого: Ясно, что их огромное количество и все писать и заменять не будешь. Как это можно сделать быстро? | |||||
Подскажите, пожалуйста, каким образом можно заменить на изображении ВСЕ оттенки белого, на чисто зеленый или любой другой, а затем все оттенки черного на чисто белый.
Оттенки черного:
$00272727
$00050306
$00040205
Оттенки белого:
$00fffcff
$00b6afb6
$00bbb4bb
Ясно, что их огромное количество и все писать и заменять не будешь. Как это можно сделать быстро?
загрузить изображение в canvas, далее бегая по каждому пикселю (двумерный массив), при помощи двух цыклов, пройти все и сравнить на нужное, вдруг что заменить.
Источник
Изменение цвета фона формы
Delphi xe2: изменение цвета кнопки, цвета рамки вокруг кнопки
изменение цвета кнопки, цвет рамки вокруг кнопки. подскажите как это сделать
Изменение фона ячейки в stringgrid
Здравствуйте. Необходимо изменить цвет фона ячейки, а не закрасить ее. Нашел описание одного метода.
Плавное изменение цвета.
Вот событье: procedure TForm1.TrackBar1Change(Sender: TObject); begin redi:=trackbar1.position;.
Изменение цвета в редакторе.
Я создал подобие текстового редактора, но пока только с одной функцией: изменение цвета. Т.к. это.
Решение
чтобы выбрать супер-гламурный цвет используй эту прогу:
А где именно это надо написать?
Добавлено через 6 минут
Всё, ненадо) я понял
Решение
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Изменение цвета шрифта у memo
Привет. Написал я блокнот, но нужно научится изменять цвет шрифта и делать его зачеркнутым и.
Изменение цвета на экране монитора
Уважаемые гуру, прошу Вашей помощи! Задача заключается в следующем. На компьютере работает.
Выявить изменение цвета на мониторе
Уважаемые гуру! Подскажите пожалуйста, как выявить изменение цвета на экране монитора с помощью.
Изменение цвета текста кнопки
Всем доброго времени суток! Заранее спасибо за помощь. К проблеме. Есть массив кнопок, нужно.
Источник