Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];

Вниз

DATETIMEPICKER - четырехзначный год?   Найти похожие ветки 

 
Fishka   (2002-09-26 10:08) [0]

На компьютере установлен двухзначный год ("Язык и стандарты").
Как мне в программе сделать, чтобы в компоненте DATETIMEPICKER год был в формате "dd.mm.yyyy"?
ShortDateFormat ничего не дает.
Rx-компоненты устанавливать не буду.
Заранее спасибо за советы.


 
Separator   (2002-09-26 10:22) [1]

property Format


 
Fishka   (2002-09-26 10:44) [2]

property Format - такого нет у DATETIMEPICKER.
DateFormat = dfLong выдает типа "26 сентября 2002", а мне нужно
"26.09.2002".




 
Separator   (2002-09-26 11:20) [3]

Все есть и притом что работает, оно типа String.
DateTimePicker.Format:= "dd.mm.yyyy"


 
Fishka   (2002-09-26 12:20) [4]

DateTimePicker.Format:= "dd.mm.yyyy"
- выдается ошибка Incompatible types: "TDTDateFormat" and "String". (DELPHI 5)
Какой выход?


 
SaS13   (2002-09-26 12:26) [5]

old := ShortDateFormat;
try
ShortDateFormat := "dd.mm.yyyy";
DateTimePicker.Format:= dfShort;
//...
finally
ShortDateFormat := old
end;


 
Fishka   (2002-09-26 12:43) [6]

DateTimePicker.Format:= dfShort; - выдается ошибка: не декларирован идентификатор Format.

ShortDateFormat := "dd.mm.yyyy";
DateTimePicker.DateFormat:= dfShort; - год в компоненте по-прежнему двухзначный.

Что делать?


 
MBo   (2002-09-26 12:46) [7]

Если ничего не получается, пошли ему сообщение DTM_SETFORMAT,
сделав uses CommCtrl


 
Separator   (2002-09-26 13:06) [8]

Во нашел:

procedure TForm1.FormCreate(Sender: TObject);
var
Buf: PChar;
begin
DateTimePicker1.Format:= "dd.mm.yyyy";
Buf:= StrAlloc(255);
DateTimePicker1.GetTextBuf(Buf, 255);
Caption:= Buf
end;


 
Separator   (2002-09-26 13:11) [9]

Извени, это я гоню. В Delphi 5 и правда нет этого свойства, просто у меня 6 Delphi, там кокрас и будет так работать как я пишу


 
Separator   (2002-09-26 13:22) [10]

народ у кого 5 дульфи посмотрите, что там можно сделать


 
Fishka   (2002-09-26 13:34) [11]

>Separator © (26.09.02 13:06)
DateTimePicker1.Format:= "dd.mm.yyyy"; - выдается ошибка "не декларирован идентификатор Format".

>MBo © (26.09.02 12:46)
Пока не очень понятно. Но все равно спасибо за совет.....

И еще. Почему-то не работает пример из Help-а.

This example uses a label and a button on a form. When the user clicks the button, the current date displays in the caption of the label. Because some of the date variables are assigned new values, the format of the date in the label changes. For example, if the date is 9/15/94, the date displays as 9-15-1994.

procedure TForm1.Button1Click(Sender: TObject);

begin
DateSeparator := "-";
DateFullYear := True; //ошибка выдается ЗДЕСЬ
DateLeadZero := True;
Label1.Caption := DateToStr(Date);
end;


А проблема моя так пока и не решена.


 
Separator   (2002-09-26 13:44) [12]

Короче, что-то мы тут пургу несем, а не легче написать так:
Labe1.Caption:= FormatDateTime("dd.mm.yyyy", DateTimePicker1.Date);


 
MBo   (2002-09-26 13:44) [13]

DateTimePicker1.Perform(DTM_SETFORMAT,0,Integer(Pchar("dd.MM.yyyy")));


 
Anatoly Podgoretsky   (2002-09-26 13:45) [14]

Из какого хелпа (тема) данный пример?


 
Fishka   (2002-09-26 14:00) [15]

>Anatoly Podgoretsky © (26.09.02 13:45)
Currency and date/time formatting variables
Далее Example:
Currency and date/time formatting Example

>MBo © (26.09.02 13:44)
DateTimePicker1.Perform(DTM_SETFORMAT,0,Integer(Pchar("dd.MM.yyyy"))); - ошибок не выдается.
И год в компоненте по-прежнему двухзначный.

>Separator © (26.09.02 13:44)
Мне не нужны никакие Label. Это был просто пример.
Мне нужен год в компоненте четырехзначный.





 
MBo   (2002-09-26 14:10) [16]

>И год в компоненте по-прежнему двухзначный

У меня в D5 меняется с двух - на 4-х значный



 
Fishka   (2002-09-26 14:18) [17]

В новом проекте на OnCreate формы мною написано:
ShortDateFormat := "dd.mm.yyyy";
DateTimePicker1.Perform(DTM_SETFORMAT,0,Integer(Pchar("dd.MM.yyyy")));

И год в компоненте по-прежнему двухзначный..................
Что у меня не так? (DELPHI5, WINDOWS2000)



 
Separator   (2002-09-26 14:46) [18]

Попробуй так:

type
TMyDateTimePicker = class(TDateTimePicker)
private
FFormat: String;
procedure SetFormat(const Value: String);
public
property Format: String read FFormat write SetFormat; //В 6 Delphi это в published
end;
....................
procedure TMyDateTimePicker.SetFormat(const Value: String);
begin
if FFormat <> Value then
begin
FFormat := Value;
SendMessage(Handle, DTM_SETFORMAT, 0 , Integer(PChar(FFormat)));
end;
end;



 
MBo   (2002-09-26 15:03) [19]

Немудрено, что так происходит.
Вставь в OnShow


 
Fishka   (2002-09-26 15:28) [20]

MBo © (26.09.02 15:03)
Ну, вот и год в OnShow стал четырехзначным. Спасибо.


 
Fishka   (2002-09-26 16:46) [21]

Год в OnShow стал четырехзначным, а месяц =36 и не меняется.
Что это такое случилось?


 
MBo   (2002-09-26 16:52) [22]

буквы M должны быть большими


 
Anatoly Podgoretsky   (2002-09-26 17:01) [23]

Fishka (26.09.02 14:00)
В моем примере и в теме нет таких переменных (д5)
DateFullYear := True; //ошибка выдается ЗДЕСЬ
DateLeadZero := True;


 
Fishka   (2002-09-27 09:31) [24]

>Anatoly Podgoretsky © (26.09.02 17:01)
В help-у выбираю: DateSeparator,example. И получаю пример, приведенный выше.

>MBo © (26.09.02 16:52)
Да, все получилось. Ну, кто бы мог подумать, что " буквы M должны быть большими". И откуда об этом можно узнать?

И еще раз всем СПАСИБО.




 
MBo   (2002-09-27 09:36) [25]

>кто бы мог подумать, что "буквы M должны быть большими
(26.09.02 13:44)
>откуда об этом можно узнать
из MSDN


 
Anatoly Podgoretsky   (2002-09-27 09:42) [26]

Что бы не быть головословным, вот полная выписка их хелпа, Д5 с обновленным хелпом.

procedure TForm1.Button1Click(Sender: TObject);

begin
DateSeparator := "-";
ShortDateFormat := "m/d/yyyy";
Label1.Caption := DateToStr(Date);
end;

Полнотекстовый поиск по всех исходным текстам Дельфи также не находит DateFullYear


 
Fishka   (2002-09-27 10:00) [27]

>MBo © (27.09.02 09:36)
И как, где можно достать MSDN?

>Anatoly Podgoretsky © (27.09.02 09:42)
У меня help с компашки, а он необновленный.



 
Anatoly Podgoretsky   (2002-09-27 10:05) [28]

Fishka (27.09.02 10:00)
Да он с ошибками, возьми обновление у Борланда


 
MBo   (2002-09-27 10:06) [29]

>И как, где можно достать MSDN?
msdn.microsoft.com
или на дисках



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.009 c
14-21257
AL2002
2002-09-11 12:00
2002.10.07
Я так хочу


1-20950
maxim2
2002-09-26 09:54
2002.10.07
Как перебрать все строки в memo и при это получить все значения


1-21077
Bi
2002-09-24 12:42
2002.10.07
Как c предотвратить сообщение об ошибке.


1-21049
Sectey
2002-09-27 14:50
2002.10.07
Перемещение компонента во время выполнения.


1-21129
Smok_er
2002-09-23 19:48
2002.10.07
Локализация программы в отдельных файлах





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