Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 초보
- Firebird
- 셋업
- 입문
- Delphi
- 파라미터
- VB.NET
- MFC
- Visual Basic
- 데이터베이스
- 문자열
- 델파이
- 시리얼 통신
- Visual Studio 2005
- vb
- WIN32 SDK
- 설치
- 파이어버드
- c#
- SQL
- 예제
- 인스톨
- xml
- 기초
- SDK
- MySQL
- 소니
- winsock
- dll
- PostgreSQL
Archives
- Today
- Total
프로그래밍 노트
[델파이] 사용자 이벤트 본문
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
Type
// 이벤트 핸들러 생성 TMy1stEvent = procedure(PrvValue, CurValue: integer) of object;
// 값 변경 감시 클래스 정의 [사용자 이벤트 정의] TWatchChangeValue = class private FOnChangeVal : TMy1stEvent; public procedure ChangeValue(PrvValue, CurValue: integer); published property OnChangeValue : TMy1stEvent read FOnChangeVal write FOnChangeVal; end;
TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations }
// 값 변경 감시 클래스 선언 WatchChangeValue : TWatchChangeValue;
// 이벤트 발생시 호출하는 함수 선언 procedure ChangeValue2(PrvValue, CurValue: integer);
public { Public declarations } end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin // 이벤트를 발생시키는 트리거 함수 WatchChangeValue.ChangeValue(edit1.Tag, StrToInt(edit1.Text));
if edit1.Tag <> StrToInt(edit1.Text) then edit1.Tag := StrToInt(edit1.Text); end;
// 이벤트 발생시 호출하는 함수 procedure TForm1.ChangeValue2(PrvValue, CurValue: integer); begin // 변경전 값과 변경후 값 표시 self.Caption := IntToStr(PrvValue) + '>>>' + IntToStr(CurValue) end;
procedure TForm1.FormCreate(Sender: TObject); begin // 이벤트 등록 WatchChangeValue := TWatchChangeValue.Create(); // 값 변경 이벤트가 발생되었을 때 호출할 함수 설정 WatchChangeValue.OnChangeValue := ChangeValue2; end;
{ TWatchChangeValue }
// 이벤트 호출 procedure TWatchChangeValue.ChangeValue(PrvValue, CurValue: integer); begin if Assigned(OnChangeValue) then OnChangeValue(PrvValue, CurValue); end;
end.
아직도 정리가 잘 되지는 않지만 이렇게 하면 사용자 이벤트를 만들어 쓸 수 있다.