Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.007 c
2-1242753465
AV_Kit
2009-05-19 21:17
2009.07.12
Эмуляция служебных клавиш


4-1212488971
KygECHuK
2008-06-03 14:29
2009.07.12
Hmodule по HWND


15-1241601126
Kolan
2009-05-06 13:12
2009.07.12
Как повторить интерфейс Яндекс.Картинок.


15-1242186290
vajo
2009-05-13 07:44
2009.07.12
Насколько должны быть одинакова CPU на 2хпроц-й М/B


15-1242065192
Cyrax
2009-05-11 22:06
2009.07.12
Статус эконом-класса - присваивается как-то официально или...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский