델파이 1기 교육과정 내용 정리

2010년 데브기어에서 교육한 교육내용을 간단히 정리한 자료를 찾았다

이곳 일기에 남겨서 필요할 때 확인할 용도로 작성한다

회사에서 교육을 보내주고 교육 끝나고서도 교육내용을 회사의 상사에게 메일로 전달했었다

당시에는 순진해서 메일 내용을 안 빠뜨리려고 열심히 기록, 작성했었던 것 같다

인생에서 많은 도움이 된 것 같다

2010-01-06

object inspecter(publisehed) – 속성:델파이 설계시점 로드

-델파이 2010 인터페이스-
shift ->아이템 여러개 다중 선택, 툴팔레트 아이템 사용시 shift클릭시 폼에 연속으로 올릴 수 있음.
alt+f11 -> use unit

개체 사용흐름
1.uses stdctrls.pas
2.var 선언
3.생성자 루틴 호출(메모리할당,초기처리)
4.개체 사용(조립식 개발)
5.생성(생성자:create)된 컴포넌트를 프로그램 종료시 메모리에 소멸(소멸자:free(destory))
(컴포넌트 카운트(Componentcount)로 몇개의 컴포넌트가 올라왔는지 확인 후 종료하면서 메모리에 해제시 사용)

-변수선언-
1.interface에 사용
2.implement에 사용-(implement에 use된 컴포넌트는 interface에 변수 선언이 안됨)
3.함수 안에 사용

※생성된 사용자 컴포넌트는 반드시 해제.

※델파이 2007에 추가된 기능(책 4-6~4-12)
Class Helper- 클래스 확장 개념으로 컴파일러과 새로운 방과 로직을 추가하는 기능으로 계승(inherited)하여 설계하는 방식은 아님
class var – 클래스도 변수를 가질 수 있게 함.
sealed – 더 이상 개체를 상속받지 못하게 함.
final – 오버라이딩 제약

view -> Delphi Class Explorer (클래스 관리)

published – 외부,내부, (오브젝트인스펙터)에서도 사용

-주요 컴포넌트-
dateTimePicker(날짜)- ParseInput 속성 T/F (직접 입력)
tbutton
bitbutton – modalresult 속성
speedbutton(그림 버튼) – Glyph 속성
|
|—토글 버튼으로 사용시 : allowallup – true, down – true

buttonededit (에디트박스에 버튼 추가)

TEdit 속성 – Taporder: Tab키 순서
– tapstop:Tab 작동 안됨

-폼 생성-
modal form,show form
TForm 속성-keyPreview(화면에서 생기는 이벤트 감지),formstyle,position(화면위치)

※show form 다중으로 창이 뜨는 걸 방지하려면 Tapplication의 컴포넌트 고유 이름이 상주했는지 확인.

-연산-
1.IS연산자: True/False -> check 연산자.
2.As연산- 일종의 type cast 연산자(TButton(sender).font 또는 (H as TH).Hrs := ‘kim’;)

(Screen.Activeform as Tform).font

3.tag연산- chartype := (sender as tbutton).tag

-class-
TScreen->Forms.pas의 속성:해상도,화면의 개수(FormCount),Forms,ActiveForm,ActiveControl(포커스 상태)

프로젝트 개발 흐름도

0.업무파악

1.New Application… .dpr

2.newForm/Unit… Save project As (auto? Avaliable Form? 선택)<- option

3.화면 설계(각 컴포넌트 위치)
①object inspector
-적절한 속성,event 값 설정
-선택해서 EventHandler Assign
-적당한 method(프로시져,함수) 호출

②code editor

    unit xxx
    interface

    ①

    implementation


    initalization


    finalrazation

    end

4.debug(테스트 실행)

-Tform 이벤트-
Form(화면)초기처리 이벤트
-onCreate(주로 사용)
-onShow
-onActivate
OnCloseQuery:프로그램 종료 금지 이벤트 처리
Form(화면)종료처리
-OnDestory
-Deactivate
-close

2010-01-07

-MDI 실습-
MDI폼의 child폼 특징: 부모 창이 자식 창까지 다 로드 시킴.
close할 시 minimize
show형
MDIChildCount 속성은 생성되니 MDI Child 폼의 수를 가진다.
MDIChildren 배열은 모든 Child폼에 대한 참조되는 배열

-델파이 2010 개발환경 정리-
IDE INSIGHT(F6) – Search->IDE INSIGHT
TODO LIST – View->TODO LIST : 스케쥴 관리.
CODE FORMATTER(CTRL+D) – 코드들을 자동 포멧 해주는 기능
SyncEdit – 변수/함수 등의 공통된 이름을 동시에 수정 할 수 있게 해줌
– 사용법: 코드 블록을 선택 후 라인 옆에 SyncEdit 클릭
Line Change Indicators – 에디터 라인들이 저장되었는지 보여줌.(변경된 라인=노란색,저장된 라인=녹색)
Code Completion Wizard(CTRL+SPACE) – 자동 코딩 완성
Code parameter wizard(CTRL+J) – API 함수나 기타 프로시저와 함수 사용시 파라미터 정보 제공
History Tab- 파일이 저장될 때 마다 서브 디렉토리에 백업 파일 생성하여 이전 파일들과 비교가능.

-tool palete-

gesture manager – 2010 지원

clear
open.dialogue

메모장 구현

2010-01-08

TPANEL의 bevel 속성 – 입체효과
Image autosize – 그림에 폼의 크기를 맞춤
stretch – 폼의 크기에 그림을 맞춤

Splash Form – 시작 로고 화면 제작

-Repositury-

Repositury – 화면 설계 재사용
(Dialog,Form,report,project)

project 메뉴 -> add to repositury

Repositury 사용 3가지
Inherit 상속받아서 기능을 추가해서 만듬(원본이 변형되면 상속받은 소스들도 변형됨)
Code copy – 원본 소스가 수정되더라도 추가된 항목에 대해 아무런 영향이 없다. 독립코드
Use – 그대로 받아서 사용

-여러 사용자가 같은 프로젝트 작업시 공유방법-

Tools->Option->Everonment Option

  • add palatte –
    사용자 개인 툴 팔레트 등록

-UML-
시스템의 분석과 설계 결과를 그림으로 나타내기 위한 표준기법
Use Case Diagram,class diagram,Object Diagram…

QA METRIC-코딩 검수 tool
QZ AUDITS-코딩 검수 tool

델파이와 DB연결
local(Single:standard) -> paradox, Dbase, Foxpro, ms access

C/S : 2 – tier -> Oracle, MS SQL Server,sybase,db,interbase,firebird

db커넥션 방식: BDE(1.0), ADO(5.0), DBExports(6.0)

7.0 – Rave Report

-다음 주 –
테이블 작성
BDE 연결
c/s2-tier
예외처리
디버깅

2010-01-11

DATABASE 연동

2-tier

TDATAMOUDLE에 DB연결하고 다른 폼들의 컴포넌트를 연결하여 사용.
BDE,ADO- 레코드별 관리,양방향
DBEXPRESS-블럭별 관리,단방향

local 개발

1.DESK ToP : 테이블 작성
2.BDE admin Alias 생성
3.응용 프로그램 작성(7~8)

①Desktop : table 작성
②BDE Admin alias 생성
③응용 프로그램 작성
Sample.dpr
MainFrom(uMain)
메뉴-관리 조회 기타 부서관리 조직도 사원관리
종료
팝업

–로컬 만들기–

  • dbd 32 –
    C:\Program Files\Common Files\CodeGear Shared\Database Desktop\dbd32.exe – 로컬 테이블 만들기

File->New->Table->paradox7->문자(Alpha==Varchar)

후보키 설정 == Secondry index -> i_(네임)

Validity Checcks – 조건문

외래키 설정 == Referential Integrity

  • BDE Administer –

오라클의 경우 server name, user name, net protocol(연결 프로토콜)

idapi32.cfg – alias 저장

과제

2010-01-13

예외처리-batch 로깅 파일

SysUtils.pas 여러가지 기본함수들이 들어가 있는 곳

수동 raise – 오류 조건 표시하기 위한 예약어

2010-01-14

DB EXPRESS사용법

-파이어버드와 인터베이스끼리 충돌현상 생김.
-GDB32.DLL 오류 생기면 c:\windows\system32에 복사하면 해결.
-SQL CONNECTION COMPONENT -> 서버 단과 연결.
-라이브러리 연결->GDB32.DLL
-DBGRID는 단방향이라서 SIMPLEDATASET을 이용해야함.

스토어드 프로시져

1.코드중복제거
응용프로그램 size 다운
3.프로그램 수정없이도 네트워크 트래픽 감소

2010-01-15

트랜젝션 처리
Rave report(실습)
예외처리(exception)

DLL만들기(실습)
작성법
1.메모리 최적화
2.오토베이스가 아니라 열었으면 닫아야함.
3.static liblary는 모든 호출이 되어있다.

dll장점
응용 프로그램 재컴파일없이 dll변경하거나 함수 추가
dll은 다른 언어간의 호환을 제공
여러개의 응용프로그램에 의해 사용된 dll은 단일 복사본이 메모리에 올라가므로
응용프로그램의 크기는 작아지고 메모리 사용량도 작아짐.

2010-01-18

-스레드의 구조-
스레드란 분산 처리로서 하나의 프로세스에 여러 작업이
시간단위로 동시에 이루어져 스레드간의 자원공유 및 충돌 방지
작업을 한다.

스레드의 장점
동시에 여러가지 작업을 수행
하나의 루틴을 여러 작업에서 동시에 사용

스레드의 단점
하나의 CPU를 사용하는 경우 프로그램의 속도를 저하
같은 자원을 사용하는 스레드 간의 충돌을 피하기 위한 코드가 추가 되어야 하므로 프로그램의 부담이 커짐

–3tier–
-OLE-

OLE 오브젝트 – 오토메이션 기능(클라이언트에서 요청하면 서버가 자동으로 연결)
– 이벤트,속성,메소드를 계약서(인터페이스)를 통해 포인터를 찾아 서로 다른 프로그래밍 툴에서도 사용 가능.
일반 : MS OS
server : contanor
client : controller

COM을 쓸 때는 타임라이브러리를 참조한다.

view->typeliblary

2010-01-19

-DCOM 3tier 연결법-
-소켓커넥션을 사용할 경우는 소켓서버 쪽에 소켓 커넥션이 있어야한다.
-DCOM커넥션을 사용할 경우는 서버측에 DCOM configration 옵션에서 상호대화가 가능하도록
맞추어야한다.

-dept.CancelUpdates; 업데이트 취소.
-dept.RevertRecord; 해당 레코드 복구

-fetchParams : 서버에 있는 쿼리 데이터를 받아옴. 서버가 열려있어야 함. (중요)

-2009버전 3tier DB연결-
이전버전과의 가장 큰 차이점은 COM에 의존하지 않음.(COM과의 호환성을 위해 현재버전에서도 제공됨)
DBExpress로만 연결됨.
datansap을 이용하여 2tier->3tier conversion 용이
type liblary등록이 필요치 않음.
레지스터 등록이 필요치 않음.
web과 연동이 가능
RTTi(Run time type liblary)를 사용.
자동화된 에러중재(서버에서 발생한 에러를 클라이언트에서 확인 가능)
네트웍 트래픽 감소(클라이언트들이 특정 시간대 몰릴 때 해결)
스토어드 프로시져처럼 로직이나 메소드를 클라이언트에서 바로 호출 할수 있는 것을 sqlservermethod컴포넌트라고 함.
2010은 Datasnap server wizard를 제공함.

Datasnap관련 컴포넌트
TDSSERVER 컴포넌트는 서버 애플리케이션으로 인식시켜줌.
TDSProvider 컴포넌트는 프로바이더 컴포넌트와 direct로 연결시켜주는 클라이언트 컴포넌트.
데이터를 업데이트 하기 위해서 서버에서 프로바이더 컴포넌트를 이용하고 클라이언트에서는 DSProviderConnection 컴포넌트를 이용해 프로바이더 컴포넌트를 불러온다.

2010-01-20

-dbexpress datasnap 3tier로 바꾸는 방법-

-sqlconnection의 dbxint.dll은 배포시 필요한 파일

-클라이언트 데이터 셋 (INSA)의 IndexDefs의 필드명은 반드시 기입해야 함.

index out of bound – fetch params를 안했거나 파라메터 잘못 준 경우

-폴더 정리-

메소드,기본적인 문법 -> test
메모장,그림판 -> Pmemo,PPaint
BDE -> sample(local)
DBEXpress ->sample.dbx(cs환경)
DLL(Static,dynamic) -> ole2
Thread -> 스레드
3tier COM BASE(구버전) -> DB com connection (09.01.18)
3tier DBexpress(datasnap,웹과의 연동) -> DATASNAP_EXPRESS(09.01.20),datasnapDB

-업무 개발-
업무 설명
업무 흐름도(설계도)- erwin
interbase,dbexpress쓰고 3tier로 갈건지….
db설계는 ERWIN 7.0 쓰고 논리설계,물리설계,
비디오관리,시디관리,수강신청,재고관리,가계부,메모장,명함관리

dbexpress (2tier,3tier)

2010-01-21

–컴포넌트 만들기–
컴포넌트:툴팔레트에 등록된 자주 쓰는 오브젝트의 하나로써 개체지향적.

1.Unit 생성
2.상위 개체 결정- ①Component
②Tpanel
③Tcustompanel

3.생성자 루틴 작성:Constructor Create(Aowner:Tcomponent)override;

4.속성,이벤트,메소드 추가

-tpanel과 tcustompanel 의 차이-
panel은 기존의 컴포넌트를 모두 상속받아 사용하고,
custompanel은 상속받은 컴포넌트를 일부만 받아서 쓴다.

TA(CREATE VIRTUAL) -> TA'(CREATE OVERIDE) -> TA”)CREATE OVERRIDE,Inherit(상속)

컴포넌트 패키지를 만들어 실행시 USE절에서 실행시 오류 났을 경우 – tools->Options->delphi->liblary path->add directory

-만든 컴포넌트를 OCX로 만들기-
(비주얼 C,자바 등에서 등록)
FILE->NEW->OTHER->ACTIVEx liblary->ACTIVEX control->컴포넌트 등록->RUN->REGISTER ACTIVEX SERVER

-만든 OCX 등록법-
Component->Import component->import activex control->package 등록

-등록된 OCX,컴포넌트 제거-
Component->Install Package 제거

–델파이 통신 프로그래밍–
웹 컴포넌트를 이용하여 웹 프로그램 제작

2010-01-22

delphi + web + database (서버 애플리케이션 + 클라이언트 웹 + 인터페이스)

1.Web broker(3.0) – CGI 방식
2.Web snap(6.0) – CGi 방식
3.intra web – 직관적으로 화면을 만들기 때문식 선호.

data snap web broker
rest 함수 연결 -> url로 데이터 함수를 불러올수 있음.
http://localhost/sample/Project1.exe/datasnap/rest/tservermethods2/echostring/abcd

callback + json (최신기술)
클라이언트가 요청한 작업을 일괄처리하지 않고, 서버가 부분처리하면서
클라이언트에게 넘겨주고 지속적으로 사용자에게 보여주는 역활, 즉 지속적으로 정보를 주고 받는 작업.

2010-01-29

총정리

dpr,pas,dsk 파일 형식.
call by value, reference 방식의 변수.
generic function,enum 방식의 함수.
tobject = 상위 객체
protected,public,published,private
interface-개체,타입,구조체 종류별로 정의
initiallization -초기처리
override-재정의
self- 헤더를 가리킴
uml – 모델링
class – 개체 없이 사용할수 있음
array – 배열 구조
string- 2009에서는 유니코드
핸들러 공유
sender,echo,개체생성,버튼만들기
object.create -> free
option-form속성 확인
메모리 해제-action:=cafree
stored procedure –

이 게시물에 대해 평가 해주세요!

결과 0 참여자 0

Your page rank:

리플 남기기