Форум: "Начинающим";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];
ВнизCombobox и MonthCalendar Найти похожие ветки
← →
Sw (2009-05-22 07:37) [0]Создаю программно несколько combobox, в одном из combobox"сов необходимо выбирать дату, но в моем случае неудобно использовать TDateTimePicker. Делаю так:
procedure TForm1.FormCreate(Sender: TObject);
begin
MonthCalendar1.Visible:=false;
ComboBox1.Items.Add(DateToStr(Date));
ComboBox1.ItemIndex:=0;
end;
procedure TForm1.ComboBox1DropDown(Sender: TObject);
begin
MonthCalendar1.Visible:=true;
end;
procedure TForm1.MonthCalendar1Click(Sender: TObject);
begin
ComboBox1.Clear;
ComboBox1.Items.add(datetostr(MonthCalendar1.date));
ComboBox1.ItemIndex:=0;
MonthCalendar1.Visible:=false;
end;
Проблема в том, что при нажатии на кнопку выбора в Combobox"се открывается список, т.е. одна строчка списка с текущей датой. Мне нужно, чтобы эта строчка не появлялась, а фокус был на календаре.
И еще один ньюанс: в TDateTimePicker реализовано так, что если кликнули по форме - календарь закрылся, допустим...procedure TForm1.FormClick(Sender: TObject);
begin
MonthCalendar1.Visible:=false;
end;
вот только у меня куча панелей, выходит им всем на Click этот код прописывать?
Помогите, пожалуйста.
← →
И. Павел (2009-05-22 08:14) [1]
> вот только у меня куча панелей, выходит им всем на Click
> этот код прописывать
Можно отлавливать не события а сообщения Windows (через TApplicationEvents), например.
← →
{RASkov} © (2009-05-22 08:39) [2]> [0] Sw (22.05.09 07:37)
> в моем случае неудобно использовать TDateTimePicker
Можно поинтересоваться - чем?
← →
Sw (2009-05-22 08:57) [3]> [2]
при ComboboxCloseUp создаю label"ы и combobox"ы в цикле
при повторном ComboboxCloseUp уничтожаю и создаю заново....ну свои заморочки...каждый раз разное кол-во и могут быть разные св-ва и обработчики события.....вот.....и все красиво...для соmbobox....просто добавлять другой компонент неохота.....вот все combobox получаются как люди...а энтот ...не такой :( ну и думаю...пусть будет combobox и привязать к нему календарь
← →
Sw (2009-05-22 09:02) [4]> [1] Спасибо, помогли новичку :( Если не затруднит приведите код, пожалуйста.
← →
{RASkov} © (2009-05-22 09:04) [5]> [3] Sw (22.05.09 08:57)
> при ComboboxCloseUp создаю label"ы и combobox"ы в цикле
> при повторном ComboboxCloseUp уничтожаю и создаю заново....
Это все понятно, но чем Пикер-то не подошел?
← →
{RASkov} © (2009-05-22 09:09) [6]> [4] Sw (22.05.09 09:02)
> Если не затруднит приведите код, пожалуйста.
помоему ты сошел с правильной дороги и "неправильный" код не особо хочется давать :)
← →
Sw (2009-05-22 09:09) [7]походит, он полностью устраивает... код длинее из-за него получается
← →
И. Павел (2009-05-22 09:22) [8]
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if Msg.Message=WM_LButtonDown then
Begin
if DateTimePicker1<>nil then
DateTimePicker1.Visible:=false;
end;
end;
Если список не нужен, может проще заменить его на Edit с кнопкой.
← →
{RASkov} © (2009-05-22 09:31) [9]> [8] И. Павел (22.05.09 09:22)
> if DateTimePicker1<>nil then
> DateTimePicker1.Visible:=false;
там наверное должно быть MonthCalendar1...
Но...попробуй теперь например сменить дату(месяц) в MonthCalendar1 :)
можно и это победить, но...
> полностью устраивает... код длинее из-за него получается
т.е. не нужно много кода автору :)
← →
И. Павел (2009-05-22 09:47) [10]
> попробуй теперь например сменить дату(месяц) в MonthCalendar1
Забыл добавить:and (Msg.hwnd<>MonthCalendar1.Handle)
Хотя, по моему тоже, такие сложности только для укорачивания кода ни к чему.
← →
Sw (2009-05-22 10:24) [11]Спасибо большое. Мне очень нужно мнение специалистов, т.к. действительно не знаю правильной дорогой иду или сбиваюсь. Лучше буду создавать DateTimePicker.
← →
feel © (2009-05-22 19:39) [12]Я для дат использую компонент из библиотеки EhLib, помоему очень удобно и если я правильно понял это то что тебе надо.
← →
Smile (2009-05-22 19:52) [13]Сатарался внимателно прочитать ветку. Но так и не понял для чего нужен ComboBox с единственной строкой (Item) Date из Now?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c