검색결과 리스트
Delphi에 해당되는 글 11건
- 2013.11.08 [Delphi]Assigned 함수
- 2012.06.05 [Delphi]콤보박스 넓이 자동 설정
- 2012.06.04 [Delphi] 델파이 단축키
- 2012.05.30 [Delphi]ExtractStrings을 이용한 문자열 구분
- 2012.05.23 [Delphi]Q 큐를 이용한 델파이 공부.
- 2012.05.22 [Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기.
- 2012.05.22 [Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기
- 2012.05.21 [Delphi]델파이 VCL 레퍼런스
- 2012.05.21 [Delphi]델파이 함수 레퍼런스
- 2012.05.21 [Delphi]TstringList 입력 중복 제거
글
Assigned(var P : Type) 함수는
P 가 참조하는 포인터 또는 프로시저가 할당되어 있는지 검사하는 함수이다.
function Assigned(var P : Type):Boolean;
P : 포인터 또는 프로시저 변수
nil 인 경우에는 False 를, 아니면 True 를 반환합니다.
다시 말하면,
체크하려는 변수가 할당되어 있으면 True, 할당되어 있지 않으면 False 를 반환합니다.
저 같은 경우는 동적으로 생성한 구조체가 할당되어 있는지 없는지 검사하기 위해 많이 씁니다.
할당되어 있으면 진행하고, 아니면 빠져나오도록 하는 경우에 많이 사용합니다.
'Delphi' 카테고리의 다른 글
[Delphi]콤보박스 넓이 자동 설정 (0) | 2012.06.05 |
---|---|
[Delphi] 델파이 단축키 (0) | 2012.06.04 |
[Delphi]ExtractStrings을 이용한 문자열 구분 (0) | 2012.05.30 |
[Delphi]Q 큐를 이용한 델파이 공부. (0) | 2012.05.23 |
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
설정
트랙백
댓글
글
디자인 길이와 실행시 내용이 다를때 자동 조정
var
i, ItemWidth: Integer;
begin
ItemWidth := 0;
// 최대 pixel수를 구한다
for i := 0 to (Sender as ComboBox).Items.Count - 1 do
if GetTextWidth((Sender as ComboBox).Items[i]) > ItemWidth then
ItemWidth := GetTextWidth((Sender as ComboBox).Items[i]) + 8;
// ComboBox 의 Drop-Down list 의 width를 변경하는 것은 단지
// pixel를 파라미터로 하여 CB_SETDROPPEDWIDTH 메시지를
// ComboBox 보내면 된다
(Sender as ComboBox).Perform(CB_SETDROPPEDWIDTH, ItemWidth, 0);
end;
'Delphi' 카테고리의 다른 글
[Delphi]Assigned 함수 (0) | 2013.11.08 |
---|---|
[Delphi] 델파이 단축키 (0) | 2012.06.04 |
[Delphi]ExtractStrings을 이용한 문자열 구분 (0) | 2012.05.30 |
[Delphi]Q 큐를 이용한 델파이 공부. (0) | 2012.05.23 |
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
설정
트랙백
댓글
글
< 델파이 단축키 모음 >
[찾기]
Ctrl + F Find
Ctrl + R Find and Replace
F3 Search Again
[화면이동]
F11 View Object Inspector
F12 Toggle Form/Unit
Alt + 0 View Window List
Ctrl + F12 View Unit
Shift + F12 View Form
Ctrl + PgUp/PgDown CodeEditor에서 현재페이지의 첫줄(PgUp), 마지막줄(PgDown)로 이동
[컴파일/실행]
Ctrl + F9 Compile
F9 Run
F7 Trace Into
F8 Trace Over
F5 Set Breakpoint
Ctrl + F5 Add Watch
Ctrl + F7 Evaluate/Modify
[블록관련]
Ctrl + Shift + U Unindent
Ctrl + Shift + I Indent
Ctrl + O, C Column Block Mode (또는 Alt키를 누른상태에서 Mouse를 드래그 해
도 컬럼블럭 설정이 가능, Shift + Alt + Arrow Key 를 사용해도 컬럼블럭 설정)
Ctrl + O, K Line Block Mode
[키 매크로]
Ctrl + Shift + R Record
* 키매크로 작성순서 : -> <원하는키> ->
Ctrl + Shift + P Play
[Object Inpector]
Ctrl + Down Object Inpector 상단의 Object List ComboBox 열기
이 상태에서 Component Name을 키보드로 치면 Incremental Search 기
능Tab Property 와 Property Value 부분을 전환가능하며,
Property 쪽에 Cursor 가 위치한 상태에서 키보드를 치면
Incremental Search
[Code Insight]
Ctrl + Space Code Completion 기능
Ctrl + J Code Template 기능
Ctrl + Shift + Up/Down Object 의 Member function/procedure 의 선언부와 구현부를 이동
Ctrl + Shift + C Object 의 Member function/procedure 의 선언부와 구현부중
의 한가지를 코딩 한후 누르게 되면 나머지 선언부 또는 구현부를 완성시켜줌
[기타]
Alt + F10 현재 위치에서 Popup-Menu 띄우기
Ctrl + Enter Code Editor 에서 현재위치의 단어로 File Open을 시도(기본 확장자
는 .pas) 하고 현재 Path 에서 그 파일을 찾지 못하면 File Open Dialog를 띄움.
Alt + { or } Find Matching Brace( ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[‘, ‘]’ )
#2에디터에서 Ctrl + E 를 하면 increment Search 가 됩니다. Ctrl+E 를 눌루고 문자열을 입력해 보세요
Ctrl+L 을 해도 다시 찾기 또는 다시 바꾸기를 할수 있습니다.
Alt+F11 은 유닛을 Uses 할때 사용하면 됩니다.
Ctrl+K+W 를 하면 선택한 블럭을 저장할수 있습니다.
Ctrl+K+R 을 하면 캐럿위치에 파일을 읽어서 붙일수 있습니다.
Ctrl+Alt+B 를 하면 현재 프로젝트에 설정된 BreakPoint 를 편집할수 있구 그 라인으로 이동할수 있습니다.
다시찾기 단축키
ctrl+f로 찾은후, F3을 누르면 다시 찾기가 됩니다.
토큰으로 찾기 단축키
커서가 토큰에 위치시키고는 ctrl + alt + 화살표 위로 또는
아래로 하면 커서위치의 토큰과 가장 가까이에 있는 토큰을 찾아갑니다.
ctrl + 마우스 왼쪽 클릭 단축키
ctrl + 화살표 위메소드 선언부바로가기
메소드선언부에서 ctrl+shift+화살표아래
메소드 구현부바로가기
메소드구현부에서 ctrl+shift+화살표위
컬럼블럭 선택 해제
선택: shift + alt + 화살표키하시면 컬럼열을 복사하실 수 있습니다.
해제: 그냥 편집창에서 마우스를 클릭하시면 해제됩니다.
또는 Ctrl+O+K를 하시면 해제됩니다.(이건 많은 분들이 모르시고 있더군요)
컴포넌트 이름은 알고 어떤 팔레트에 있는지 모를때
Alt + V + C를 하시고 컴포넌트 이름을 입력하셔서 찾으시면 됩니다.
델파이환경에서 unit을 제거했는데 dcu를 찾지 못할때..
델파이는 보통 컴파일시 변경된 파일만 체크하기 때문에 이런 문제가 나타날 수 있습니다.
그때는 Alt + P + B를 하시면 모두 빌드해서 에러를 잡으세요.
Project Group에서 여러 프로젝트를 한번에 빌드하기.
하나하나씩 컴파일 하지 마시고, Alt + P + E를 하시면 프로젝트 그룹내의 모든 프로젝트를 빌드하게 됩니다.
폼 디자이너
Ctrl + 방향키(←↑→↓) : 컴포넌트 위치 이동
Shift + Ctrl + 방향키(←↑→↓) : 컴포넌트 위치 이동(빠르게)
Shift + 방향키(←↑→↓) : 컴포넌트 크기 변경
선택 후 ESC : Parent컴포넌트로 이동
오브젝트 인스펙터
Ctrl + ↓ : 컴포넌트 선택기 팝업
(팝업 후 알파벳 문자 입력하여 해당 컴포넌트로 이동 가능)
Alt + ↓ : Property Combo 선택기 팝업
(팝업 후 알파벳 문자 입력하여 해당 컴포넌트로 이동 가능)
Ctrl + Enter : 열거형 Property값을 다음 값으로 변경
+선택 후, ←,→ : 하위 Property펼치기,접기
Ctrl + Tab : Properties,Events탭 전환
..선택 + Ctrl + Enter : Property Editor 열기
Tab : Property Name/Value토글
소스코드 에디터
Ctrl + Enter : 현재위치의 단어로 File Open 시도
현재 Path 에서 찾지 못하면 Dialog
Ctrl + S : 파일 저장
Ctrl + F4 : 파일 닫기
Ctrl + Shift + C : Method/Procedure/Property자동생성
Ctrl + Shift + ↑(↓) : 선언부,구현부 상호간 이동
Ctrl + Shift + R : 키 매크로 레코딩
Ctrl + Shift + P : 키 매크로 실행
Ctrl + ←,→ : 이전 단어, 다음 단어
Ctrl + Shift + ←,→ : 이전 단어, 다음 단어까지 블럭
Ctrl + Home : 소스코드 맨 앞으로 이동
Ctrl + End : 소스코드 맨 뒤로 이동
Shift + Home : 현재 라인 맨 앞까지 블럭
Shift + End : 현재 라인 맨 뒤까지 블럭
Ctrl + PageUp : 현재 화면의 맨 윗줄로 이동
Ctrl + PageDown : 현재 화면의 맨 아랫줄로 이동
Ctrl + Shift + I(U) : 현재 라인에 들여쓰기(내어쓰기)
Shift + Alt + 방향키(←↑→↓) : 블록 사각형 지정 -> Ctrl + Backspace : 해제
Ctrl + KL : 캐럿이 Line Home에 있을 때, Line 블럭
Ctrl + T : 현재 위치에서 마지막 단어까지 삭제
Ctrl + I : 블럭 지정된 문자를 공백으로 변환
Alt + {, } : '{'괄호 앞,뒤에서 사용. 짝 찾기.
Ctrl + N : 다음 Line 맨 앞으로 줄바꿈
Ctrl + M : 줄바꿈
Alt + BackSpace : 실행 취소
Ctrl + E : 한 글자 찾기
Ctrl + ↑(↓) : 캐럿 고정 스크롤
Ctrl + F : 찾기
Ctrl + R : 바꾸기
코드탐색기
F2 : 이름 변경하기(Uses제외)
DoubleClick : 소스코드 탐색기의 해당 코드로 이동
Ctrl + Shift + E : 탐색기<->에디터 창 이동
코드 인사이트(Code Insight)
Ctrl + Space : 코드완성 마법사
Ctrl + Shift : 메소드 파라미터 팁
Ctrl + J : 코드 템플릿 사용
기타 기능
Alt + F10 : 현재 위치에서 Popup-Menu 띄우기
F11 : View Object Inspector
F12 : Toggle Form/Unit
Alt + 0 : View Window List
Ctrl + F12 : View Unit
Shift + F12 : View Form
'Delphi' 카테고리의 다른 글
[Delphi]Assigned 함수 (0) | 2013.11.08 |
---|---|
[Delphi]콤보박스 넓이 자동 설정 (0) | 2012.06.05 |
[Delphi]ExtractStrings을 이용한 문자열 구분 (0) | 2012.05.30 |
[Delphi]Q 큐를 이용한 델파이 공부. (0) | 2012.05.23 |
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
설정
트랙백
댓글
글
출처 : 델마당 홍환민 님의 글!
저는 메신저를 만들어 볼떄 프로토콜을 만들면서 사용해 보았습니다. COPY DELETE보다 편한것같아서 참고하세요
문자열을 특정 구분자를 기준으로 나눠서 가져와야 할 일이 있을 겁니다.
예를 들어 "가을 운동회" 에서 저걸 가을, 운동회 라는 두개로 나눠서 가져오고 싶다고 합시다.
TStringList의 Delimiter와 DelimitedText 속성을 이용하는 방법도 있는데 구분자외에 특수문자인가
하는 것도 있어서 그 특수문자를 만나면 자동으로 짤려 버리는 문제가 있는 것으로 기억합니다.
try
ExtractStrings([' '], [], PChar(FullStr), ParsedList);
finally
ParsedList.Free;
end;
위와 같이 TStringList를 하나 생성하셔서 ExtractStrings 함수에 넣어주면 원본 문자열
(위의 예에서는 FullStr) 을 주어진 구분자로 나누어서 ParsedList에 넣어줍니다.
ParsedList.Count, Strings[0]..[1].. 이런 속성을 이용해서 접근하시면 됩니다.
'Delphi' 카테고리의 다른 글
[Delphi]콤보박스 넓이 자동 설정 (0) | 2012.06.05 |
---|---|
[Delphi] 델파이 단축키 (0) | 2012.06.04 |
[Delphi]Q 큐를 이용한 델파이 공부. (0) | 2012.05.23 |
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
설정
트랙백
댓글
글
Q를 실습해 봤습니다.
실습 내용은 은행의 창구와 대기표를 구현했습니다.
공부는 류종택님의 동영상 강의를 보면서 했습니다. 유용한 강의라 좋습니다.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,TicketQueue ;
.
.
.
private
{ Private declarations }
FTicketQueue : TTicketQueue;
procedure m_Display;
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btnaddClick(Sender: TObject);
begin
FTicketQueue.AddWaittingList;
m_Display;
end;
procedure TfrmMain.btnTurn1Click(Sender: TObject);
var
CurrNo : Integer;
begin
if FTicketQueue.Empty then
begin
showMessage('대기하고 있는 손님이 없습니다.');
exit;
end;
CurrNo := FTicketQueue.pop;
memoDisplay.Lines.Values['[1번 창구]'] :=Format(' %d번 손님 창구로 오세요.',[CurrNo]);
lblOne.Caption := IntToStr(CurrNo);
m_Display;
end;
procedure TfrmMain.btnTurn2Click(Sender: TObject);
var
CurrNo : Integer;
begin
if FTicketQueue.Empty then
begin
showMessage('대기하고 있는 손님이 없습니다.');
exit;
end;
CurrNo := FTicketQueue.pop;
memoDisplay.Lines.Values['[2번 창구]'] :=Format(' %d번 손님 창구로 오세요.',[CurrNo]);
lblTwo.Caption := IntToStr(CurrNo);
m_Display;
end;
procedure TfrmMain.btnTurn3Click(Sender: TObject);
var
CurrNo : Integer;
begin
if FTicketQueue.Empty then
begin
showMessage('대기하고 있는 손님이 없습니다.');
exit;
end;
CurrNo := FTicketQueue.pop;
memoDisplay.Lines.Values['[3번 창구]'] :=Format(' %d번 손님 창구로 오세요.',[CurrNo]);
lblThr.Caption := IntToStr(CurrNo);
m_Display
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
FTicketQueue.Clear;
memoDisplay.Lines.Clear;
lblOne.Caption := '00';
lblTwo.Caption := '00';
lblThr.Caption := '00';
m_Display;
end;
procedure TfrmMain.m_Display;
begin
memoDisplay.Lines.Values['전체 대기자']:=IntToStr(FTicketQueue.Count);
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
FTicketQueue := TTicketQueue.create;
end;
procedure TfrmMain.FormDestroy(Sender: TObject);
begin
FTicketQueue.free;
end;
end.
interface
uses
Classes, SysUtils;
type
TTicketQueueNode = class
private
public
Next : TTicketQueueNode;
No : Integer;
end;
TTicketQueue = class
private
FHead, FTail : TTicketQueueNode;
FCurrentNo : Integer;
FCount : Integer;
function GetEmpty : boolean;
public
procedure Clear;
procedure AddWaittingList;
function pop:integer;
published
property Empty : Boolean read GetEmpty;
property Count : Integer read FCount;
end;
implementation
procedure TTicketQueue.AddWaittingList;
var
Item : TTicketQueueNode;
begin
FCurrentNo := FCurrentNo +1;
FCount := FCount + 1;
Item := TTicketQueueNode.Create;
Item.No := FCurrentNo;
if FHead = nil then FHead := Item;
if FTail <> nil then FTail.Next:= Item;
FTail := Item;
FTail.Next := nil;
end;
procedure TTicketQueue.Clear;
begin
while Empty = False do pop;
FCurrentNo := 0;
FCount := 0;
end;
function TTicketQueue.GetEmpty:Boolean;
begin
Result := FHead = nil;
end;
function TTicketQueue.pop: integer;
var
item : TTicketQueueNode;
begin
if Empty then raise Exception.Create('TicketQueue가 비어있습니다.');
FCount := FCount -1;
item := FHead;
FHead := FHead.Next;
Result := item.No;
FreeAndNil(item);
end;
end.
'Delphi' 카테고리의 다른 글
[Delphi] 델파이 단축키 (0) | 2012.06.04 |
---|---|
[Delphi]ExtractStrings을 이용한 문자열 구분 (0) | 2012.05.30 |
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
[Delphi]델파이 VCL 레퍼런스 (0) | 2012.05.21 |
설정
트랙백
댓글
글
마우스 좌표를 구하는 두가지 방식입니다.
첫번째 윈도우 상에서의 마우스 좌표
procedure TForm1.Image1Click(Sender: TObject);
var
fpint : TPoint; //Tpoint 타입
begin
Windows.GetCursorPos(fpint); //윈도우상에서의 무우스 좌표
StartX := fpint.X // X좌표 추출
StartY := fpint.Y // Y좌표 추출
lblView.Caption := 'X : '+IntToStr(StartX)+' Y : '+IntToStr(StartY);
end ;
end;
위에서 보듯 이벤트 자체가 마우스 클릭 이벤트입니다.
두번째 이미지 캔버스 안에서 만의 마우스 좌표
procedure TfrmMain.imgMainMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
lblView.Caption := 'X : '+IntToStr(X)+' Y : '+IntToStr(Y);
end;
이번에는 마우스 다운 이벤트로 이 프로시져 자체가 x,y좌표를 인수로 갖는다. 그냥 활용만 하면 됩니다.
'Delphi' 카테고리의 다른 글
[Delphi]ExtractStrings을 이용한 문자열 구분 (0) | 2012.05.30 |
---|---|
[Delphi]Q 큐를 이용한 델파이 공부. (0) | 2012.05.23 |
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
[Delphi]델파이 VCL 레퍼런스 (0) | 2012.05.21 |
[Delphi]델파이 함수 레퍼런스 (0) | 2012.05.21 |
설정
트랙백
댓글
글
OnSelectCell 이벤트에서 변경.
procedure SelectCell(Sender: TObject; ACol, ARow: Integer; var FSelect: Boolean);
begin
if (ACol = Col) and (ARow = Row) then
begin
{컬럼에서 수정모드 막음}
TStringGrid(Sender).Options := TStringGrid(Sender).Options - [goEditing];
end
else
TStringGrid(Sender).Options := TStringGrid(Sender).Options + [goEditing];
end;
'Delphi' 카테고리의 다른 글
[Delphi]Q 큐를 이용한 델파이 공부. (0) | 2012.05.23 |
---|---|
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
[Delphi]델파이 VCL 레퍼런스 (0) | 2012.05.21 |
[Delphi]델파이 함수 레퍼런스 (0) | 2012.05.21 |
[Delphi]TstringList 입력 중복 제거 (0) | 2012.05.21 |
설정
트랙백
댓글
글
델파이에 사용되는 VCL 레퍼런스입니다.
출처는 김상형 저 델파이정복 4.0 의 부록 내용입니다.
알파벳 순으로 되어있고요 그리 많은 양은 아니니 참고용으로 사용하세요
'Delphi' 카테고리의 다른 글
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
---|---|
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
[Delphi]델파이 함수 레퍼런스 (0) | 2012.05.21 |
[Delphi]TstringList 입력 중복 제거 (0) | 2012.05.21 |
[Delphi]델파이를 처음 접하는 분에게 (0) | 2012.05.21 |
설정
트랙백
댓글
글
델파이에 사용되는 함수들의 레퍼런스입니다.
출처는 김상형 저 델파이정복 4.0 의 부록 내용입니다.
알파벳 순으로 되어있고요 그리 많은 양은 아니니 참고용으로 사용하세요
'Delphi' 카테고리의 다른 글
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
---|---|
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
[Delphi]델파이 VCL 레퍼런스 (0) | 2012.05.21 |
[Delphi]TstringList 입력 중복 제거 (0) | 2012.05.21 |
[Delphi]델파이를 처음 접하는 분에게 (0) | 2012.05.21 |
설정
트랙백
댓글
글
TstringList 중에 입력받는 값중 중복값에 대한 제거....정확하게는 무시하는 기능이 있습니다.
FStrList 는 제가 선언한 TstringList 입니다.
FStrList.Duplicates := dupIgnore; //중복 제거
FStrList.Sorted := True; //정렬을 안 할 경우 적용안됨.
위에도 기재 하였지만 정렬을 안할경우 결과값에 적용이 안됩니다.
'Delphi' 카테고리의 다른 글
[Delphi] 이미지 위에서의 마우스 좌표 구하기 & 윈도우창에서의 마우스 좌표 구하기. (0) | 2012.05.22 |
---|---|
[Delphi]TStringGrid OnSelectCell 이벤트 특정 컬럼 수정 막기 (0) | 2012.05.22 |
[Delphi]델파이 VCL 레퍼런스 (0) | 2012.05.21 |
[Delphi]델파이 함수 레퍼런스 (0) | 2012.05.21 |
[Delphi]델파이를 처음 접하는 분에게 (0) | 2012.05.21 |
RECENT COMMENT