Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
ВнизDBEdit и DateTimePicker Найти похожие ветки
← →
тормоз (2007-05-03 10:12) [0]С помощью процедуры пытаюсь открыть нужный DateTimePicker:
procedure TForm8.DoubleEditClick(Sender: TObject);
Begin
if (Sender <> nil) and (Sender is TDBEdit) then
TDateTimePicker(TDBEdit(Sender).Hint).Perform(WM_KEYDOWN, VK_F4, 0);{в hint номер DateTimePicker}
End;
но появляется ошибка: "Access violation..."
Подскажите, пожалуйста, где ошибка.
← →
stakan © (2007-05-03 10:14) [1]
> TDateTimePicker(TDBEdit(Sender).Hint)
Это как понимать?
← →
Ega23 © (2007-05-03 10:17) [2]>
> Подскажите, пожалуйста, где ошибка.
Здесь:TDateTimePicker(TDBEdit(Sender).Hint).
← →
тормоз (2007-05-03 12:16) [3]... и как ее можно исправить?
← →
Ega23 © (2007-05-03 13:00) [4]
> ... и как ее можно исправить?
Зависит от того, что ты хочешь получить.
← →
clickmaker © (2007-05-03 13:02) [5]
> [3] тормоз (03.05.07 12:16)
> ... и как ее можно исправить?
а почему Hint?
← →
тормоз (2007-05-03 14:04) [6]Ega23 © (03.05.07 13:00) [4]
>Зависит от того, что ты хочешь получить.
На форме расположено много DBEdit-ов. Для каждого есть свой DateTimePicker, которые раскрываются (должны) при двойном нажатии на DBEdit (с помощью процедуры "DoubleEditClick"). Номер DateTimePicker-a находится в Hint.
Т.е. чтобы не писать лишних процедур, хочу воспользоваться одной универсальной.
>а почему Hint?
можно и "tag"
← →
clickmaker © (2007-05-03 14:08) [7]
> Номер DateTimePicker-a находится в Hint
так если это только номер, то почему собственно TDateTimePicker(TDBEdit(Sender).Hint)?
← →
тормоз (2007-05-03 14:18) [8]>так если это только номер, то почему собственно TDateTimePicker(TDBEdit(Sender).Hint)?
TDateTimePicker([TDBEdit(Sender).Tag]) {номер будет в tag}
но проблема, то не решиться
← →
{RASkov} © (2007-05-03 14:18) [9]> [6] тормоз (03.05.07 14:04)
> можно и "tag"
Тогда нужно...
Покажи как ты в Hint засовываешь DateTimePicker.
← →
Virgo_Style © (2007-05-03 14:20) [10]тормоз (03.05.07 14:18) [8]
TDateTimePicker(1)
- это НЕDateTimePicker1
← →
{RASkov} © (2007-05-03 14:22) [11]> [8] тормоз (03.05.07 14:18)
DBEdit.Tag:=DateTimePicker;
...........
if TObject(Sender.Tag) is TDateTimePicker then TDateTimePicker(Sender.Tag).Time:=.....
← →
тормоз (2007-05-03 14:23) [12]
> TDateTimePicker(1) - это НЕ DateTimePicker1
а что?
← →
{RASkov} © (2007-05-03 14:25) [13]> [12] тормоз (03.05.07 14:23)
> а что?
Это - 1 :) и вследствии AV. Да-а.
← →
тормоз (2007-05-03 14:29) [14]> {RASkov} © (03.05.07 14:22) [11]
DBEdit.Tag:=DateTimePicker;
- а это зачем???
← →
clickmaker © (2007-05-03 14:31) [15]
> [14] тормоз (03.05.07 14:29)
ты издеваешься, что-ли?
← →
{RASkov} © (2007-05-03 14:46) [16]> [14] тормоз (03.05.07 14:29)
Проехали.... суй в hint, если не хочешь прислушиваться/понять советы...
← →
тормоз (2007-05-03 14:52) [17]При двойном нажатии на DBEdit1 мне надо открыть DateTimePicker1:
procedure TForm1.DBEdit1DblClick(Sender: TObject);
begin
DateTimePicker1.Perform(WM_KEYDOWN, VK_F4, 0);
end;
При двойном нажатии на DBEdit2 мне надо открыть DateTimePicker2:procedure TForm1.DBEdit2DblClick(Sender: TObject);
begin
DateTimePicker2.Perform(WM_KEYDOWN, VK_F4, 0);
end;
и так ТРИДЦАТЬ РАЗ
поэтомуDBEdit1.Hint:="1";
DBEdit2.Hint:="2";
...
DBEdit30.Hint:="30";
этой процедурой:
procedure TForm8.DoubleEditClick(Sender: TObject);
Begin
if (Sender <> nil) and (Sender is TDBEdit) then
TDateTimePicker(TDBEdit(Sender).Hint).Perform(WM_KEYDOWN, VK_F4, 0);
End;
попытался сделать одну универсальную вместо 30.
Но как написал Virgo_Style © (03.05.07 14:20) [10]
>TDateTimePicker(1) - это НЕ DateTimePicker1
Весь вопрос в том, как получить DateTimePicker1, а не TDateTimePicker(1)
← →
{RASkov} © (2007-05-03 14:59) [18]> [17] тормоз (03.05.07 14:52)
Это что.... олицетворение НИКА...... посмотри [11] и последнее предложение, подкорректируй и замени у себя
вот это
TDateTimePicker(TDBEdit(Sender).Hint).Perform(WM_KEYDOWN, VK_F4, 0);
Предворительно из того-же [11] посмотри как засовывать DateTimePicker"ы в DBEdit"ы......
← →
stakan © (2007-05-03 15:04) [19]
procedure TForm8.DoubleEditClick(Sender: TObject);
begin
if (Sender <> nil) and (Sender is TDBEdit) then
TDateTimePicker(FindComponent("DateTimePicker" + TDBEdit(Sender).Hint)).Perform(WM_KEYDOWN, VK_F4, 0);
end;
← →
тормоз (2007-05-03 15:12) [20]stakan, Большое спасибо
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.046 c