델파이 초보입니다.. 질문이 어설프더라고 이해해주시길 바래요..
[질문1]
예를들어 메인폼에서 image 50개를 올려 놓고 작업 해당하는 image.left와 image.top을 동적으로 바꿀려고 합니다..
50개 전부를 일일히 다 할려고 하니까 코딩이 넘 길어져서 어떻게 하면 이쁜코딩이 될까요??
[질문2]
위 질문과 동일한데.. 이벤트도 위와 같은 방법으로 적용시킬려면 방법이 있나요??
예를 들어 버튼이 50개 있다고 했을때 모든 버튼을 클릭하면 한프로시져에서 처리할수 있겠금요...
<!--CodeS-->
procedure TMain.BitBtnALLClick(Sender: TObject);
begin
전버튼을 클릭했을때 코딩
end;
procedure TMain.BitBtn1Click(Sender: TObject);
begin
개별코딩
end;
procedure TMain.BitBtn2Click(Sender: TObject);
begin
개별코딩
end;
계속~~~
<!--CodeE-->
초보라 모르는게 넘 많네요.. 읽어주셔서 감사합니다..
여러개의 Control 에서 수행할 procedure 하나를 선언하시구...
각각의 Control 에 동일한 Event를 등록하시고...
해당 Control (여기서는 버튼)의 속성중 특정 속성...
이름으로 Check를 하시든가.. 아님 각각 Tag 속성을 달리하여 Tag 값으로 Check를 하셔서...
원하시는 작업을 진행하는 Routine을 추가하심 될 것 같네요.
아래는 Sample 입니다.
<!--CodeS-->
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure ButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.ButtonClick(Sender: TObject);
var
tmpBtn : TButton;
tmpStr : string;
begin
Try
tmpStr := '';
Try
tmpBtn := nil;
tmpBtn := Sender as TButton;
tmpStr := '클릭하신 버튼은 => ' + tmpBtn.Name + ' (이)군요!!!';
except
end;
showMessage(tmpStr);
except
on E : Exception do
begin
showMessage(E.Message);
end;
end;
end;
end.
<!--CodeE-->