Форум: "Начинающим";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Внизкак сделать? Найти похожие ветки
← →
dera (2006-02-27 17:10) [0]На форме есть 3 эдита и напротив каждого 3 батона. Необходимо, чтоб по нажатию на первый батон появился календарь (MonthCalendar) и по двойному клику вставить дату в первый эдит. То же самое для второго батона и второго эдита. Но компонент MonthCalendar должен быть один, а не 3. Просьба не предлягать DateTimePicker.
Спасибо
← →
umbra © (2006-02-27 17:13) [1]а где знак вопроса? да и сам вопрос. :)
← →
dera (2006-02-27 17:26) [2]Вопрос в том, как такое организовать? А точнее, что писать тут:
procedure TForm1.Button1Click(Sender: TObject);
begin
MonthCalendar1.Visible:=true;
??????????
end;
← →
DesWind © (2006-02-27 17:41) [3]Как-нибудь дать знать календарю в какой едит вставлять значение. Ведь, насколько я понял вставлять значение надо по двойному щелчку по календарю?
← →
dera (2006-02-27 17:55) [4]>DesWind © (27.02.06 17:41) [3]
совершенно верно
← →
clickmaker © (2006-02-27 17:57) [5]MonthCalendar1.Tag := integer(Edit1);
при обработке щелчка на календаре
TEdit(Sender.Tag).Text := TMonthCalendar(Sender).Date;
← →
dera (2006-02-27 18:11) [6]>TEdit(Sender.Tag).Text := TMonthCalendar(Sender).Date;
выдает - Undeclared identifier: "Tag"
← →
novice_man © (2006-02-27 18:18) [7]dera (27.02.06 18:11) [6]
Потому, что уTObject
нет поляtag
/
← →
dera (2006-02-27 18:22) [8]и что можна сделать?
← →
azl © (2006-02-27 18:31) [9]А какие собственно говоря проблемы?
procedure TForm1.Button1Click(Sender: TObject);
begin
MonthCalendar1.Visible := true;
end;
procedure TForm1.MonthCalendar1DblClick(Sender: TObject);
begin
Edit1.Text := DateToStr(MonthCalendar1.Date);
end;
Button2 - Events - OnClick - Button1Click
← →
novice_man © (2006-02-27 18:32) [10]
procedure TForm1.Button1Click(Sender: TObject);
begin
MonthCalendar1.Visible := true;
MonthCalendar1.Tag := 1;
end;
procedure TForm1.MonthCalendar1DblClick(Sender: TObject);
begin
MonthCalendar1.Visible := false;
case MonthCalendar1.Tag of
1: Sender := Edit1;
2: Sender := Edit2;
end;
TEdit(Sender).Text := DateToStr(TMonthCalendar(Sender).Date);
end;
Не единственный вариант.
← →
novice_man © (2006-02-27 18:34) [11]novice_man © (27.02.06 18:32) [10]
TEdit(Sender).Text := DateToStr(TMonthCalendar(Sender).Date);
То есть:TEdit(Sender).Text := DateToStr(TMonthCalendar.Date);
← →
novice_man © (2006-02-27 18:36) [12]Расставь в кнопках
tag
(1,2 ... 5)
и обработчик OnClick теперь выглядет так:procedure TForm1.Button1Click(Sender: TObject);
begin
MonthCalendar1.Visible := true;
MonthCalendar1.Tag := TButton(Sender).Tag;
end;
← →
novice_man © (2006-02-27 18:40) [13]novice_man © (27.02.06 18:34) [11]
TEdit(Sender).Text := DateToStr(MonthCalendar1.Date);
← →
clickmaker © (2006-02-27 18:41) [14]сначала кнопкам даем Tag от 1 до 3
procedure TForm1.ButtonClick(Sender: TObject); // для всех 3
begin
MonthCalendar.Tag := TButton(Sender).Tag;
MonthCalendar.Visible := true;
end;
procedure TForm1.MonthCalendar1DblClick(Sender: TObject);
var Edit: TEdit;
begin
Edit := FindComponent("Edit" + IntToStr(TMonthCalendar(Sender).Tag));
if (Edit <> nil) then Edit.Text := DateToStr(TMonthCalendar(Sender).Date);
end;
← →
dera (2006-02-27 18:41) [15]>novice_man © (27.02.06 18:32) [10]
огромное спасибо!
← →
azl © (2006-02-27 18:44) [16]var
Form1: TForm1;
Bt1, Bt2: boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
MonthCalendar1.Visible := true;
Bt1 := true; Bt2 := False;
end;
procedure TForm1.MonthCalendar1DblClick(Sender: TObject);
begin
if Bt1 then
Edit1.Text := DateToStr(MonthCalendar1.Date);
if Bt2 then
Edit2.Text := DateToStr(MonthCalendar1.Date);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
MonthCalendar1.Visible := true;
Bt1 := False; Bt2 := true;
end;
← →
dera (2006-02-27 18:44) [17]>clickmaker © (27.02.06 18:41) [14]
и Вам тоже благодарен. Заоодно чуть-чуть разобрался что такое Tag
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.017 c