본문 바로가기

Delphi/프로시저-함수48

메모(TMemo) 팁 TMemo 팁 델파이에서 TMemo는 텍스트 기반 멀티라인 에디트 컨트롤입니다. 이 컨트롤을 사용하면 사용자가 여러 줄의 텍스트를 입력하고 편집할 수 있습니다. TMemo는 다양한 속성과 이벤트를 제공하여 텍스트의 표시 및 편집을 제어할 수 있습니다. 일반적으로 TMemo 컨트롤은 대화형 애플리케이션에서 텍스트 입력 또는 출력에 사용됩니다. 예를 들어, 사용자가 메모를 작성하거나 텍스트 문서를 편집하는 등의 작업에 유용합니다. TMemo의 중요한 속성 중 일부는 다음과 같습니다 Lines Lines 속성은 TMemo에 표시되는 텍스트의 줄 목록을 나타냅니다. 이 속성을 통해 텍스트를 프로그래밍 방식으로 설정하거나 읽을 수 있습니다. Text Text 속성은 TMemo의 전체 텍스트 내용을 가져오거나 설정.. 2023. 6. 14.
StringGrid의 Cell에 입력 값 제한 StringGrid의 Cell에 입력 값 제한 하기 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids; type TForm1 = class(TForm) StringGrid1: TStringGrid; procedure StringGrid1DrawCell(Sender: TObject; Col, Row: Integer; Rect: TRect; State: TGridDrawState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; tmpText, cellText.. 2023. 6. 2.
초를 시간 분 초 형식으로 리턴 초를 시간 분 초 형식으로 리턴 //초를 입력하면 0시간 0분 0초 식으로 리턴한다 //ex: 4600 -> 1시간 16분 40초 function GetTimeToStr(sec : double) : string; function GetDigit(num : integer):string; var sss : string; begin sss := inttostr(num); if length(sss) = 1 then result := '0' + sss else result := sss; end; function LeftStr(const Str: string; Size: Word): string; begin LeftStr := Copy(Str,1,Size) end; var rsec, hhour, mmin, ssec.. 2021. 7. 22.
델파이 RTF (Rich Text Format) 사용방법 델파이 RTF (Rich Text Format) 사용방법 서식있는 텍스트 형식 의 약자인 RTF 란? 서식있는 텍스트 파일과 일반 텍스트 파일의 혼합 텍스트 파일과 달리 RTF 파일은 굵게, 기울임 꼴, 밑줄, 글 머리 기호, 다른 글꼴 및 텍스트 양쪽 맞춤과 같은 일부 서식 지정 기능을 제공합니다. 그러나 전체 워드 프로세서에있는 모든 기능을 제공하지는 않습니다. RTF 편집기의 예는 Microsoft WordPad입니다. 그러나 모든 텍스트 또는 워드 프로세서 프로그램은 RTF 문서를 만들 수있는 위에서 언급 한 서식 지정 기능을 사용하여 문서를 만들 수 있습니다. 일반 텍스트를 RTF 파일로 변환하는 방법 WordPad 또는 Microsoft Word와 같은 RTF 편집기에서 파일 일반 텍스트 파일.. 2021. 7. 21.
델파이 JSON to Object 한줄 델파이 JSON to Object 한줄 uses REST.JSON; // Also new System.JSON TFoo = class private FFee : Integer; FFoo : string; published property Foo : String read FFoo write FFoo; property Fee : integer read FFee write FFee; end; procedure TForm1.Button1Click(Sender: TObject); var Foo: TFoo; begin Foo := TFoo.Create; try Foo.Foo := 'Hello World'; Foo.Fee := 42; Memo1.Lines.Text := TJson.ObjectToJsonString(F.. 2021. 7. 20.
델파이 프로시저와 함수 델파이 프로시저와 함수 https://youtu.be/gIbjirw-UUQ 독립적인 문장(프로그램 코드) 블록, 코드를 독립(분리)하고 재사용 가능 프로시저 procedure 프로시저이름(매개변수 목록); { 선언부 : 구현부에서 사용할 변수,상수,타입 지정 } begin { 구현부 } end; porcedure TForm1.WriteLog(AValue: string); var S: string; begin S := FormatDateTime('HH:NN:SS', Now) + ' ' + AValue; Memo1.Lines.Add(S); end; begin...end 사이의 구현부 실행, 매개변수로 받은 데이터 사용 가능 구현부에서 사용할 변수(var), 상수(const), 타입(type) 선언부에 선언 .. 2021. 7. 19.
델파이 기본함수 델파이 기본함수 procedure read(v1,v2,v3....); procedure readln(v1,v2,v3...); 값을 입력받은 후 다음 행으로 이동 procedure write(v1,v2,....); procedure writeln(v1,v2...); 값을 출력한 후 다음 행으로 이동 function chr(x):char; x(아스키 코드값)에 해당하는 문자로 변환 function ord(x):integer; x(문자)에 해당하는 순서. 즉 아스키코드값 리턴 function int(X: Extended): Extended; 실수값의 소숫점이하를 버리고 정수부분만 취한다. Int(32.45) ← 32.0 function trunc(X: Extended): Int64; 실수값의 소숫점이하를 버리.. 2021. 7. 15.
델파이 GetLastError() 함수 델파이 GetLastError() 함수 Windows 시스템 함수를 호출하는 과정에서 오류가 발생하면 NULL을 리턴하지만 그 원인은 파악할수 없다. 원인을 파악하기 위해서는 시스템 함수뒤에 GetLastError 함수를 호출하여 그 함수의 오류에 해당하는 에러 코드를 리턴(정상일시 0 리턴)받아서 이를 MSDN 에서 참조해야 한다. 하지만 여기서 더 나아가 에러 코드를 해석해 문자열로 만들어주는 함수를 사용한다면 MSDN 을 참조하는 번거로움을 덜 수 있다. ShowMessage(SysErrorMessage(GetLastError)); 2021. 7. 14.
델파이 문자열 관련 함수 델파이 문자열 관련 함수 AnsiCompareText SysUtils Unit 문법 function AnsiCompareStr(const S1,S2:string):Integer; 두 개의 문자열 S1과 S2를 비교하되 대소문자를 구분하지 않고 비교한다. S1과 S2문자열이 같으면 0을 리턴하며 S1이>면 음수의 값을 리턴하며 S1>S2이면 양수를 리턴한다. 문자열끼리의 비교는 문자열을 이루는 각 문자의 문자 코드를 비교하여 수행된다. AnsiLowerCase SysUtils Unit 문법 function AnsiLowerCase(const S: string): string; 문자열 내부의 대문자를 모두 소문자로 바꾼다. 영문자 이외의 글자는 영향을 받지 않는다. 문자 변환은 현재 설치된 언어 드라이버의 .. 2021. 7. 13.
델파이 Delphi FileExists 델파이 Delphi FileExists 파일 존재 여부 Result => True , False Contents 1 Description 2 VCL Code Snippet 3 FMX Code Snippet 4 Uses procedure TForm1.Button1Click(Sender: TObject); var FileName: string; begin Filename:= Edit1.Text; if SysUtils.FileExists(FileName) then begin if MessageDlg(('Do you really want to delete ' + ExtractFileName(FileName) + '?'), mtConfirmation, [mbYes, mbNo], 0, mbNo) = IDYes th.. 2021. 7. 11.
델파이 Delphi Fillchar 델파이 Delphi Fillchar 1. Fillchar(Buffer, Sizeof(Buffer), 0); 는 Buffer를 0으로 채우는 일을 합니다. 2. Sizeof(Buffer)는 버퍼의 크기를 구해서 리턴합니다. 3. Bytes := Comport2.Read(Buffer, Count); 는 COM2로 들어온 데이타를 Count만큼 Buffer에 읽어오라는 명령으로 생각됩니다. Byte에는 실제로 읽은 데이타 량이 리턴될 겁니다. 2021. 7. 9.
델파이 유용한 함수정리 7탄 델파이 유용한 함수정리 7탄 JPEG, String 사용하는 방법 MYJPEG JPEG C:\DownLoad\MY.JPG StringTable begin 1, "DPSC" 2, "Tips" 3, "Source Code" 4, "Interviews, reviews, and articles" end ARJ EXEFILE C:\UTILS\ARJ.EXE WAVEFILE WAVE c:\WaveSound.wav MAINICON ICON "MainIcon.ico" uses Jpeg; procedure LoadJPEGFromRes(TheJPEG : string; ThePicture : TPicture); var ResHandle : THandle; MemHandle : THandle; MemStream : TMemor.. 2021. 7. 8.
델파이 유용한 함수정리 6탄 델파이 유용한 함수정리 6탄 외부 프로그램 위치 이동하기 procedure TFrm_wiseFNUpdateMain.Fnwindowpos; var WinPlac: TWindowPlacement; iRight, iBottom: Integer; begin H:= FindWindow('TfrmValuewise',nil); if (H > 0) and IsWindowVisible(H) then begin FillChar(WinPlac, SizeOf(WinPlac), 0); WinPlac.length := SizeOf(WinPlac); GetWindowPlacement(H, @WinPlac); // 윈도우즈가 표준상태일때의 좌표를 구한다 iRight := WinPlac.rcNormalPosition.Right - W.. 2021. 7. 7.
델파이 유용한 함수정리 5탄 델파이 유용한 함수정리 5탄 전체경로 폴더생성 function ForceDirectories(Dir: string): Boolean; or procedure pCreateDir(sPath: string); var s: string; sList: TStrings; i: Integer; begin s:= sPath; if DirectoryExists(s) then Exit; sList:= TStringList.Create; try while pos('\',s) > 0 do begin sList.Add(Copy(s,1,Pos('\',s))); Delete(s,1,Pos('\',s)); end; if Length(s) > 0 then sList.Add(s); s:= ''; for i:= 0 to sList.Co.. 2021. 7. 6.
델파이 유용한 함수정리 3탄 델파이 유용한 함수정리 3탄 초를 시분초로 분할 function ssTohhnnss(value: double): string; var r, r1,r2: double; begin r:= Value; r1:= Trunc(r / 60); //분 r2:= Trunc(r1 / 60); //시 r:= r - (r1 * 60); r1:= r1 - (r2 * 60); result:= FloatToStr(r2) + '시 ' + FloatToStr(r1) + '분 ' + FloatToStr(r) + '초'; end; 초값으로 정지하기 TTime없이 선언부 procedure Sleep(SleepSecs : Integer); 코딩부 procedure TForm1.Sleep(SleepSecs : Integer); var Sta.. 2021. 7. 2.
델파이 문자열을 거꾸로 변환하는 함수 델파이 문자열을 거꾸로 변환하는 함수 ReverseString(Str:String) Delphi 7 이후 버전에만 가능 System.StrUtils.ReverseString 상위까지 : System.StrUtils 델파이 function ReverseString ( const AText : string ) : string ; / * 오버로드 * / ; 속성 유형 시계 출처 단위 부모의 함수 공공의 System.StrUtils.pas System.StrUtils.hpp System.StrUtils System.StrUtils 기술 지정된 문자열의 반대를 반환합니다. ReverseString 은 AText에서 지정한 문자열을 역순으로 반환합니다. 2021. 7. 1.
델파이 BitBlt 함수 설명 델파이 BitBlt 함수 설명 일단 폼에 메모를 하나 붙이시구요... 버튼도 하나 붙이세요... 글구... 버튼의 OnClick 이벤트에다가 아래와 같이 코딩하시구요... procedure TForm1.Button1Click(Sender: TObject); var FBitmap: TBitmap; FDC: hDC; begin FDC := GetDC(Memo1.Handle); FBitmap := TBitmap.Create; FBitmap.LoadFromFile('C:\aaa.bmp'); BitBlt ( FDC, 0, 0, Width, Height, FBitmap.Canvas.Handle, 0, 0, SRCAND ); ReleaseDC(Handle, FDC); FBitmap.Free; end; 2021. 6. 30.
델파이 ord chr 함수 델파이 ord chr 함수 mpassword := mpassword + chr(ord(copy(vpassword,i,1))+1); --> Copy(..)함수는 String형을 되돌려줍니다. 그런데 Ord(..) 함수는 Ordinal 형을 요구합니다. 그러므로 당연히 에러가 나겠죠. Ordinal 형은 0-255 까지의 서수값을 나타냅니다. 보통 1Byte 짜리 Char형을 인자로 받아들입니다. 아래와 같이 적용하셔야 합니다. 문자열도 넓게보면 문자의 배열이므로 아래와 같이 그 위치의 문자값을 받아 Ord(..)함수로 BYTE형의 값으로 바꿔 님께서 하실려는것처럼 +1을 하셔서 Chr(..) 함수로 다시 문자로 바꾼것입니다. mpassword := mpassword + chr(ord(vpassword[i].. 2021. 6. 29.
델파이 날짜 시간 유틸 함수모음 델파이 날짜 시간 유틸 함수모음 uses DateUtils 델파이에 날짜함수를 모아둔 DateUtils.pas 가 있습니다. 머... 다들 알고있겠지만...^^ DateUtils.pas의 내용이 정리된게 없는거 같아서 나름 정리해서 올립니다. 있는지 몰라서 만들어 쓰던 함수들이 ... 여기 몇몇 보이더군요. 왠만한 날짜 처리는 다 될것 같고... 담에 또- 다른 SysUtils.pas를 정리해서 올리겠습니다. ^^ //일자를 추출한다. function DateOf(const AValue: TDateTime): TDateTime; //시간을 추출한다. function TimeOf(const AValue: TDateTime): TDateTime; //평년,윤년을 구분하다. function IsInLeapYe.. 2021. 6. 28.
델파이 유용한 함수정리 3탄 델파이 유용한 함수정리 3탄 -내장함수- 정수및 실수 관련 함수 시작 Int(Float) 설명 실수값에서 소수부분을 버리고(반올림안함) 정수부분만 구한후 출력한다. 출력값의 데이타형은 실수형이다. 사용 ShowMessage(FloatToStr(Int(3.13333))); // 3 출력 ​※ FloatToStr 대신 IntToStr를 사용하면 에러가 난다. 왜냐하면 원데이타가 실수값이기 때문이다, Trunc(Float) 설명 : 실수는 무조건 버리고 정수만 리턴하는 함수 Frac(Float) 설명 실수값에서 정수부분을 버리고 실수부분만 구한후 출력한다. 출력값의 데이타형은 실수형이다. 사용 ShowMessage(FloatToStr(Frac(3.13333))); // 0.13333 출력 byte(char) .. 2021. 6. 25.