Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1169233041
*Ray*
2007-01-19 21:57
2007.02.11
Редактирование текста ComboBox


15-1169103057
SerJaNT
2007-01-18 09:50
2007.02.11
И опять Виста...


2-1169540039
cvg
2007-01-23 11:13
2007.02.11
откуда взять описание типа TidIcmpClient?


1-1166458332
Чапаев
2006-12-18 19:12
2007.02.11
Flush после Write


11-1147784447
chum
2006-05-16 17:00
2007.02.11
работа с кнопками в заголовках mdvXLGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский