Доброго всем времени суток! Народ, у меня такой вопрос: допустим есть программа у которой две формы. 1-я форма - это меню и панель инстументов, на второй форме ничего нет, т.е. она полностью пустая. у 1-й формы на панели инструментов есть к примеру кнопки c именами: Button и Memo. возможно ли сделать так чтобы при щелчке на кнопке с именем Button и последующем щелчке на форме в любом ее месте там появлялся бы компонент Button1, т.е. если говорить точнее возможно ли добовлять обьекты (Button, memo и тд) уже в работающей программе, что нибудь вроде: Application.CreateButton (TButton1, Button1); Пытался решить сам эту проблемму, была идея кинуть на форму TImage и в нее загружать только картинки обьектов а не создавать сами обьеты, а работать уже как бы с "реальными" обьектами, но тут опять проблемма, можно ли и главное как создать уже в работающей проге, заранее неизвестное количество обьектов TImage. Второй вопрос заключается в том что, есть к примеру на форме кнопка (TButton или любой другой обьект) как можно сделать так чтобы при щелчке на этой кнопке, кнопка бы выделялась рамкой, так как это вы видите в делфи когда кидаете на форму кнопке и хотите изменить ее размеры или ее положение, в принципе для этих же целей я и ищу ответ на этот ворос. Как изменить положение кнопки или ее размеры эт я знаю, но не удобно будет работать когда не знаешь какой обьект выделен. надеюсь Вы мне поможете, я не прошу написать мне код, подскажите в каком направлении копать, что юзать с чем работать чтобы это реализовать. Добавлено: народ, с созданием обьектов в работающей проге уже разобрался, остальные вопросы остаются открытыми, в частности Как сделать рамку вокруг обьектов при щелчке левой кнопкой мыши на нем. ЗЫ вот может кому пригодится, как создавать обьекты в рабоающей проге, например Button: Code: var TempComponent:TButton; begin TempComponent:=TButton.Create(Form1); TempComponent.Left:=10; TempComponent.Top :=10; TempComponent.Width := 120; TempComponent.Height := 24; Form1.InsertControl(TempComponent); end;
Тыкаем по Form DblClick И редактируем размеры и положение кнопки Еще раз тыкаем DblClick и используем кнопку как обычно Code: procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if tag=1 then begin with Sender as Tcomponent do if tag=555 then begin with Sender as TButton do begin SetWindowLong(handle,GWL_STYLE, GetWindowLong(handle,GWL_STYLE)or WS_BORDER or WS_SIZEBOX); ReleaseCapture; Perform(WM_SYSCOMMAND,SC_MOVE+2,0); end; end else begin for i:=0 to form1.ComponentCount-1 do if form1.Components[i].Tag=555 then with form1.Components[i] as TButton do begin SetWindowLong(handle,GWL_STYLE, GetWindowLong(handle,GWL_STYLE)and not(WS_BORDER or WS_SIZEBOX)); Visible:=false;Visible:=true; ; // так проще end; end; end; end; procedure TForm1.FormCreate(Sender: TObject); begin // установка обработчика mousevent созданного компонента Button1.Tag:=555; Button1.OnMouseDown:=FormMouseDown; end; procedure TForm1.FormDblClick(Sender: TObject); begin // включение - выключение редактирования компонента if Form1.Tag=0 then Form1.Tag:=1 else Form1.Tag:=0; end;