Главная страница
    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.004 c
15-1242287623
Jolik
2009-05-14 11:53
2009.07.12
Работа: настроить сервер SourceSafe и интегрировать с Delphi


2-1242712185
Abcdef123
2009-05-19 09:49
2009.07.12
Баг при вызове Хелпа проекта по клавише F1


2-1242731624
torcik
2009-05-19 15:13
2009.07.12
Рамер шрифта в width и height


2-1242895627
Roman88
2009-05-21 12:47
2009.07.12
Работа с Clob в Oracle


3-1220962765
Николай 2
2008-09-09 16:19
2009.07.12
ненадёжность связи и TpFIBDatabase.Execute





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский