블로그 이미지
자료에 문제가 있을 경우, 확인하는대로 삭제처리 하겠습니다. 즐거운 하루 되시길...
05-14 05:41
Total
Today
Yesterday

카테고리

분류 전체보기 (199)
이야기방 (20)
공부방 (173)
개발관련&IT용어.. 등등; (7)
잡다구니 (8)
OS & Server (13)
NetWork (3)
DB (30)
Delphi (47)
LUA (0)
JAVA (6)
HTML (10)
XML (1)
ASP (5)
JSP (2)
자바스크립트 (27)
CSS (8)
ETC.. (6)
개발노트&관련잡다구니 (6)

'공부방/Delphi'에 해당되는 글 47건

  1. 2010.07.14 [델파이] 프로시저와 함수 1
  2. 2010.07.14 [델파이] Case 문법
  3. 2010.07.14 [델파이] 기본 컴포넌트

프로시저는
결과를 돌려주지 않고, 함수의 결과를 돌려준다

프로시저와 함수의 정의는 크게 부분으로 나누어 진다. 한가지는 프로그램의 다른 부분에서 해당 프로시저와 함수의 선언을 정의하는 부분이고, 다른 부분은 실제 프로시저나 함수의 내용을 적는 부분( 개의 문장들로 이루어진 블록)이다

Procedure <프로시저 이름>(매개변수목록);

[선언부]

begin

   [문장들]

end;


예) 

Procedure ReverseStr(s: String);

Var

   r: String;

   i: Byte;

Begin

   // 문자열 변수 r (null) 설정한다.

   r := ' ';

   // 문자열을 마지막 문자부터 첫번째 문자까지 반복한다.

   for i := length(s) downto 1 do

      // s내의 문자를 r 끝에 연결한다.

      r := r + s[i];

   // Memo객체를 비우고 결과를 나타낸다.

   Form1.Memo1.Lines.Clear;

   Form1.Memo1.Lines.Add(r);

End;


Procedure 프로시저의 시작임을 알리는 예약어 이며, <프로시저 이름> 프로시저를 호출할 사용되는 이름이다. (매개변수목록) 프로시저를 호출한 쪽에서 프로시저에게 넘겨주는 입력값들의 목록이고, [선언부] 프로시저에서 사용할 변수나, 상수, 레이블들을 선언하는 곳이다. 만약 사용되는 변수나 상수들이 없다면 생략가능하다. 마지막 [문장들] 실제 프로시저의 행위를 정의하는 문장들이다



Function <함수 이름>(매개변수목록):<리턴타입>;

[선언부]

begin

   [문장들]

end;


예) 

Function Reverse(s: String) : String;

Var

   r: String;

   i: Byte;

Begin

   r := ' ';

   For i := length(s) downto 1 do

      r := r + s[i];

   Reverse := r;   // Result := r 같은 결과를 얻을 있다.

End;



함수와 프로시저를 호출

Procedure Tform1.Button1Click(Sender: Tobject);

Begin

   ReverseStr(Edit1.text);                     // 프로시저를 호출하는 경우

   Memo1.Lines.Add(Reverse (Edit1.Text));      // 함수를 호출하는 경우

End;


매개변수 전달방법

Call by value

방법에서는 변수를 값으로 전달하는 방식으로 컴파일러는 변수의 값을 복사하여 원래 값이 아니라 복사한 값이 전달된다. 그러니까 윈도우 탐색기에서 파일을 복사하여 다른 디렉토리에 붙여쓰기를 하는 것처럼, 변수의 내용을 복사하여 프로시저의 매개변수로 붙여쓰기하는 것과 마찬가지라고 생각하면 좋을 싶다.

그러면 프로시저내에서 매개변수를 지지고 볶든 간에, 원래 변수에 저장되어 있던 값들은 그대로이다.

Procedure add(x,y : integer);

 

Call by Reference

방법은 변수의 값을 복사하여 쓰는 것과는 달리, 방번호는 같은데 변수와 매개변수의 사용하는 이름이 다르다고 생각하자. 100 방에 있는 값을, 호출할 때는 A(변수)라고 부르고 프로시저에서는 A1(매개변수)이라고 부른다고 가정하면 같은 방에 있는 값이므로 A1 바뀌면 A 자연히 따라 바뀌게 되는 것이다.

Procedure ReadData(Var rec : string);


Call by Const

상수로 매개변수를 전달하는 것은 프로시저 내에서 값을 변경하지 못하도록 컴파일러에 알린다.

아래의 예처럼 매개변수 s const 전달하는 경우는 WriteData라는 프로시저 안에서 s 값을 바꿀 수가 없다. Read Only 변수라고 생각하면 되겠다.

 

Procedure WriteData(const s : string);



출처 : 델파이 4 中 발췌

'공부방 > Delphi' 카테고리의 다른 글

[델파이] 클래스의 가시성  (0) 2010.07.15
[델파이] 오브젝트, 인스턴스, 클래스  (0) 2010.07.14
[델파이] Case 문법  (0) 2010.07.14
[델파이] 기본 컴포넌트  (0) 2010.07.14
[델파이] 문자열 관련 함수  (0) 2010.05.18
Posted by 래채
, |

Case <variable> of

   <value> : <하나 또는 하나 이상의 문장>;

   <value> : <하나 또는 하나 이상의 문장>;

Else

   <하나 또는 하나 이상의 문장>

   //Case값의 어느 경우에도 해당되지 않는 모든 값에 대해 적용된다.

End;


<variable> Ordinal타입이다(String타입은 유효하지 않다.)

<value> 나타나는 값은 case 문에서 유일해야 한다.

<value> 중에 <variable> 같은 값을 갖는 것이 없다면 else절에 있는 statement 실행된다.


EX )

Case I of

   1..5 : Caption := 'Low';

   6..9 : Caption := 'High';

   0, 10..99 : Caption := 'Out of range';

Else

   Caption := ' ';

End;

'공부방 > Delphi' 카테고리의 다른 글

[델파이] 오브젝트, 인스턴스, 클래스  (0) 2010.07.14
[델파이] 프로시저와 함수  (1) 2010.07.14
[델파이] 기본 컴포넌트  (0) 2010.07.14
[델파이] 문자열 관련 함수  (0) 2010.05.18
[델파이] POS  (0) 2010.05.13
Posted by 래채
, |

컴포넌트 페이지

Standard

표준 윈도 컴포넌트와 메뉴들

Additional

Customized 컴포넌트

Win32

윈도95 Common 컴포넌트

System

시스템 차원의 접근에 사용되는 컴포넌트

Internet

Internet 프로그래밍을 위한 컴포넌트

Data Access

데이터베이스 tables, queries, reports로의 접근 용도의 Non-Visual 컴포넌트

Data Controls

데이터를 표시하는 Visual 컴포넌트

MIDAS

분산객체 환경을 지원하는 컴포넌트

Decision Cube

Multi-dimension 데이터 분석을 위한 컴포넌트

Qreport

보고서 양식 구성을 돕는 컴포넌트

Dialog

윈도 Common dialog boxes

Samples

기타 컴포넌트

ActiveX

OLE Controls

'공부방 > Delphi' 카테고리의 다른 글

[델파이] 프로시저와 함수  (1) 2010.07.14
[델파이] Case 문법  (0) 2010.07.14
[델파이] 문자열 관련 함수  (0) 2010.05.18
[델파이] POS  (0) 2010.05.13
[델파이] FindFirst  (0) 2010.05.11
Posted by 래채
, |