Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
Внизсоздание формы в run_time Найти похожие ветки
← →
alexey_mas © (2007-01-23 13:45) [0]Добрый день подскажите по созданию формы и компонентов в run_time
на основной форме(создана в design time) сделал кнопку по нажатию которой создается форма и кнопка на ней.
Проблема с обработчиком нажатия кнопки
procedure TForm12.SpeedButton4Click(Sender: TObject);
var
Button1_reg,Button2_reg : TButton;
begin
Form_reg := TForm.Create(Application);
Form_reg.Caption:="Регистрация удаленного сервера";
Form_reg.Height:=350;
Form_reg.Width:=450;
Form_reg.Position:=poMainFormCenter;
Button1_reg:=TButton.Create(Form_reg);
Button1_reg.OnClick:=OnClickButton; - вот сдесь при компиляции ошибка Incompatible types: "Integer" and "TNotifyEvent"
Button1_reg.Parent:=Form_reg;
Form_reg.ShowModal;
Form_reg.Free;
также в секцию private основной формы добавил procedure OnClickButton(Sender: TObject);
и
добавил описание события
Procedure TForm12.OnClickButton( Sender : TObject );
Begin
ShowMessage("Нажали на кнопку");
End;
Где я ошибаюсь?
Думаю событие OnClickButton( Sender : TObject ); нужно описать для новосозданной формы Form_reg но не понимаю где и как это можно сделать.
← →
icWasya © (2007-01-23 13:54) [1]у меня компилируется без ошибок(D5)
что-то не так в другом месте
← →
clickmaker © (2007-01-23 14:03) [2]
> Где я ошибаюсь?
а в чем ты видишь ошибку?
← →
alexey_mas © (2007-01-23 14:16) [3]Сории нашел ошибку. все работает.
Но интересно ошибочка выдавалась
во сдесь просто значения забыл поставить и из-за множества коментариев в коде не замечал :)
Button1_reg.Top:=
Button1_reg.Left:=
а компилятор ругался на
Button1_reg.OnClick:=OnClickButton; - Incompatible types: "Integer" and "TNotifyEvent"
Прошу прощения.
← →
alexey_mas © (2007-01-23 15:57) [4]а как при закрытии формы вернуть управление главной форме?
т.е. я из главной формы в run_time создал дочернюю форму и запустил её в шоумодал
по кнопке кансел я пытаюсь закрыть форму, т.е. уничтожить дочернюю
Procedure TForm12.OnClickButton( Sender : TObject );
Begin
if (TControl(Sender).Name="Button2_reg") then begin
Form_reg.Free;
end;
End;
но не возвращается фокус (управление) на главную форму
т.е. только через program reset можно сбросить программу после такого закрытия
← →
TRUNK © (2007-01-23 16:06) [5]
> Button1_reg.OnClick:=OnClickButton; - Incompatible types:
> "Integer" and "TNotifyEvent"
Button1_reg.OnClick := @OnClickButton;
> по кнопке кансел я пытаюсь закрыть форму ...
> но не возвращается фокус (управление) на главную форму
А где находится кнопка Cansel ? В главном окне или в дочернем модальном ?
← →
alexey_mas © (2007-01-23 16:12) [6]> А где находится кнопка Cansel? В главном окне или в дочернем
> модальном ?
в дочернем модальном
← →
TRUNK © (2007-01-23 16:27) [7]В таком случае сделай так:
1) у этой самой кнопки Cansel свойство ModulResult := mrCancel;
2) в обработчике OnClick для неё не надо пытаться закрыть окно, если никаких других действий от кнопки не требуется - убрать обработчик совсем;
3) Если всё-таки необходимо это дочернее окно уничтожить, то надо это делать так:
ChildWindow := TChildWindow.Create(Application);
ChildWindow.Properties := SomeValues; // устанока свойств, если надо
ChildWindow.ShowModal;
ChildWindow.Free;
P.S. Часть названий вымышлены.
← →
alexey_mas © (2007-01-23 17:41) [8]продвигаюсь дальше :)
Почему при присвоении Edit-a вылетает Acess Violation?var
UpDown_reg:TUpDown;
Edit2_reg:TEdit;
begin
........................
Edit2_reg:=TEdit.Create(Form_reg);
Edit2_reg.Name:="Edit2_reg";
Edit2_reg.Text:="1";
UpDown_reg:=TUpDown.Create(Form_reg);
UpDown_reg.Associate:=Edit2_reg; - вот тута
И еще вопросик по run time. Где посмотреть какое свойство нужно писать первое чтобы последующие не перекрывали его?
← →
Плохиш © (2007-01-23 18:35) [9]
> Button1_reg:=TButton.Create(Form_reg);
>
> Button1_reg.OnClick:=OnClickButton; - вот сдесь
> при компиляции ошибка Incompatible types: "Integer" and
> "TNotifyEvent"
> alexey_mas © (23.01.07 14:16) [3]
> Сории нашел ошибку. все работает.
> Но интересно ошибочка выдавалась
> во сдесь просто значения забыл поставить и из-за множества
> коментариев в коде не замечал :)
>
> Button1_reg.Top:=
> Button1_reg.Left:=
Интересно, и почему это меня не удивляет...
> alexey_mas © (23.01.07 17:41) [8]
Ошибка, наверное, опять где-то между строк:
> Edit2_reg.Text:="1";
> вот здесь ищи
> UpDown_reg:=TUpDown.Create(Form_reg);
PS. Автор, как, по твоему мнению, нафига люди толстые и не очень книги по программированию в среде делфи, в частности, пишут? От нечего делать?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.041 c