'Delphi'에 해당되는 글 10건
- 2016.07.28 [Delphi] Delphi 2010 Character Set은 유니코드.
- 2016.04.28 [Delphi] 3항 연산자, IfThen
- 2014.09.18 [Delphi] 델파이 실행 시 EditorLineEnds.ttr 파일을 만들 수 없다는 오류 [해결]
- 2014.02.24 [Delphi2010] Oracle BLOB형 컬럼 다루기 (TBlobField)
- 2014.02.13 [Delphi] Code Formatter 비활성 (Ctrl+D)
- 2014.02.12 [Delphi] 예외처리 구분 경우 (try/except/finally)
- 2014.02.04 [Delphi] 변수, 상수, 배열, 포인터 Syntax
- 2014.01.29 [Delphi] 레코드형 배열 초기화
- 2014.01.16 [Delphi] 관련 사이트 / 단축키
- 2013.11.27 [Delphi2010] VCL 기본 클래스 계층도(VCL Hierarchy)
[Delphi] Delphi 2010 Character Set은 유니코드.
Posted on 2016. 7. 28. 11:05
Filed Under Delphi
델파이 프로젝트 옵션에서 캐릭터셋 설정하는 부분을 찾을 수 없었다.
못찾는건지 없는건지는 미지수지만..
검색해보니 델파이2010은 기본 Character Set이 UNICODE란다.
정보출처: String to Hex로 변환 | 2010.03.01
[Delphi] 3항 연산자, IfThen
Posted on 2016. 4. 28. 14:33
Filed Under Delphi
기본형태: IfThen(비교문, True리턴값, False리컨값)
총 4가지 오버로드 형태가 있음.
// 1-3) Math function IfThen(AValue: Boolean; const ATrue: Integer; const AFalse: Integer = $0): Integer; overload; function IfThen(AValue: Boolean; const ATrue: Int64; const AFalse: Int64 = $0): Int64; overload; function IfThen(AValue: Boolean; const ATrue: Double; const AFalse: Double = 0): Double; overload; // 4) StrUtils function IfThen(AValue: Boolean; const ATrue: string; AFalse: string = ''): string; overload; }
[Delphi] 델파이 실행 시 EditorLineEnds.ttr 파일을 만들 수 없다는 오류 [해결]
Posted on 2014. 9. 18. 17:47
Filed Under Delphi
참고: http://blog.hjf.pe.kr/227
언젠가부터 두 번째 띄울때 오류메시지가 뜨면서 실행이 안된다.
재부팅해야 실행가능..T_T
원인:)
2014년 8월 12일 발생 윈도우 보안업데이트(MS14-045)에 다음 내용이 포함
윈도우 기본 폰트경로 이외에 설치된 폰트파일 수정 제한
해결:)
1) 윈도우즈 업데이트 제거
2) IDE Fix Pack 설치 [다운로드]
결론:)
① 2)는 설치 실패 ▶ Faild patches
② (2014/10/07) 해결안되어서 버그 우회 실행 배치파일(bat)을 만들어서 Delphi2010 실행시 사용 ☞ 미해결
③ (2014/10/14) 찾아보니 KB2993651 이 또 다시 문제를 재발시킨다고 하는듯하여 제거 ☞ OK
wusa /uninstall /kb:2993651 // MS14-045 wusa /uninstall /kb:2982791
결론: 업데이트를 2개다 제거하니 문제없이 잘된다. 주위분들처럼 이 참에 윈도우 자동 업데이트도 DISABLE했다.
(15/06/15)
윈도우 재설치로 문제 재발,
이번에는 윈도우즈 보안패치 제거만으로 해결이 안되었다.
아래 내용의 우회 실행 배치파일을 만들어서 델파이를 실행하니 되었다.
▶ 배치파일의 경로(path)때문에 안되는 경우 파일명 앞에 %Temp%를 붙여서 전체 경로로 지정하니 해결.
@echo off tskill bds cd \ del %Temp%\EditorLineEnds_.ttr cd \ REM set datum=%date%_%time:~3,2%-%time:~6,2% set datum=%date:~2,4%-%date:~7,2%-%date:~10,2%_%time:0,2%;%time:~3,2%;%time:~6,2% ren %Temp%\EditorLineEnds.ttr EditorLineEnds%datum%.ttr start "" "c:\Program Files (x86)\Embarcadero\RAD Studio\7.0\bin\bds.exe" -pDelphi pause REM // ▲ 커맨드 설명 REM // 1(taskill): Delphi 프로세스 종료 REM // 2(del): 사용자TEMP디렉토리(%Temp%)내의 *.ttr 파일 삭제 REM // 3(set): rename할 파일명 꼬릿말 설정(시간값을 이용해 중복방지) REM // 4(start): Dephi 실행 REM // 5(pause): 일시정지(위 커맨드의 실행결과를 보기 위해 추가/삭제해도 무방)※ 위에서 델파이 경로는 자신에 맞게 변경할 것!
※ 참고: [DOS 배치] 날짜(date), 시간(time)(단, 데스크탑의 날짜/시간 포맷을 변경한 경우 맞게 수정 필요)
[Delphi2010] Oracle BLOB형 컬럼 다루기 (TBlobField)
Posted on 2014. 2. 24. 19:33
Filed Under Delphi
♣ 다운로드 from DB
var DataSet: TClientDataSet; begin ... sImagePath := 'C:\blob_img.jpg'; // 확장자는 미리 알아야 함 (DB에 저장할때 파일명/확장자를 같이 저장) TBlobField(DataSet.FieldByName('PARAM_NM')).SaveToFile(sImagePath); TBlobField(DataSet.FieldByName('PARAM_NM')).BlobSize /// 파일 사이즈 (바이트 단위)http://docwiki.embarcadero.com/Libraries/XE2/en/Data.DB.TBlobField.BlobSize
♣ 업로드 to DB
var fStream: TFileStream; SQLQuery: TSQLQuery; begin ... try fStream := TFileStream.Create(AFullPath, fmOpenRead); except on e : Exception do begin // '이미지 파일을 읽을 수 없습니다.' + #13#10 + e.Message end; end; // End of try // 방법1. 파일스트림을 업로드 SQLQuery.ParamByName('FLD_IMG').LoadFromStream(fStream, ftBlob); // 방법2. 파일을 업로드 SQLQuery.ParamByName('DRW_RST_IMG').LoadFromFile(sPath, ftBlob);
[Delphi] Code Formatter 비활성 (Ctrl+D)
Posted on 2014. 2. 13. 13:13
Filed Under Delphi
모든 코드가 자동 포맷팅 기능으로 인해 자동 줄바꿈 되버린다.
기본IDE에는 비활성하는 방법도 없다.
[방법1]
Formatter.dll 을 삭제하거나 rename -> 수행후 Ctrl+D 누르면 델파이가 뻗는다.
방지방법: http://www.yunpil.net/Delphi/2105
[방법2]
IDE도구 - DDevExtensions 설치 > 옵션에서 비활성 체크
출처: http://www.delmadang.com/community/bbs_view.asp?bbsNo=17&bbsCat=0&indx=438143&page=13
[Delphi] 예외처리 구분 경우 (try/except/finally)
Posted on 2014. 2. 12. 17:50
Filed Under Delphi
Application.MessageBox(PChar('시작'), '정보', MB_ICONINFORMATION);
// try문 외부에서 예외발생 경우
raise Exception.Create('예외경우 발생!'); // 아래 finally 구문 미실행 + Exit()
// try문 외부에서 Exit()할 경우
if 조건 then Exit(); // 아래 try..finally와 관계 없이 종료
try
...
raise Exception.Create('예외발생!'); // except + finally + next 을 모두 수행
except
on e: Exception do
begin
// 예외 발생시에만 수행 - finally + next 수행
Application.MessageBox(PChar(e.Message), PChar('에러'), MB_ICONERROR + MB_OK);
end;
end;
finally
// 예외 발생 여부 및 try구문 내의 Exit() 유무에 상관없이 무조건 수행되는 구문
FreeAndNill(obj);
end;
Application.MessageBox(PChar('next'), PChar('next'), MB_ICONERROR + MB_OK);
[Delphi] 변수, 상수, 배열, 포인터 Syntax
Posted on 2014. 2. 4. 18:14
Filed Under Delphi
// 문자형 초기화 var ch: Char; begin ch := #0; // 상수값 정의 const _FORM01_DEFAULT_CAPTION = '창 제목'; _MAX_FILESIZE = 1000000; // 배열의 인덱스용으로써 타입 정의 type TDbActionType = (datSelect, datInsert, datUpdate datDelete, datNone); const _DBACTTYPE_FIRST = 0; // datSelect _DBACTTYPE_LAST = datDelete; // 레코드 타입 정의 및 초기화 type TDbActionInfo = record rsQuery: String; rsErrorMsg: String; end; const DbActionInfoArray: array [_DBACTTYPE_FIRST.._DBACTTYPE_LAST] of TDbActionInfo = ( rsQuery: 'SELECT A FROM tbl_nm WHERE '; rsErrorMsg: 'No Message'), rsQuery: 'INSERT INTO tbl_nm VALUES('; rsErrorMsg: 'No Message'), rsQuery: 'UPDATE tbl_nm SET'; rsErrorMsg: 'No Message'), rsQuery: 'DELETE FROM tbl_nm WHERE'; rsErrorMsg: 'No Message') ); // 포인터 정의 (val^ : 값 / @val: 포인터) var val1, val2: TDbActionInfo; FPcxImageList: array[0..1] of ^TDbActionInfo; begin FPcxImageList[0] := @val1; FPcxImageList[1] := @val2; ... if FPcxImageList[0]^.rsErrorMsg <> 'No Message' then begin Application.MessageBox(FPcxImageList[0]^.rsErrorMsg, MB_OK + MB_ICONERROR); end
[Delphi] 레코드형 배열 초기화
Posted on 2014. 1. 29. 15:39
Filed Under Delphi
type
TFreq = packed record
mFreq: integer;
mDeviation: integer;
end;
TState = packed record
mTime: integer;
mDeviation: integer;
end;
TTone = packed record
mBuf : pChar;
mTid: integer;
mFreq1: TFreq;
mOff: TState;
end;
var
szTone : array [0..2] of TTone
= ((mBuf: nil; mTid: -1; mFreq1:(mFreq: 300; mDeviation: 10); mOff:(mTime: 0; mDeviation: 30)),
(mBuf: nil; mTid: -1; mFreq1:(mFreq: 300; mDeviation: 10); mOff:(mTime: 0; mDeviation: 30)),
(mBuf: nil; mTid: -1; mFreq1:(mFreq: 300; mDeviation: 10); mOff:(mTime: 0; mDeviation: 30)));
Tone : TTone
= (mBuf: nil; mTid: -1; mFreq1:(mFreq: 300; mDeviation: 10); mOff:(mTime: 0; mDeviation: 30));
[Delphi] 관련 사이트 / 단축키
Posted on 2014. 1. 16. 10:57
Filed Under Delphi
▼ 단축키
Ctrl+F12: Searh for units
Shift+Alt+F11: View > Struture
F11: View > Object Inspector
Ctrl+K, N / O: Changes a block to uppercase/lowercase
Ctrl+Shift+ U/I (선택영역 좌우 이동)
Alt+Shift (영역선택)
Ctrl+Shift+Enter (커서 메소드 참조중인 곳 찾기)
▼ 팁 메모
Memory (New→Delete): New → Dispose (heap) / Create → FreeAndNil
문자열 배열 상수 선언&초기화_C_TYPE: array [0..1] of String = ('A','B');
Form.Caption에서 다음줄 넣기▶ Enter = #$D#$A
ex:) '관로(근장)'#$D#$A'(Km)(SKB)'
유니코드(wide char) / 안시(multi byte)
▼ 튜토리얼
http://docwiki.embarcadero.com/RADStudio/XE5/en/Delphi_Reference (English)
http://www.delphibasics.co.uk/index.html (English)
MSDN Office 관련 (English)
ExcelApp, ExcelSheet, ExcelBook: Variant;
...
// 이미지 크기 조정안될때 사용
ExcelSheet.Shapes.AddPicture('이미지파일', False, True, Left, Top, Width, Height);
▼ 델파이 커뮤니티
http://delphi.borlandforum.com/
https://www.delmadang.com/
볼랜드 포럼
데브기어
▼ 블로그
함수정리: http://blog.naver.com/mykh77?Redirect=Log&logNo=30080868509
왕초보를 위한 아주 기본적인 Tips 11.25
델파이 문법관련 Delphi Operator(연산자)
Canvas
Delphi tips Graphics and Drawing
파일 경로 조작하기 [기타VCL함수 설명]
Assert호출시 OutputDebugMesssage 찍기 in델마당
[Delphi2010] VCL 기본 클래스 계층도(VCL Hierarchy)
Posted on 2013. 11. 27. 10:17
Filed Under Delphi
▼ VCL의 기본 클래스(모든 VCL 클래스가 상속받는 클래스)