procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
MaskEdit1.Text := Copy(DateToStr(DateTimePicker1.Date),1,4) +'/' +
Copy(DateToStr(DateTimePicker1.Date),5,2) +'/' +
Copy(DateToStr(DateTimePicker1.Date),7,2);
end;
procedure TForm1.DateTimePicker2Change(Sender: TObject);
begin
MaskEdit2.Text := Copy(DateToStr(DateTimePicker2.Date),1,4) +'/' +
Copy(DateToStr(DateTimePicker2.Date),5,2) +'/' +
Copy(DateToStr(DateTimePicker2.Date),7,2);
end;
procedure TForm1.DateTimePicker3Change(Sender: TObject);
begin
MaskEdit3.Text := Copy(DateToStr(DateTimePicker3.Date),1,4) +'/' +
Copy(DateToStr(DateTimePicker3.Date),5,2) +'/' +
Copy(DateToStr(DateTimePicker3.Date),7,2);
end;
procedure TForm1.DateTimePicker4Change(Sender: TObject);
begin
MaskEdit4.Text := Copy(DateToStr(DateTimePicker4.Date),1,4) +'/' +
Copy(DateToStr(DateTimePicker4.Date),5,2) +'/' +
Copy(DateToStr(DateTimePicker4.Date),7,2);
end;
이렇게 DateTimePicker도 여러개이고 MaskEdit도 여러개네요.
공통된사항은 DateTimePicker4 이면 이름이 MaskEdit4가 됩니다.
이런 식으로 20개 남짓되는데..
그렇게 된다면...위의 쏘쓰 너무 지저분해지잖아여!
이 길이를 화~~악 줄일수 있을까여?
나름대로 생각을 해도 답이...-_-;
지발 답을... 쩌번에도 누가 올려놨는데...암도 대답을 안하셨던데..
함만, 곰곰히 생각해 답을 유출해주세요~~~
FindComponent란 메소드를 사용해보세요...
// 모든 DateTimePicker의 OnChange이벤트
procedure TForm1.DateTimePickerChange(Sender: TObject);
var
IndexStr: string;
MaskEdit: TMaskEdit;
DateTimePicker: TDateTimePicker;
begin
// 'DateTimePickerXX' 라는 컴포넌트 이름에서 'DateTimePicker'라는 문자열을
// 삭제하면 숫자 인덱스만 나온다...
// ex) 컴포넌트 이름이 'DateTimePicker1'일때: IndexStr = '1'
IndexStr := TDateTimePicker( Sender ).Name;
Delete(IndexStr, 1, Length('DateTimePicker'));
// DateTimePicker와 인덱스가 같은 MaskEdit를 찾는다.
MaskEdit := FindComponent('MaskEdit' + IndexStr);
// 이벤트를 일으킨 TDateTimePicker컴포넌트는 Sender로 넘어오므로 찾을필요가 없다...
DateTimePicker := TDateTimePicker( Sender );
MaskEdit.Text := Copy(DateToStr(DateTimePicker.Date),1,4) +'/' +
Copy(DateToStr(DateTimePicker.Date),5,2) +'/' +
Copy(DateToStr(DateTimePicker.Date),7,2);
end;
^^ 항상 즐코하세요...
DEUXIST ^^; wrote:
> procedure TForm1.DateTimePicker1Change(Sender: TObject);
> begin
> MaskEdit1.Text := Copy(DateToStr(DateTimePicker1.Date),1,4) +'/' +
> Copy(DateToStr(DateTimePicker1.Date),5,2) +'/' +
> Copy(DateToStr(DateTimePicker1.Date),7,2);
> end;
>
> procedure TForm1.DateTimePicker2Change(Sender: TObject);
> begin
> MaskEdit2.Text := Copy(DateToStr(DateTimePicker2.Date),1,4) +'/' +
> Copy(DateToStr(DateTimePicker2.Date),5,2) +'/' +
> Copy(DateToStr(DateTimePicker2.Date),7,2);
> end;
>
> procedure TForm1.DateTimePicker3Change(Sender: TObject);
> begin
> MaskEdit3.Text := Copy(DateToStr(DateTimePicker3.Date),1,4) +'/' +
> Copy(DateToStr(DateTimePicker3.Date),5,2) +'/' +
> Copy(DateToStr(DateTimePicker3.Date),7,2);
> end;
>
> procedure TForm1.DateTimePicker4Change(Sender: TObject);
> begin
> MaskEdit4.Text := Copy(DateToStr(DateTimePicker4.Date),1,4) +'/' +
> Copy(DateToStr(DateTimePicker4.Date),5,2) +'/' +
> Copy(DateToStr(DateTimePicker4.Date),7,2);
> end;
>
> 이렇게 DateTimePicker도 여러개이고 MaskEdit도 여러개네요.
> 공통된사항은 DateTimePicker4 이면 이름이 MaskEdit4가 됩니다.
> 이런 식으로 20개 남짓되는데..
> 그렇게 된다면...위의 쏘쓰 너무 지저분해지잖아여!
> 이 길이를 화~~악 줄일수 있을까여?
>
> 나름대로 생각을 해도 답이...-_-;
> 지발 답을... 쩌번에도 누가 올려놨는데...암도 대답을 안하셨던데..
>
> 함만, 곰곰히 생각해 답을 유출해주세요~~~
>