함수명만 알 경우 어떤 컴포넌트에 이벤트가 걸려있는지 확인 하는방법


1. 폼파일(.dfm) 열기 후

2. 함수명 검색


깔끔


(출처 : https://www.delmadang.com/
 [질문]함수명만 알 경우 어떤 컴포넌트에 이벤트가 걸려있는지...)

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


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

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);



출처: http://foco85.tistory.com/162 [래채'sTory]

1. dpr(delphi project) 

프로젝트 파일 이라고 부르며 여러 개의 pas 파일과 dfm 파일의 정보를 가지고 있다.

※ 통프로그램(하나의 exe 파일)으로 개발 시 dpr 파일은 반드시 하나만 존재한다.

※ DLL 분할 프로그램으로 개발 시 DLL파일 개수만큼 dpr 파일이 생성된.

 

 

2. dpg(delphi project group) 

프로젝트 그룹 파일 이라고 부르며 여러 개의 프로젝트 파일의 정보를 가지고 있다.

여러 개의 프로젝트 파일을 관리할 때 사용하는 파일이다.

 ※ 여러 개의 DLL파일도 bpg로 관리하면 편리하다.

 

 

3. pas(pascal) 

유닛 파일 이라고 부르며 하나의 폼에서 실행되는 처리 코드를 저장하는 텍스트 파일이다.

※ 무조건 pas 파일과 dfm 파일은 1:1 매칭을 이룬다.

 

 

4. dfm(delphi form) 

폼 파일 이라고 부르며 하나의 폼에 관련된 모든 속성을 저장하는 텍스트 파일이다.

※ 델파이4.0 까지는 바이너리 파일이었으나 5.0부터 텍스트 파일로 생성된다.

※ dfm 파일을 에디터나 메모장으로 열어 수정하고 저장하면 에러가 난다. 반드시

델파이 상의 오브젝트 인스펙터창을 이용하여 수정해야 한다.

 

 

5. dsk - 델파이 환경설정 파일

dpr 파일과 파일명이 같으며 해당 프로그램의 환경설정 내용을 가지고 있는 파일이다.

삭제하더라도 프로그램 컴파일 시 자동으로 만들어지는 파일이다.

※ F12키로 잘 보이던 폼이 안 보일 때는 dsk파일을 삭제 후에 다시 컴파일 + 빌드한다.

※ 특정 DLL소스에 브레이크 포인트가 갑자기 들지 않을 때는 이 파일을 삭제 후에 다시

컴파일 후 브레이크 포인트를 적용해본다.

※ 위의 방법으로도 브레이크 포인트가 들지 않으면 bpg파일에 있는 dpr파일을 모두

삭제한 후 다시 추가하거나 그래도 안되면 델파이를 종료 후 다시 실행한다.

 

 

6. dpk(delphi package) - 델파이 패키지 파일

델파이 패키지 파일로 컴포넌트 소스인 .pas(유닛파일)를 하나로 합쳐 패키지로 만든

파일이다. 델파이에 컴포넌트를 쉽게 추가하기 위한 목적을 가진 패키지 파일이다.

 

 

7. dll(dynamic link library) - 동적 링크 라이브러리

※ 자주 사용하는 함수는 공유파일 이진파일로 만든다.

 

 

8. dcu

델파이의 소스를 컴파일해서 생기는 object파일 이진파일이다.

 

 

9. exe - 프로그램 설치 파일

 델파이의 object파일을 실행 가능한 파일로 만든 것이다.

 

 

10. RES 

컴파일 된 이진 리소스 파일

 

 

11. bpl(borland package library) - 델파이 패키지 라이브러리

볼랜드 패키지 라이브러리 파일이며 다이나믹 링크 라이브러리(DLL) 파일과 비슷하지만

bpl은 볼랜드 제품에서만 호환되며 dll은 MS 제품에서도 사용 가능하다.



출처: http://tenlie10.tistory.com/69 [게임 개발자 블로그]

+ Recent posts