이번에 어찌어찌하여 델파이를 처음으로 하게 되었는데... 정말 이해가 안되는 것이 있어서 오늘 가입하고 질문 올립니다.
MyForm이라는 폼을 만들고 거기에 버튼을 하나 올리고, 버튼에 클릭이벤트를 달았습니다.
제 생각엔 private 쪽에 버튼이랑 이벤트 프로시저가 생겨야 하는거 같은데 왜 published 쪽에 생기나요?
아래 소스처럼 생기네요. 한 폼에 컴포넌트를 수십개도 넘게 배치하는 일이 자주 있을텐데... 헐~~ 제가 무엇을 모르는건가요?? 아무리 찾아봐도 모르겠네요. 도움 부탁드립니다.
참고로 Delphi 2007 을 사용하고 있습니다.
unit uMyForm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyForm = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MyForm: TMyForm;
implementation
{$R *.dfm}
procedure TMyForm.btn1Click(Sender: TObject);
begin
ShowMessage('테스트');
end;
end.
답변 감사드립니다.
그런데 TForm1과 TForm2가 있고, TForm1에는 btn1 이라는 이름으로 버튼이 있다고 했을 때
TForm2에서
var
form : TForm1
begin
form. <= 이렇게 쩜(.)을 누르는 순간 btn1 도 나오자나요. 안나오게 할 수는 없을까요?
end;
----------------------------------------------------------------
예를 들어 닷넷에서는 델파이의 Object Inspector와 같은 속성창에도 나타나지만, 코딩에서는 btn1이 기본적으로 private 이어서 코딩시에 쩜을 눌러도 안 보이는데.. 델파이에서는 안되나요???
옵션에서 Code Insight기능을 끄시면 됩니다만... Published영역에 있는 것들만 안나오게 하는 기능은 없는것 같습니다.
Code Insight 기능을 끌수는 없고 ~
아.... 매우 유감이네요...~~ 어쩔수없죠..
답변 감사드립니다.
published에 저장되는 이유는 이 정보들이 폼파일(.dfm)에 저장되고 디자인시에 RTTI를 이용해서 여러가지 컴포넌트들의 속성들을 제어하기 위해서입니다.
그냥 간단하게 델파이의 Object Instpector에 표시하기 위해서 사용한다라고 생각하시면 됩니다.