procedure TForm1.Img1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
TempRect: TRect;
myEdit : TEdit;
begin
myEdit := TEdit.Create(Main);
with myEdit do
begin
Left := ImgBox.Left + X;
Top := ImgBox.Top + Y;
Width := 40;
Parent := Main;
Tag := 1;
Global_X := X;
Global_Y := Y;
Setfocus;
end;
end;
procedure TMain.FormKeyPress(Sender: TObject; var Key: Char);
var
I: Integer;
Temp: TComponent;
begin
if key = #27 then
begin
for I := ComponentCount - 1 downto 0 do
begin
Temp := Components[I];
if Temp is TEdit then
RemoveComponent(Temp);
end;
end;
end;
위와 같이 이미지를 클릭했을때 동적으로 버튼을 생성했습니다.
그리고 폼에서 ESC키를 누르면 생성한 버튼을 제거하려 합니다.
그런데 잘 되지 않습니다.
컴포넌트 제거하는 방법좀 알려주세요~~
폼의 KeyPreview속성을 True로 해놓고 다음과 같이 코딩하세요...
procedure TMain.FormKeyPress(Sender: TObject; var Key: Char);
var
I: Integer;
Temp: TComponent;
begin
if key = #27 then
begin
for I := ControlCount - 1 downto 0 do
begin
Temp := Controls[I];
if Temp is TEdit then
begin
Temp.Free;
end;
end;
end;
end;
^^ 항상 즐코하세요...
델프리 wrote:
> procedure TForm1.Img1MouseDown(Sender: TObject; Button: TMouseButton;
> Shift: TShiftState; X, Y: Integer);
> var
> TempRect: TRect;
> myEdit : TEdit;
> begin
> myEdit := TEdit.Create(Main);
> with myEdit do
> begin
> Left := ImgBox.Left + X;
> Top := ImgBox.Top + Y;
> Width := 40;
> Parent := Main;
> Tag := 1;
> Global_X := X;
> Global_Y := Y;
> Setfocus;
> end;
> end;
>
>
> procedure TMain.FormKeyPress(Sender: TObject; var Key: Char);
> var
> I: Integer;
> Temp: TComponent;
> begin
> if key = #27 then
> begin
> for I := ComponentCount - 1 downto 0 do
> begin
> Temp := Components[I];
> if Temp is TEdit then
> RemoveComponent(Temp);
> end;
> end;
> end;
>
>
> 위와 같이 이미지를 클릭했을때 동적으로 버튼을 생성했습니다.
> 그리고 폼에서 ESC키를 누르면 생성한 버튼을 제거하려 합니다.
> 그런데 잘 되지 않습니다.
> 컴포넌트 제거하는 방법좀 알려주세요~~