델파이 유용한 함수정리 2탄
WinExec()
설명
원 하는 실행파일(외부명령어 파일,EXE 파일)을 실행시킨다.
원도우의 시작버튼>실행에 열기부분에 입력하여 확인버튼을 누른 효과와 같다.
첫번째 파라미터는 실행명 령 문자열이며 두번째 파라미터는 실행형태 타입값이다.
※ 첫번재 파라미터가 문자열값이 아닌 문자열 변수라면 사용시 PChar()로 감싸주어야 한다.
procedure TForm1.Button1Click(Sender: TObject);
var
value:string;
begin
value:='c:\lee.exe';
WinExec(PChar(value), SW_NORMAL);
end;
사용방법
-- 원하는 주소로 브라우저창 열기
winexec(`explorer http://www.daum.net`,SW_SHOWNORMAL);
winexec(`explorer http://www.daum.net`,SW_HIDE);
-- 메모장 실행
winexec(`notepad.exe`,SW_SHOWNORMAL);
-- 제어판 실행
winexec(`control.exe`,SW_SHOWNORMAL);
-- lee.exe 프로그램 실행
winexec(`c:\lee.exe`,SW_SHOWNORMAL);
-- cmd 창에서 rename명령 실행
winexec(` cmd /k " rename C:\lee1.txt lee2.txt " `,SW_SHOWNORMAL);
-- 첫번째 파일명이나 두번째 파일명에 공백이 들어가있으면 제대로 실행이 안됩니다.
윈도우 유틸리티 실행파일명
▶ 레지스트리
시작 > 실행 > mstsc - 원격데스크톱 연결
시작 > 실행 > msconfig - 시스템 구성 유틸리티
시작 > 실행 > dxdiag (다이렉트X 진단도구)
시작 > 실행 > regedit - 레지스트리 편집기
시작 > 실행 > winipcfg - 원도우98 iP 확인
시 작 > 실행 > ipconfig - 도스모드에서 IP Address 확인
▶ 보조 프로그램
시작 > 실행 > command , cmd (도스모드)
시작 > 실행 > calc (계산기)
시작 > 실행 > notepad (메모장)
시작 > 실행 > pbrush (그림판)
시작 > 실행 > winver (윈도우버전확인)
시작 > 실행 > clipbrd (클립보드내용)
시작 > 실행 > sndvol32 (볼륨조절)
시작 > 실행 > wmplayer (동영상플레이어)
▶ 제어판
시작 → 실행 → main.cpl → 마우스 등록정보
시작 → 실행 → mmsys.cpl → 사운드 및 오디오 등록정보
시작 → 실행 → ncpa.cpl → 네트워크 등록정보
시작 → 실행 → nusrmgr.cpl → 사용자 계정 관리
시작 → 실행 → powercfg.cpl → 전원 옵션 관리
시작 → 실행 → desk.cpl → 디스플레이
시작 → 실행 → inetcpl.cpl → 인터넷
시작 → 실행 → intl.cpl → 언어
시작 → 실행 → sysdm.cpl → 시스템 등록정보
시작 → 실행 → appwiz.cpl → 프로그램 추가/삭제
▶ 시스템 도구
시작 → 실행 → oobe/msoobe /a → X P 날짜제한알아보기
시작 → 실행 → devmgmt.msc - 장치관리자
시작 → 실행 → diskmgmt.msc - 파티션 관리
시작 > 실행 > msinfo32 - 시스템 정보
시작 > 실행 > gpedit.msc - 그룹정책 관리
시작 → 실행 → sigverif 드라이버 서명..?
exit()
설명
프로시저나 함수의 수행을 멈추며 프로그램을 종료하지는 않는다.
사용법
procedure TForm1.Button1Click(Sender: TObject);
var
a:Integer;
begin
a:=10;
if a = 10 then
exit;
ShowMessage(`출력?`);
end;
FormatFloat()
설명
정수형 데이타를 원하는 형식의 포맷인 문자열 데이타형으로 변환하여 출력한다.
사용법
edit1.text := formatfloat('#,##0',11012120); //# 천단위로 콤마 표시하기
edit1.text := formatfloat('#,##원',11012120); //# 천단위로 콤마 표시하기
edit1.text := formatfloat('#,##달러',11012120); //# 천단위로 콤마 표시하기
MaskUtils unit 필요
FormatMaskText()
설명
특정 문자열 데이타를 원하는 형식의 포맷인 문자열 데이타형으로 리턴해준다.
사용법
ShowMessage(FormatMaskText('!9999-99-99;0;_','20060911'));
//출력 - 2006-09-11
ShowMessage(FormatMaskText('!99:99:99;0;_','120740'));
//출력 - 12:07:40
날짜/시간관련 함수모음
Decodedate()
함수정의
TDateTime 형에 저장된 날짜 정보를 년,월,일로 분리시킨다.
사용예제
procedure TForm1.Button1Click(Sender: TObject);
var
current_date : TDateTime;
year, month, day : Word;
begin
current_date := date;
Decodedate(current_date, year, month, day);
ShowMessage( IntToStr(year)); //2008
ShowMessage( Format('%.2d', [month]) ); //08
ShowMessage( Format('%.2d', [day]) ); //08
end;
FormatDateTime()
DateUtils Unit 필요
설명
날 짜형 데이타를 원하는 형식의 포맷인 문자열 데이타형으로 리턴해준다.
(포맷은 대소문자를 가리지 않는다.)
사용법
edit1.text := formatdatetime('yyyy-mm-dd',now);
--2006-06-06
edit1.text := FormatDateTime('yyyy-mm-dd hh:nn:ss',Now);
--2006-06-06 12:20:50
-- 24 시간제로 시간이 출력
procedure TForm1.Button1Click(Sender: TObject);
var
value : TDateTime;
begin
value := StrToDate(Format('%.4d-%.2d-01', [2006,6]));
ShowMessage(FormatDateTime('yyyymmdd',value-5)); //5일 빼기
//20060527 출력
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage( FormatDateTime('yyyymmdd', StrToDate('2006-06-01')-1) );
//#20060527 출력
end;
CompareDate()
설명
두개의 날짜형 데이타를 비교한다.
사용법
//# 같으면 0 출력
ShowMessage(IntToStr(CompareDate(StrToDate('2007-04-01'), StrToDate('2007-04-01'))));
//# 오른쪽이 더 크면 -1 출력
ShowMessage(IntToStr(CompareDate(StrToDate('2007-04-01'), StrToDate('2007-04-02'))));
//# 왼쪽이 더 크면 1 출력
ShowMessage(IntToStr(CompareDate(StrToDate('2007-04-02'), StrToDate('2007-04-01'))));
※ 날짜는 YYYY-MM-DD 형식에서 날짜형으로 변환한다.
SysUtils unit 필요
데이타타입 변환 함수 모음
설명
현재 변수의 데이타형을 바꿉니다.
사용법
정수형 Int 실수형 Float 문자열형 Str 날짜/시간형 datetime 날짜형 date
현재데이타형To바꿀데이타형(데이타값);
ex)IntToStr(), StrToFloat();, ColorToString();, DateTimeToStr();, DateToStr();, timetostr();
BoolToStr(), TimeToStr(), StrToDate(), StrToTime(), StrToTime(), FloatToStr();
StrToInt64();, ColorToString();
StrToIntDef(Value:String, Default:Longint)
설명
문자열 을 정수로 변환한다.
StriToInt() 함수는 변환이 불가능할때 예외를 발생시키지만
이 함수는 변환이 불가능할 경우 Default 값을 사용한다.
Trim()
설 명
문자열의 좌우 공백을 없앤후 리턴해줍니다.(String)
사용법
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(trim(EdtValue1.Text));
end;
end.
SizeOf()
설명
변수의 데이타형의 크기를 바이트 단위로 리턴합니다.(Integer)
String만 length로 크기를 알수 있습니다.
사용법
procedure TForm1.Button1Click(Sender: TObject);
var
value1:Integer;
value2:String;
value3:LongInt;
value4:Int64;
begin
value1:=1990;
value2:='12345';
ShowMessage('Integer '+IntToStr(SizeOf(value1))+'바이트');
ShowMessage('String '+IntToStr(length(value2))+'바이트');
ShowMessage('LongInt '+IntToStr(SizeOf(value3))+'바이트');
ShowMessage('Int64 '+IntToStr(SizeOf(value4))+'바이트');
end;
StringReplace()
설명
문자열에서 특정 문자나 문자열을 원하는 문자열로 변환하여 리턴합니다.
사용법
procedure TForm1.Button1Click(Sender: TObject);
var
a:String;
begin
a:='사랑해 윤정아' + #13#10 + '윤정아';
ShowMessage(StringReplace(a,'윤정아','백윤정',[rfReplaceAll]));
ShowMessage(StringReplace(a,#13#10,'이준식',[rfReplaceAll]));
ShowMessage(StringReplace(a,#$D#$A,'이준식',[rfReplaceAll]));
end;
부가설명
#13#10는 10진수13의 아스키 값과 10진수10의 아스키값을 말하며 엔터를 말합니다.
#$D는 16진수 D의 10진수 13의 아스키 값이며 #$A는 16진수 A의 10진수 10의 아스키
값입니다.
QuotedStr()
설명
문자열을 인자로 받아 양끝에 '를 추가해 주고
문자열 내부의 '는 '' 로 자동변환해주어 반환합니다.
용도
에디터나 메모안의 텍스트를 쿼리에 넣을경우 에디터나
메모안의 텍스트에 ' 따옴표가 들어가면 쿼리문법에러가 납니다.
그래서 ' 을 ''로 변환해주는 역할을 합니다.
기본 예제
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(QuotedStr('LEEJUN')); // 'LEEJUN' 출 력됨
ShowMessage(QuotedStr('LEE''JUN'));// 'LEE''JUN' 출력됨
end;
사용 예제
다음과 같이 insert문이나 update문에 QuotedStr()함수를 사용합니다.
'UPDate Bulletin Set Notice = '+QuotedStr(MemoGongji.Text)+' '+'where Ymd = '''+DateToStr(DTP1.Date)+'''';
메세지 박스 관련 함수
DirectoryExists
Dialogs unit 추가
ShowMessage(string);
설명
간단한 메세지 박스를 화면의 정가운데에 출력한다.
※ 메세지내용에서 줄바꿈을 하려면 다음과 같이 한다.
ShowMessage('준식아' + #13#10 + '메롱');
ShowMessage() 줄바꿈예제
procedure TForm1.Button1Click(Sender: TObject);
var
szMsg:String;
begin
szMsg := #13#10 + ' ▶▶▶▷【 .... 】◁◀◀◀ ';
szMsg := szMsg + #13#10+#13#10;
szMsg := szMsg + '◈ 반송코드 : [ .... ] ';
szMsg := szMsg + #13#10+#13#10;
szMsg := szMsg + '◈ 반송사유 : [ .... ] ';
showmessage( szMsg );
end;
Dialogs unit 추가
ShowMessagePos(string, 가로좌표,세로좌표);
설명
간단한 메세지 박스를 화면의 원하는 위치에 출력한다.
가로위치나 세로위치에 마이너스값이 들어가면 가운데로 자동 설정된다.
사용예제
//# 화면의 최상단을 기준으로 좌측부터 0픽셀, 상단부터 0픽셀 떨어져 출력
ShowMessagePos(' 홍길동' + #13#10 + '메롱', 0, 0)
//# 화면의 최상단을 기준으로 좌측부터 100픽셀, 상단부터 100픽셀 떨어져 출력
ShowMessagePos('홍길동' + #13#10 + '메롱', 100, 100);
//가로위치나 세로위치에 마이너스값이 들어가면 가운데로 자동 설정된다.
ShowMessagePos('홍길동' + #13#10 + '메롱', -10, -10);
'Delphi > 프로시저-함수' 카테고리의 다른 글
델파이 유용한 함수정리 3탄 (0) | 2021.06.25 |
---|---|
델파이 showmodal 리턴받기 (0) | 2021.06.24 |
델파이 유용한 함수정리 1탄 (0) | 2021.06.23 |
델파이 함수 RoundTo (0) | 2021.06.22 |
델파이 자주사용되는 함수/프로시저 (0) | 2021.06.21 |
댓글