Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[15767] Re:비회원도 글쓰기가 되려나요.. 델파이 왕초보입니다 질문좀 드리고싶습니다
조대현.Clau [casanebula] 1988 읽음    2016-08-29 21:13
1. 해외 사이트는
http://www.delphibasics.co.uk/
http://delphi.about.com/cs/azindex/a/blnewcomers.htm
여기가 정리 잘 되어 있습니다.

2. 컴포넌트에 이벤트가 많죠.
일단 대부분 비슷한 용도가 많습니다.
상속받은 부모에 있는 이벤트가 그대로 따라와서 그렇습니다.
OnClink, OnDrag, OnMouse류등등

그것말고 컴포넌트 전용의 이벤트가 있죠.
체크박스면 OnChecked
리스트박스면 OnItemSelecteg
그리드면 OnRowChagne등등요
이런것들은 네이밍을 보고 구글에 이벤트명으로 검색하시면 거의 나옵니다.
"tlistbox onselect" 이렇게 하면 해당 이벤트 사용 용도도 나오고 어떤게 효율적인지, 예제등이 잘 나옵니다.

저는 거의다 구글링으로 배웠는데... 진짜 구글에 다 있습니다.

3. 코딩 순서는 개인마다 다르겠지만
델파이는 RAD툴 답게 디자인->코딩 순서가 대부분 인듯 합니다.

자바의 레이아웃 리소스가 델파이의 dfm 파일에 해당하는데
자바는 소스에서 직접 리소스id로 접근하죠.
그리고 그 id에 직접 이벤트를 부여하구요.

델파이는 ui를 먼저 그리고 해당 컴포넌트의 이벤트를 더블클릭하면 자동으로 함수가 선언되므로 대부분 ui를 먼저 그립니다.
그래서 컴포관련 함수와 내부 함수를 잘 구분하면 좋겠구요.

버그가 없으려면 일단 이벤트가 언제 발생하는지 아는게 가장 중요합니다.
이걸 잘 모르면 의도하지 않은 ui버그가 많구요.
(예를 들면 OnShow 이벤트에 열심히 코딩했는데 OnShow가 호출되지 않는경우 등등)

4. 쿼리라고 하셔서 db 관련 업무이신듯 한데 역시 db관련 컴포넌트의 사용법 익숙해지는게 중요합니다.
델파이에는 아주 쉽게 컴포넌트를 사용해서 db데이터를 표시할 수 있는데...
제가 가끔 학생들을 가르쳐보면 자바에 익숙한 학생들이 되려 어려워 하더라구요.

그래서 동적 생성해서 몽땅 코딩으로 구현하면 쉽게 이해들 합니다.
예를 들면 컴포넌트 디자인 없이 동적 생성해서 직접 그리드에 뿌리기...

dbcon := tadoconnection.create('driverid=mssql;server=192.168.0.4;user=admin;database=pubs');
dbcon.connect;

dbquery := tadoquery.create(nil);
dbquery.connection := dbcon;

dbquery.sql.text := 'select * from info';
dbquery.active;

dbquery.first;
while not dbquery.eof do
begin
  gridreport.cells[0,0] := dbquery.fieldbyname('title').asstring;
  gridreport.cells[1,0] := dbquery.fieldbyname('price').asinteger.tostring;

  dbquery.next;
end;
dbquery.active := false;
dbcon.disconnect;

이걸 먼저 알려주고 컴포넌트를 설명하면 훨씬 쉬워합니다.

5. 그리고 중요하다면 매우 중요한건데 ※※※※※※※※※※※※※※※※※※

mbRight, ssDouble등 딱봐도 상수나 enum인것들 있습니다.
상수가 아니더라도 TEdit, TLabel같은 컴포넌트나
Integer, TSize, TRect등의 자료형 마찬가지구요.

소스 상단에 보시면 uses절에 자동으로
windows, forms, controls등에 선언되며 이안에 실제 구현되어 있습니다.

그걸 일일이 help를 열어서 찾기 힘드니
원하시는 글자를 Ctrl+클릭(또는 우측 마우츠 메뉴->open Decalation)하시면 풀소스가 나옵니다.
델파이는 모든 컴포넌트 및 자료형까지 소스가 같이 설치되서 볼 수 있습니다.

이거에 익숙해지면 델파이하기 쉬워집니다.

6. 그리고 ui커지고 다룰 자료가 많아지면 쓰레드와 제네릭이 슬슬 필요해집니다.
델파이 xe이상(정확한 버전은 기억 안나네요)에서 제네릭이 지원되며
해쉬테이블(TDictionary)도 있어서 자료 관리가 훨씬 쉬워집니다.(느려서 그렇지만...)

그리고 쓰레드는 필수가 되기 때문에 쓰레드를 익히시면 ui를 프리징없이 더 안정되게 다룰 수 있습니다.

안녕하세요 님이 쓰신 글 :
: 일단... 기존에는 자바나 c를 해오다가 처음으로 델파이에 대해 잡게되었습니다
:
: 주로하는업무는 ui를 꾸며서 값을 받고 그걸 뿌려주는 일을 해야되는데
:
: 거의 모르는게 이벤트나 코드작성법을 잘모르겟습니다. 어느위치에 작성을 해야되는것이나, 어떤방식으로 돌아가는지는 알겠으나
:
: 제가 스스로 코드를 짜보려해도 잘짜지지가않습니다.
:
: 종합,
:
: 1.이벤트가 상당히 많은거같던데 기능별 정리가된곳은없을런지요 영문사이트도괜찮습니다
: 2. 주로 맡게되는 일이 ui를 그리고, 이를 쿼리로부터 데이터 연동을 시킨뒤 화면에 뿌리는 일을 합니다, 코딩순서를 좀 알고싶습니다
: 2-1)구체적으로 얘기하자면, ui를 먼저 그리고난뒤 작업을 하시는지, 아니면 매소드를 선언하신뒤 ui를 그리시고 링크를 하시는지 궁금합니다...
:
: procedure  something.ouroffice (Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
: begin
:   inherited;
:   if (Button = mbRight) then begin
:     somthing_GRID := Sender;
:   end else begin
:     if (Button = mbLeft) and (ssDouble in Shift) then begin
:       btnFundMgmt.Click;
:     end;
:   end;
: end;
:
: 예를들면 이런 상황에서, ssDouble이 private나, public 등에 선언이 안된상태인데 에러없이 컴파일이 됩니다,
: (찾아보니 64비트를 나타내는거같습니다만..) 그얘기는 굳이 private나 public 아니더라도 어딘가에서 선언이 되엇으니까 에러없이 움직인다는건데. 이경우에는 저값이 어디서 값을 받아온건지 파악을 어떻게 해야된다는건지 등을 알고싶습니다..

+ -

관련 글 리스트
15766 비회원도 글쓰기가 되려나요.. 델파이 왕초보입니다 질문좀 드리고싶습니다 안녕하세요 1659 2016/08/29
15767     Re:비회원도 글쓰기가 되려나요.. 델파이 왕초보입니다 질문좀 드리고싶습니다 조대현.Clau 1988 2016/08/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.