본문 바로가기
Delphi/프로시저-함수

델파이 유용한 함수정리 2탄

by MonoSoft 2021. 6. 23.
728x90
반응형

델파이 유용한 함수정리 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);

 

728x90
반응형

댓글