[펌] 델파이 기본 컴포넌트2
컨텐츠 정보
- 33,890 조회
- 0 추천
- 목록
본문
ListBox Component
comment
콤보박스형태를 리스트형태로 보여줍니다.
property
multiselect-2개이상을 클릭한다.(true)
Sorted-리스트 정렬
속성값이 False인 경우 리스트박스에 추가된 순으로 출력하지만 True인 경우에는 알파벳 순으로 정렬하여 출력한다.
items-리스트 박스에 항목을 추가한다.
method
Items.Delete(클릭한 순서값)-항목 지우기
Items.add(추가항목문자열)-항목 추가하기(무조건 맨뒤에서 추가)
Items.insert(추가순서값,추가항목문자열)-항목 추가하기(원하는 위치에 추가)
items.text(항목의 전체 값)
items.string[index값](index값에 해당하는 항목값 출력)
itemindex-현재 클릭한 순서값
순서는 위에서부터 0으로 출발하여 1씩 더해진게 itemindex의 값이ㅏㄷ.
clear-항목 전체를 지운다.
additional 페이지
SpeedButton Component
comment
버튼을 평평하게 하거나 버튼명좌측에 원하는 이미지를 넣을수 있습니다.
property
Flat-버튼을 평평하게 합니다.
※ bitbin component와 구별되는 속성입니다.
Glyph-버튼명 좌측에 이미지를 넣습니다.
bitbtn Component
comment
확장 버튼으로 비트이미지를 넣을수 있는 버튼이다.
property
glyph-버튼에 bmp이미지를 넣는다.
kind-버튼에 델파이에서 제공하는 이미지를 넣는다.
modalresult-버튼을 눌렸을때 부모창에게 넘겨줄 값을 지정한다.
GroupIndex-비트 버튼들을 한그룹으로 설정
설치된 스피드버튼들(SpeedButton)을 한 그룹으로 설정하려면 ‘GroupIndex’속성을 ’0‘이 아닌 정수로 설정한다. ’GroupIndex’값이 같은 스피드버튼은 같은 그룹으로 인정이 되고 만약 ‘0’인 스피드버튼(SpeedButton)은 단독으로 사용하는 스피드버튼(SpeedButton)이 된다.
Scrollbox Component
comment
panel와 비슷한 특성을 가지며 splitter을 사용가능하다.
property
borderstyle-외곽선효과주기(bssingle)외곽선효과안주기(bsnone)
* autosize 속성이 true면 상하좌우 스크롤이 안생긴다.
splitter Component
(Align속성을 AlNone이 아닌값을 한 컴포넌트와 사용한다.)
comment
scrollbox와 함계 사용하면서 사이즈를 조절합니다.
property
align-splitter의 방향을 결정한다.
※ 값이 alNone이면 동작하지 않는다.
color-배경색을 설정한다.
width-굵기를 설정한다.
Beveled-깍아오른 효과를 준다.
※ 좀더 눈에 잘들어온다.
Bevel 컴포넌트
comment
경사진 효과를 내는 모양을 출력한다.
property
style-외곽선에 나온효과를 줄건지 들어간 효과를 줄건지 결정
bsrowered(모양이 들어간 효과를 준다)
bsraised(모양이 튀어나온 효과를 준다)
shape-모양의 종류를 설정
bsSpacer(선을 안보이게합니다.)
bsBox(디폴트 선을 style대로 보입니다.)
bsTopLine(직선으로 보입니다.프로그램 구분선으로 자주 쓰임)
CheckListBox Component
Comment
체크박스가 들어간 ListView 입니다.
property
Flat – 체크박스를 평평하게 합니다. (True – 평평하게)
Columns – 가로방향으로 줄을 나누어 항목을 출력시킨다.
※ 0 – 한줄로 출력하며 세로 스크롤바 생김
※ 0 – 한줄로 출력하며 세로 스크롤바 생김
Method
Clear – 항목값을 모두 지운다.
사용예제
특정경로의 파일을 출력하기
procedure TForm1.Button8Click(Sender: TObject);
var
//체크리스트 설정
SR : TSearchRec;
sDir : string;
n_Found: Integer;
begin
CheckListBox1.Clear; // 체크리스트박스 초기화
sDir := ‘c:\’; // 조회할 디렉토리
if sDir[Length(sDir)] <> ‘\’ then begin //# 마지막 문자가 ‘/’ 인지 체크
sDir := sDir + ‘\’;
end;
n_Found := FindFirst(sDir + ‘*.*’, faAnyFile, SR);
try
while n_Found = 0 do begin
if not (SR.Attr in [faVolumeID, faDirectory]) then begin
if (FileExists(sDir+SR.Name) = True) then begin //# 폴더를 제외한 파일만 출력
CheckListBox1.Items.Add(SR.Name);
end;
end;
n_Found := FindNext(SR);
end;
finally
FindClose(SR);
end;
end;
체크한 항목갯수 알아내기
procedure TForm1.Button6Click(Sender: TObject);
var
i, n_Count: Integer;
begin
n_Count:= 0;
for i:=0 to CheckListBox1.Items.Count-1 do begin
if CheckListBox1.Checked[i] then Inc(n_Count);
end;
ShowMessage(CheckListBox1.Items[i-1]);
ShowMessage(Format(‘전체 %d 파일 중 %d 파일 선택’, [CheckListBox1.Count, n_Count]));
end;
현재 선택되어진 항목의 순서값 알아내기(0부터 시작)
procedure TForm1.Button9Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to CheckListBox1.Items.Count-1 do begin
if CheckListBox1.Selected[i] then ShowMessage(inttostr(i));
end;
end;
전체선택/해제 구현하기
procedure TForm1.Button7Click(Sender: TObject);
var
i, n_Count: Integer;
begin
n_Count:= 0;
if TControl(Sender).Tag=0 then
TControl(Sender).Tag:=1
else
TControl(Sender).Tag:=0;
for i:=0 to CheckListBox1.Items.Count-1 do begin
CheckListBox1.Checked[i] := TControl(Sender).Tag = 1;
end;
end;
shape 컴포넌트
comment
다양한 모양을 표현하는 컴포넌트입니다.
property
brush/color-내용선의 색
brush/style-내용선의 모양 종류
pen/color-외곽선 색
pen/style-외곽선의 모양 종류
shape-전체 모양 종류(원,사각형등)
Image 컴포넌트
comment
이미지의ㅣ 모습을 화면에 출력합니다.
RXlib 패키지를 설치했다면 GIF, BMP, JPEG, ICO 등의이미지확장자가 등록가능하지만
Rxlib 패키지가 설치되어 있지 않다면 BMP, ICOM 등의 이미지확장자만 등록이 가능합니다.
하지만 런타임시에 image컴포넌트에 gif가 안먹힐때도 있다 ^^
※ Gif 확장자를 사용하려면 RXlib 패키지를 설치해야 한다.
※ Png확장자는 사용 불가능하다.
※ 애니메이션 GIF 이미지는 사용 불가능하다.
jpg 파일을 이미지 컴포넌트에 출력할때 "Unknown picture file extension(.jpg)" 라는 메시지가
뜬다면 해당 유닛의 상단에 Jpeg를 uses처리한후 다시 하면 된다.
property
autosize – 해당 컴포넌트의 크기가 이미지의 오리지널 크기에 맞추어진다.(true)
stretch – Image 컴포넌트의 크기에 딱맞게 이미지 사이트가 변경된다.(true)
※ ico파일을 제외한 이미지파일만 stretch 기능을 사용가능하다.(ico파일 불가능)
transparent-해당 이미지를 투명화합니다.(true)
설명:
델파이에서 투명한 이미지를 표현할때는 timage의 속성에서 transparent를 true로 하면 이미지
에서 하얀부분은 보이지 않게 된다. 하얀부분을 제외한 부분만 보이게 된다.투명한 이미지는
되도록이면 bmp나 gif로 하는게 좋습니다. jpeg는 적합하지 않습니다.
method
Picture.LoadFromFile()-파일명을 주어서 이미지를 로딩한다.
Picture.SaveToFile()-파일명을 주어서 이미지를 저장한다.
labelededit컴포넌트
comment
레이블과 edit컴포넌트를 합친 컴포넌트이다.
property
labelposition-레이블의 위치를 조정 가능하다.
MaskEdit 컴포넌트
Comment
특별한 형식을 가지는 (ex, 전화번호, 우편번호, 날짜등)문자열을 입력받을 때 사용한다.
Property
Text – 입력된 값을 참고한다.
※ MaskEdit 컴포넌트에 6자리만 입력되게 설정한후 4자리만 입력하고 Text 속성을 읽으면
6자리가 읽혀진다. 왜냐하면 입력되지 않은 2자리는 공백으로 인식되어 읽혀지기 때문이다.
그래서 Text 속성을 읽을때는 trim 함수를 사용하여 좌우 공백을 제거해야 정상적인 값을
얻을수 있다. ex : Value1 := trim(MaskEdit1.Text)
Editmask-마스크 에디터를 실행한다.
※ masks클릭한후 Korea.DEM을 클릭하면 한국식의 표기법이 나온다.
Sample mask에서 원하는 표기법을 클릭합니다.
Input mask 값에서 끝이 ;1 이면 사용자가 입력한 값과 특수문자(:, – , 년)까지 모두 저장하며 ;0 이면 사용자가 입력한 값만 저장된다.
ex :
99:99:99;0;_ <- 숫자만 입력하며 99:99:99 형식으로 받으며 실제로 :는 뺀값만 저장된다.
99:99:99;1;_ <- 숫자만 입력하며 99:99:99 형식으로 받으며 실제로 :는 포함된 값이 저장된다.
999-999;0;_ <- 숫자만 입력하며 999-999 형식으로 받으며 실제로 :는 뺀값만 저장된다.
999.999.999.999;0;_ <- 숫자만 입력하며 999.999.999.999 형식으로 받으며 실제로 .는 뺀값만 저장된다.(IP 입력 포맷)
method
clear-모두 지운다.
StatusBar 컴포넌트
Comment
폼의 맨하단에 출력되며 상태를 나타내는 상태바 역할을 한다.
Field 만들기
StatusBar 컴포넌트를 더블클릭한 대화상자에서 Add New 버튼으로 필드를 추가한다.
Method
Panels[순서값].Text – 출력값을 설정한다.
※ 순서값은 0 부터 시작한다.
※ 프로그램 버전을 출력하는 용도로도 쓰인다.
StatusBar 예제
StatusBar1.Panels.Add;
StatusBar1.Panels[0].Text := ‘버전 : 1′;
StatusBar1.Panels[0].Width := 200;
StatusBar1.Panels[0].Alignment := taRightJustify;
Win32 페이지
TabControl컴포넌트
comment
한화면에 영역버튼별로 나누어서 볼수있고 영역버튼별로 같은 화면이 나오는 컴포넌트
property topposition-메뉴의 위치를 지정합니다.
tabs-메뉴를 설정합니다.
tabindex-초기실행시 메뉴의 클릭상태(-1:아무것도클릭안함,0:첫번째버튼,1:두번째클릭
순으로)
PageControl 컴포넌트
Comment
한화면에 영역버튼별로 나누어서 볼수있고 영역버튼별로 각각의 화면이 나오는 컴포넌트
Property
topposition-메뉴의 위치를 지정합니다.
tabindex – 현재 선택한 순서값을 출력 또는 원하는 순서값으로 탭을 이동함(0부터 시작)
ActivePageIndex – 현재 선택한 순서값을 출력 또는 원하는 순서값으로 탭을 이동함
(0부터 시작)
※ tabindex 와 ActivePageIndex 차이점
ActivePageIndex은 탭과 해당하는 페이지가 변경되지만 tabindex는 탭만 변경되고 페이지는
그대로 있음
multiline(true)-여러줄로 나누어 page출력
Style-페이지 이동 버튼의 스타일을 설정합니다.
※ 각 페이지 삭제방법
삭제를 원하는 TabShee 선택후에 Delete키를 누른다.
※ 페이지를 맨끝이 아닌 중간에 삽입하는 방법
new page 명령으로 삽입후에 pageindex 속성을 이용하면 중간에 추가한 페이지를 위치
시킬수 있다.
예제 : 탭시트 숨기기
//# 첫번째 탭시트 숨기기(False : 숨김)
PAGECONTROL1.Pages[0].TabVisible := False;
//# 탭시트의 name값으로 탭시트 숨기기(False : 숨김)
TabSheet1.TabVisible := False;
//# 현재 선택한 탭시트의 순서값(0부터 시작)
ShowMessage(inttostr(pagecontrol1.TabIndex));
※ TabVisible 메소드로 숨긴 탭시트는 TabIndex 메소드에서 없는것처럼 계산하여 처리한다.
//# 탭시트의 전체 갯수
ShowMessage(IntToStr(pagecontrol1.PageCount));
Animate 컴포넌트
comment
원도우에서 정의해둔 여러 애니메이션을 제공한다.
property
commonAVI-애니메이션의 종류를 선택한다.
Active-애니메이션을 활성활할지 체크(true-활성화)
RichEdit 컴포넌트
comment
memo컴포넌트(기본)에서 확장된 컴포넌트이다.
property
ScrollBar – 가로/세로 스크롤바를 설정한다.
※ 스크롤바가 정상적으로 동작하려면 WordWrap속성이 false여야 한다.
※ 델파이에 포함되어 있는건 RichEdit 1.0 입니다.
method
lines – clear – 내용을 모두 지운다.
각 라인별로 다르게 글자 속성을 주는 예제
with richedit1 do begin
lines.Clear;
lines.add(’1111′);
lines.add(’2222′);
//# 현재 줄만 폰트 설정 변경
SelAttributes.Color := clred;
lines.add(‘하하하하’);
//# 현재 줄만 폰트 설정 변경
SelAttributes.Style := SelAttributes.Style + [fsBold];
SelAttributes.Color := clblack;
SelText := ‘하하하하’;
lines.add(#13#10);
//# 0번째 문자부터 10개의 문자의 색깔을 변경한다.
selstart := 0;
sellength := 10;
SelAttributes.Color := clblack;
lines.add(’2222′);
// Font.Color := clBlue;
// DefAttributes.Color := clRed; 전체 글자 속성 변경
// DefAttributes.Style := [fsBold]; 전체 글자 속성 변경
end;
※ 마우스로 특정 문자열을 블럭지정한후 SelAttributes.Color := clblack; 을 사용하면 블럭지정된 문자열의 색깔이 변경된다.
※ 리치에디트 컴포넌트는 각 라인별로 폰트 속성을 다르게 줄수 있습니다.
DateTimePicker 컴포넌트
Comment
MonthCalendar 컴포넌트을 이용해서 콤보박스안에 날짜를 입력합니다.
Property
parseinput – 직접 날짜를 입력가능하게 한다.(true)
date – 기본 날짜를 지정합니다.
dateformat – 날짜 형식을 조정합니다.(2005-05-05,2005년5월5일)
kind – 날짜 선택 모드인지 시간 선택 모드인지 설정 (날짜/시간 동시에 선택방식 지원안됨)
Method
datetime – 선택된 날짜와 현재 시간을 대입하거나 출력합니다.
date – 선택된 날짜를 대입하거나 출력합니다.
※ 사용 예제
ShowMessage(datetostr(DateTimePicker1.Date));
– 출력 : ’2007-07-05′ 형식의 문자열로 출력됨
ShowMessage(datetimetostr(DateTimePicker1.DateTime));
관련자료
-
링크