![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TDateTimePicker [D7]
mfender © (2006-11-29 14:26:00)Что-то я никак не пойму, неужели нет возможности у этого компонента изменять и дату и время? Т.е., выделяю месяц - стрелками меняю, выделяю часы - стрелками меняю. А сейчас получается, что менять можно либо одно, либо другое, взависимости от переключателя Kind (dkDate и dkTime).
Может я чего-то не вижу?
mfender (2006-11-30 13:51:00) [1]Блин, а ларчик просто открывался!
TmfDateAndTimePicker = class(TCustomPanel)
procedure ChangeDateTime(Sender: TObject); dynamic;
TmfUNIXDateTimePicker = class(TmfDateAndTimePicker)
procedure ChangeDateTime(Sender: TObject); override;
procedure TmfUNIXDateTimePicker.ChangeDateTime(Sender: TObject);
begin
inherited ChangeDateTime(Self);
FDataLink.Edit;
FDataLink.Field.AsInteger := DateTimeToUnix(DateTime);
end;
!!!
Спасибо всем за помощь!
mfender (2006-11-30 13:31:00) [2]Сделал панельку с двумя пикерами.
Теперь пытаюсь унаследовать от неё потомка для БД. И вот какая ерунда получается:
{Это предок}
type
TmfDateAndTimePicker = class(TCustomPanel)
private
FOnChange: TNotifyEvent;
FDateTime: TDateTime;
public
property DateTime: TDateTime read FDateTime write SetDateTime;
published
property OnChange: TNotifyEvent read FOnChange write FOnChange;
end;
procedure TmfDateAndTimePicker.ChangeDateTime(Sender: TObject);
begin
FDatePicker.Time := FTimePicker.Time;
FDateTime := FDatePicker.DateTime;
FOnChange(Self);
end;
{Это потомок}
TmfUNIXDateTimePicker = class(TmfDateAndTimePicker)
protected
procedure PickerChange(Sender: TObject);
public
constructor Create(AOwner: TComponent); override;
end;
constructor TmfUNIXDateTimePicker.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OnChange := PickerChange;
end;
procedure TmfUNIXDateTimePicker.PickerChange(Sender: TObject);
begin
FDataLink.Edit;
FDataLink.Field.AsInteger := DateTimeToUnix(DateTime);
end;
Так вот до этой самой PickerChange дело вообще не доходит. DateTime меняется (проверил снаружи не label'е). Как сделать так, чтобы по OnChange срабатывал и PickerChange?
clickmaker (2006-11-29 14:49:00) [3]
> [2] mfender © (29.11.06 14:45)
свой компонент забацать. Панелька + 2 пикера
mfender (2006-11-29 14:45:00) [4]
> Anatoly Podgoretsky © (29.11.06 14:34) [1]
> > mfender (29.11.2006 14:26:00) [0]
>
> Не видишь возможности поставить рядом два.
Немного извращённо, кажется...
Почитал ДНК - методы совершенно разные... Видимо совмещать их не получится. Или как-то извернуться, и переключать Kind взависимости от надобности.
Anatoly Podgoretsky (2006-11-29 14:34:00) [5]> mfender (29.11.2006 14:26:00) [0]
Не видишь возможности поставить рядом два.