Что-то не получается с owner

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
Vesyolyi
новенький
Сообщения: 26
Зарегистрирован: 10.09.2008 12:09:50
Откуда: г. Слободской
Контактная информация:

Что-то не получается с owner

Сообщение Vesyolyi »

Вообщем что имеем, нужно создать дочерную форму в unit создаваемой формы написал так:

Код: Выделить всё

unit usereditunit;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
  StdCtrls ;

type

  { TUserEditForm }

  TUserEditForm = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  UserEditForm: TUserEditForm = nil;

procedure ShowUserEditForm(Owner: TComponent) ;
implementation

procedure ShowUserEditForm(Owner: TComponent) ;
begin
  if not Assigned(UserEditForm) then
    UserEditForm:=TUserEditForm.Create(Owner);
  UserEditForm.Show;
  UserEditForm.SetFocus;
end;                                                                           

Видно что процедура

Код: Выделить всё

ShowUserEditForm(Owner: TComponent) ;
создает форму, вот только когда вызываю её из другой:

Код: Выделить всё

procedure TUsersForm.userNewExecute(Sender: TObject);
begin
  ShowUserEditForm(self);
end; 

почему-то владелец не передается, т.е. если вывести название владельца, то сообщение пустое

Код: Выделить всё

 showmessage(UserEditForm.Owner.Name ) ;  


а вот если из главной формы создавать так:

Код: Выделить всё

procedure TUsersForm.userNewExecute(Sender: TObject);
begin
  UserEditForm:=TUserEditForm.Create(self) ;
  UserEditForm.Show;
  UserEditForm.SetFocus;
end;       

то с владельцем все нормально.

Код: Выделить всё

showmessage(UserEditForm.Owner.Name ) ; 
возвращает название владельца - UsersForm

Вопрос, что я делаю не так????
Последний раз редактировалось Vesyolyi 14.08.2009 19:56:13, всего редактировалось 2 раза.
Аватара пользователя
Attid
долгожитель
Сообщения: 2588
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E
Контактная информация:

Сообщение Attid »

Vesyolyi писал(а):Вопрос, что я делаю не так????

не офрмляешь код в тег [code ]
Аватара пользователя
Vesyolyi
новенький
Сообщения: 26
Зарегистрирован: 10.09.2008 12:09:50
Откуда: г. Слободской
Контактная информация:

Сообщение Vesyolyi »

Сам себе и отвечаю, забыл её убрать из autocreate :mrgreen:
Ответить