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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.04.2012, 21:09   #1
Софья1992
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 12
По умолчанию работа с ComboBox

такая задача: в ComboBox должен содержаться список:красный,синий,желтый,серый,з еленый.При выборе любого значения цвет формы должен поменяться соответственно.

помогите написать код для замены цвета формы

начала так:

Form1.Color:=ComboBox1.Items.

может и неправильно(
Софья1992 вне форума
Старый 09.04.2012, 21:17   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык надо же не Form1.Color := 'Зеленый', а clGreen например.

Можно с помощью case ... of в зависимости от номера (т.к. в дельфи case со строками не работает) выбранного варианта ставить соответствующий цвет.
т.е. что-то вроде
Код:
case Combobox1.ItemIndex of
  1: form1.color := clgreen;
  2: form1.color := clblue;
  <другие варианты>
end;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума
Старый 09.04.2012, 21:42   #3
Софья1992
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 12
По умолчанию

спасибо большое,все получилось)
занимаюсь делфи дней 5,так что знания совсем маленькие

можете еще помочь с этим ComboBox

имеется список ,состоящий из фамилия и дат рождения.Фамилии должны быть доступны для выбора из Combobox,но даты отражаться не должны.При выборе любой фамилии соответствующая дата рождения должна отразиться в TEdit.

получается только,что в Combobox видны и фамилии и даты и при выборе в TEdit отражается тоже самое.Вот такая команда:

Edit1.Text:=ComboBox1.Items.
Strings[ComboBox1.ItemIndex];

надо что то изменить
Софья1992 вне форума
Старый 09.04.2012, 22:04   #4
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Есть предостаточно вариантов.

- держать даты рождений в массиве, в той последовательности в какой фамилии находятся в комбобоксе. При выборе фамилии обращаться к элементу массива по ItemIndex комбобокса и выводить в TEdit.

- В комбобоксе есть дополнительная возможность помимо строк хранить целые числа. Если ДР представить в виде целого числа (функция Int в этом поможет), то можно хранить даты рождений и в самом комбобоксе. Но записать их можно только во время выполнения программы.

- Взять два комбобокса. В одном фамилии, в другом ДР. Тот который хранит ДР сделать невидимым. При выборе фамилии устанавливать в другом такое же значение ItemIndex.
Прик вне форума
Старый 09.04.2012, 22:10   #5
Софья1992
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 12
По умолчанию

массивы использовать нельзя,так в задании написано.
и нужно использовать 1 компобокс.

подходит ваш второй вариант,можно по подробнее
что то не вижу функции Int...((
и как сделать это все в TEdit?
Софья1992 вне форума
Старый 09.04.2012, 22:24   #6
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Код:
procedure TForm1.FormCreate(Sender: TObject);
begin
  CB.Items.Objects[0] := TObject(Trunc(StrToDate('01.01.2000')));
  CB.Items.Objects[1] := TObject(Trunc(StrToDate('01.01.2001')));
  CB.Items.Objects[2] := TObject(Trunc(StrToDate('01.01.2010')));
end;

procedure TForm1.CBChange(Sender: TObject);
begin
  Edit1.Text := DateToStr(Integer(CB.Items.Objects[CB.ItemIndex]));
end;
При создании формы пример как записывать даты в комбобокс.
В событии OnChange комбобокса показано как выбирать из компонента значения дат.

Последний раз редактировалось Прик; 09.04.2012 в 22:35. Причина: Нет. Вместо функции Int надо использовать Trunc. Окончательный вариант.
Прик вне форума
Старый 09.04.2012, 22:42   #7
Софья1992
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 12
По умолчанию

Спасибо,все получилось)
объясните что что это именно и зачем надо "D : Double;"?
Софья1992 вне форума
Старый 09.04.2012, 22:45   #8
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Цитата:
Сообщение от Софья1992 Посмотреть сообщение
объясните что что это именно и зачем надо "D : Double;"?
Уже не надо. Окончательный вариант показан в том же посте #6.
Прик вне форума
Старый 09.04.2012, 22:49   #9
Софья1992
Пользователь
 
Регистрация: 09.04.2012
Сообщений: 12
По умолчанию

ой,вообще замечательно)

помогите пожалуйста с Satic Text.
дан этот компонент на форме и нужен код,позволяющий перетаскивать его мышкой
Софья1992 вне форума
Старый 09.04.2012, 22:52   #10
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Нас уволят из форума без выходного пособие за многотемье.
Или пишите мне на мыло или задавайте вопросы в разных темах.
Прик вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Vba работа с ComboBox _Таша_ Microsoft Office Excel 4 30.11.2010 00:30
работа с ComboBox ms-32 Помощь студентам 6 17.04.2010 09:44
Работа с ComboBox Striderr Общие вопросы C/C++ 0 28.11.2009 22:15
Работа с ComboBox Sanakan Помощь студентам 2 27.03.2009 19:16
работа с ComboBox netman БД в Delphi 2 15.05.2007 14:11