본문 바로가기

델파이502

TList 활용하기 TList활용하기 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TMyData=record SAW_CODE:String; FName:String; end; MyData=^TMyData; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TC.. 2021. 10. 29.
TEdit 다음 포커스 이동하기 TEdit 다음 포커스 이동하기 if key = #13 then SelectNext(Activecontrol, True, True); 2021. 10. 28.
델파이 RGB 와 HSL 유틸 유닛 델파이 RGB 와 HSL 유틸 유닛 HSL의 의미 HSL은 컬러를 이루는 3가지 요소인 Hue (색), Saturation (채도), Lightness (명도)를 직접 조절하는 메뉴입니다. 물론 포토샵에서도 Hue / Saturation 모드를 통해 컬러를 조절할 수 있지만 라이트룸은 좀 더 직관적인 메뉴를 제공합니다. 또한 라이트룸에서는 모든 컬러를 동시에 조절하는 것이 아니라 컬러별로 미세하게 위의 요소들을 조절할 수 있기 때문에 보다 전문적인 컬러 조절을 하기 위해선 꼭 알아야 하는 메뉴입니다. unit RGBHSLUtils; interface uses Windows, Graphics, Math, Scanlines; var //set these variables to your needs, e.g. .. 2021. 10. 22.
델파이 API 애니매이션 효과내기 API 애니매이션 효과 AnimateWindow(handle, 1000, AW_HOR_POSITIVE);//왼쪽->오른쪽 AnimateWindow(handle, 1000, AW_HOR_NEGATIVE);//오른쪽->왼쪽 AnimateWindow(handle, 1000, AW_VER_POSITIVE);//위->아래 AnimateWindow(handle, 1000, AW_VER_NEGATIVE);//아래->위 AnimateWindow(handle, 1000, AW_CENTER);//내부적으로 축소 또는 외부확장 AnimateWindow(handle, 1000, AW_HIDE);//윈도우를 숨기는 효과 AnimateWindow(handle, 1000, AW_ACTIVATE);//윈도우 활성시키는 효과 Anim.. 2021. 10. 18.
String 을 PAnsiChar 변환 String 을 PAnsiChar 변환 function StringToPAnsiChar(stringVar : string) : PAnsiChar; Var AnsString : AnsiString; InternalError : Boolean; begin InternalError := false; Result := ''; try if stringVar '' Then begin AnsString := AnsiString(StringVar); Result := PAnsiChar(PAnsiString(AnsString)); end; Except InternalError := true; end; if InternalError or (String(Result) stringVar) then begin Raise Exc.. 2021. 10. 14.
난수 문자열 만들기 난수 문자열 만들기 function RandomPassword(PLen: Integer): string; var str: string; begin Randomize; //string with all possible chars str := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; Result := ''; repeat Result := Result + str[Random(Length(str)) + 1]; until (Length(Result) = PLen) end; procedure TForm1.Button1Click(Sender: TObject); begin //generate a password with 10 chars label1.Caption.. 2021. 10. 13.
문자 사이에서 숫자 추출하기 문자 사이에서 숫자 추출하기 [문자사이에서 숫자 추출하기] function ExtractInt(Astring:String):String; var i : integer; TempString:String; begin TempString := ''; Astring := Trim(Astring); if Astring '' then for i := 1 to Length(Astring) do if (Astring[I] in ['0'..'9']) then TempString := TempString+AStrig[I]; Result := Trim(TempString); end; {숫자 사이에서 문자 추출하기} function ExtractString(Astring:String):String; var i : intege.. 2021. 10. 12.
문자열에서 특정 단어가 몇번 들어갔는지 체크하는 함수 문자열에서 특정 단어가 몇번 들어갔는지 체크하는 함수 uses strutils; function countword(const source, wordstr : string; index : integer = 1):integer; var i, lensource : integer; begin result := 0; lensource := length(source); i := index; // 일정 인덱스 이후의 문자를 검색. while i0 then inc(result) else break; inc(i); end; end; 2021. 10. 11.
REST 기반 파일 업로드와 다운로드 구현하기 https://blog.hjf.pe.kr/518 [REST API] REST 기반 파일 업로드와 다운로드 구현하기 이 글에서는 REST API 기반 파일 업로드와 다운로드 구현방안을 설명합니다. REST 서버와 REST 클라이언트를 이용해 기능을 구현했습니다. REST 기반 파일 업로드와 다운로드 구현 REST API 구현 시 파일 blog.hjf.pe.kr 2021. 10. 9.
열거형의 사용방법 열거형의 사용방법 unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Memo1: TMemo; Panel1: TPanel; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} type { 열거형을 정의한다 } DayOfWeek = (Mon, .. 2021. 10. 8.
델파이 DLL 사용 방법 델파이 DLL 사용 방법 1. DLL 생성 방법 File > New > Other > Delphi Projects > DLL Wizard 선택하면 기본 DLL 프로젝트가 생성됨. 2.DLL 호출 방법 => 동적사용 procedure TForm1.Button1Click(Sender: TObject); type TFunc = function(s:string) : string; //dll 함수 설정 var Handle : THandle; MyFunc : TFunc; begin Handle := LoadLibrary('파일명.dll'); if Handle 0 then begin @MyFunc := GetProcAddress(Handle, 'dll함수명'); if @MyFunc nil then begin //DL.. 2021. 10. 8.
파일 경로/이름/확장자 등 알아내기 파일 경로,이름,확장자 등 알아내기 Example code : Extract all of the parts of a full file name 코드 var fullFileName : string; begin // Set up a full file name with drive and path fullFileName := `C:\Program Files\Borland\Delphi7\Projects\Unit1.dcu`; // Show the component parts of this full name ShowMessage(`Drive = `+ExtractFileDrive (fullFileName)); ShowMessage(`Dir = `+ExtractFileDir (fullFileName)); ShowMess.. 2021. 10. 7.
Unix파일 (.sam) 델파이에서 읽기 방법 Unix파일 (.sam) 델파이에서 읽기 방법 procedure ReadUnixLn(var fd: TextFile; var s: string); var i,a: integer; c: char; begin i := 0; a := 0; while ( not Eof(fd) ) do begin Read(fd,c); if ( c=Chr(10) ) then exit; SetLength(s,i+1); s[i] := c; Inc(i); inc(a); end; end; procedure TfrmSisdMain.Button2Click(Sender: TObject); var fd: TextFile; s: string; begin try AssignFile(fd,'C:\Root\post_real\IN\20140219.IAQ0.. 2021. 10. 6.
델파이 파일복사 방법 델파이 파일복사 방법 unit Unit1; interface uses Windows, Messages, SysUti= False; end; end; // 파일의 존재여부 검사 function CheckSrcF(st: string): boolean; begin Resr(tgtfname); inf.fFlags := 0 or FOF_MULTIDESTFILES; if SHFileOperation(inf) = 0 tte(srcfname, fmOpenRead); try t := TFileStream.Create(tgtfname,fmOpenWrite or fmCreate ); try t.CopyFrom(s, s.Size); finally t.Free; end; finally s.Free; end; end; // Bl.. 2021. 10. 1.
파일크기 구하기 파일크기 구하기 // 파일크기 반환. 파일이 없으면 -1 function GetFileSize(FilePath: String): Int64; var SR: TSearchRec; begin if FindFirst(FilePath, faAnyFile, SR)=0 then Result:=Int64(SR.FindData.nFileSizeHigh) shl Int64(32)+Int64(SR.FindData.nFileSizeLow) else Result:=-1; FindClose(SR); end; 2021. 9. 30.
ini 파일 읽기/생성 ini 파일 읽기/생성 procedure TForm1.FormCreate(Sender: TObject); var ini: TIniFile; tmp, iniFileName: String; begin iniFileName := 'c:\test.ini'; ini := TIniFile.Create(iniFileName); if FileExists(iniFileName) then begin tmp := ini.ReadString('Section', 'value01', '0'); ShowMessage(tmp); end else begin ini.WriteString('Section', 'value01', '1'); end; ini.Free; end; 2021. 9. 29.
UTF-8 인코딩 파일 읽기 UTF-8 인코딩 파일 읽기 Delphi 2009 기준. (String이 기본적으로 WideString) uses SysUtils 필요. function ReadUTF8File(Path: String): String; var fStream: TFileStream; Buffer: TBytes; begin Result:=''; if not FileExists(Path) then Exit; fStream:=TFileStream.Create(Path, fmOpenRead); try SetLength(Buffer, fStream.Size); fStream.ReadBuffer(Pointer(Buffer)^, Length(Buffer)); Result:=TEncoding.UTF8.GetString(Buffer, 0,.. 2021. 9. 28.
텍스트 파일읽기 비교 텍스트 파일읽기 비교 목적 : 파일을 읽어들여 라인별로 StringList 에 저장하는 것 1. FileStream : 빠르다. 라인수도 줄일 수 있다. (사실 Readln 빼고는 거의 동일한 수준) procedure Test_FileStream; var FileStream: TFileStream; sList: TStringList; begin sList:=TStringList.Create; FileStream:=TFileStream.Create(FILE_NAME, fmShareDenyNone); try sList.LoadFromStream(FileStream); finally FreeAndNil(FileStream); FreeAndNil(sList); end; end; 2. Readln : 두배 이상 .. 2021. 9. 27.
델파이 퀀텀 그리드 헤더 색깔 변경 델파이 퀀텀 그리드 헤더 색깔 변경 1. 설정 변경 cxGrid1.LookAndFeel.NativeStyle := False; cxGrid1.LookAndFeel.SkinName := ''; 프로퍼티 False 처리 2.코딩 procedure .CustomDrawColumnHeader( Sender: TcxGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridColumnHeaderViewInfo; var ADone: Boolean); begin ... ACanvas.FillRect(AViewInfo.Bounds, clLime); ACanvas.FrameRect(AViewInfo.Bounds, clBlack, 1, cxBordersAll); ACanvas.DrawT.. 2021. 9. 24.
StringGrid 팁 StringGrid 팁 property colcount-유동셀 가로 셀의 갯수 rowcount-유동셀 세로 셀의 갯수 fixedrows-고정셀의 가로 갯수 fixedcols-고정셀의 세로 갯수 color-stringgrid의 유동셀배경색 fixedcolor-striggrid의 고정셀배경색 defaultcolwidth-셀의가로크기 defailtrowheight-셀의세로크기 gridlinewidth-grid선의 굵기 scrollbars-스크롤노출여부(ssboth:가로,세로) option-여러가지 설정을 합니다. goEdition(입력가능하게) goTabs(탭키로 셀간 이동할수있게) event DrawCell-데이터가 각 셀에 그려질때 발생하는 이벤트 selectcell-셀을 선택시 발생하는 이벤트 ex)Sh.. 2021. 9. 23.