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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2010, 20:05   #1
kostghost
Пользователь
 
Аватар для kostghost
 
Регистрация: 28.08.2009
Сообщений: 18
По умолчанию ComboBox - изменение цвета формы

Делал программку. Появилась проблема (помидорами, как всегда, прошу не закидывать =)
Нужно чтобы при нажатии на кнопку, проверялась выбранное в ComboBox значение и в зависимости от значения выбирался другое значение в форме. На примере. Пытался сделать:
Код:
...
procedure TForm3.Button1Click(Sender: TObject);
begin
if Combobox1.Items='Green' then Form1.Color='clmoneygreen';
end;
...
Интересует участок combobox1.items ... Как реализовать правильно?
В других темах какие-то сложные примеры... ничего не понял
Заранее спасибо.
kostghost вне форума Ответить с цитированием
Старый 06.12.2010, 20:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Лови огурец, а помидор полож. Мы им закусываем.
Код:
with Combobox1 do begin
 if Itemindex<>-1 then begin
  if Items[Itemindex]='Green' then Form1.Color='clmoneygreen';
 end;
end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.12.2010, 20:56   #3
kostghost
Пользователь
 
Аватар для kostghost
 
Регистрация: 28.08.2009
Сообщений: 18
По умолчанию

Stilet, Замечательно! Спасибо! Все заработало!
Только еще 2 ошибки заметил: правильно
form1.Color:=clMoneyGreen;
а не
Form1.Color='clMoneyGreen';

Назрел еще вопрос:
Почему не хочет компилится файл при
Код:
ini.WriteString('Settings','formcolor',Form1.Color);
Как правильно сохранить значение Form1.Color в файл? (если вместо form1.color поставить допустим form1.caption, то все хорошо, без ошибок)

Последний раз редактировалось Stilet; 07.12.2010 в 16:57.
kostghost вне форума Ответить с цитированием
Старый 07.12.2010, 13:43   #4
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

WriteString(const Section, Ident, Value: string);
как видите последнее значение строковое, а Form1.Color имеет тип TColor.
присваивайте цвет из comboBox

Код:
ini.WriteString('Settings','formcolor',ComboBox1.Items[i]);
Либо если уж именно формы то
Код:
ini.WriteString('Settings','formcolor',ColorToString(Form1.Color);

Последний раз редактировалось wm_leviathan; 07.12.2010 в 13:45.
wm_leviathan вне форума Ответить с цитированием
Старый 07.12.2010, 13:47   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Запишиет вот так
Код:
ini.WriteInteger('Settings','formcolor',Form1.Color);
SERG1980 вне форума Ответить с цитированием
Старый 07.12.2010, 13:53   #6
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

Цитата:
Сообщение от SERG1980 Посмотреть сообщение
Запишиет вот так
Код:
ini.WriteInteger('Settings','formcolor',Form1.Color);
обратите внимание на 4й пост.
wm_leviathan вне форума Ответить с цитированием
Старый 07.12.2010, 14:06   #7
kostghost
Пользователь
 
Аватар для kostghost
 
Регистрация: 28.08.2009
Сообщений: 18
По умолчанию

wm_leviathan, спасибо. Воспользовался вторым способом (т.к выбор из CoomboBox необязательный). Все работает.
kostghost вне форума Ответить с цитированием
Старый 07.12.2010, 16:00   #8
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Цитата:
Сообщение от wm_leviathan Посмотреть сообщение
обратите внимание на 4й пост.
На что именно???
SERG1980 вне форума Ответить с цитированием
Старый 07.12.2010, 16:17   #9
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

извиняюсь перепутал writestring и writeinteger но... если написать

Код:
ini.WriteInteger('Settings','formcolor',Form1.Color);
запишет несовсем понятное пользователю число да и вообще неудобно хранить цвета в числовых значениях. к примеру стандартный цвет формы clBtnFace это -16777201 в integer. по мне так со строками куда нагляднее.
wm_leviathan вне форума Ответить с цитированием
Старый 07.12.2010, 21:08   #10
kostghost
Пользователь
 
Аватар для kostghost
 
Регистрация: 28.08.2009
Сообщений: 18
По умолчанию

Цитата:
неудобно хранить цвета в числовых значениях. к примеру стандартный цвет формы clBtnFace это -16777201 в integer. по мне так со строками куда нагляднее.
Ага, нагляднее, но вот только не для каждого цвета есть свое словесное обозначение. В моем случае цвета нестандартные, пришлось все переводить под integer
kostghost вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение цвета XFR Microsoft Office Excel 6 28.11.2010 13:32
изменение цвета MaXoN66613 Помощь студентам 2 02.06.2010 18:56
Изменение цвета рамки формы Jene4ka Общие вопросы Delphi 11 12.11.2009 16:25
Как сделать границы формы другого цвета,формы?? Дима я Общие вопросы Delphi 3 22.06.2009 07:24
Изменение цвета Artem Общие вопросы Delphi 5 12.07.2007 09:07