Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- MFC
- PostgreSQL
- winsock
- 예제
- MySQL
- VB.NET
- SQL
- Firebird
- WIN32 SDK
- 파라미터
- 소니
- 초보
- 데이터베이스
- 시리얼 통신
- vb
- 델파이
- 인스톨
- SDK
- 문자열
- 셋업
- 파이어버드
- xml
- 입문
- dll
- Visual Studio 2005
- 설치
- Visual Basic
- c#
- Delphi
- 기초
Archives
- Today
- Total
프로그래밍 노트
델파이: 컨트롤 안에 있는 컨트롤을 이름으로 검색하기 본문
procedure TForm1.Button2Click(Sender: TObject);
var
ctrlTest: TControl;
edtTemp : TEdit;
begin
ctrlTest := SearchCtrl(Panel1, 'Edit2');
edtTemp := ctrlTest as TEdit;
edtTemp.Text := 'Test';
end;
function TForm1.SearchCtrl(wctlParent:TWinControl; sName:string):TControl;
var
i : integer;
ctrlRet : TControl;
wctlTemp : TWinControl;
begin
Result := nil;
// Parent컨트롤에 검색할 컨트롤이 있는지 검색
for i := 0 to wctlParent.ControlCount - 1 do
begin
// WinControl로 치환
wctlTemp := wctlParent.Controls[i] as TWinControl;
// 검색할 컨트롤 밑에 컨트롤이 있는 경우
if wctlTemp.ControlCount > 0 then
begin
// 재귀용법으로 검색
ctrlRet := SearchCtrl(wctlTemp, sName);
Result := ctrlRet;
// 검색되었을 경우 검색 중단
if ctrlRet <> nil then Break;
end
// 동일한 이름의 컨트롤이 있을 경우
else if wctlParent.Controls[i].Name = sName then
begin
Result := wctlParent.Controls[i];
Break;
end
end;
end;
Comments