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 | 31 |
Tags
- 시리얼 통신
- Firebird
- xml
- VB.NET
- 문자열
- Delphi
- dll
- 예제
- 파이어버드
- SDK
- PostgreSQL
- MySQL
- 소니
- MFC
- c#
- SQL
- 설치
- 입문
- winsock
- 셋업
- 인스톨
- 초보
- 기초
- Visual Studio 2005
- 데이터베이스
- 파라미터
- WIN32 SDK
- vb
- 델파이
- Visual Basic
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.
아직도 정리가 잘 되지는 않지만 이렇게 하면 사용자 이벤트를 만들어 쓸 수 있다.
Comments