Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с MDI проектом, Непонятная ошибка 
:(
    Опции темы
lucas
Дата 8.7.2006, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 26.5.2006

Репутация: нет
Всего: нет



Здравствуйте, бьюсь уже несколько дней никак не могу понять как решить следующую задачу. Создаю MDI проект, Главная форма имеет стиль fsMDIForm, остальные дочерние со стелем fsMDIChild. В событие создания главной формы я создаю динамическую форму и устанавливаю ее в качестве хозяина для главной формы.

Код

var
  Form1: TForm1;
  FControllForm:TForm;       //Динамическая форма

procedure TForm1.FormCreate(Sender: TObject);
begin
    FControllForm:= TForm.Create(Application);                 //Создаю динамическую форму
    FControllForm.Caption:= TForm(Sender).Caption;        //Принимаю необходимые значения      
    FControllForm.Position:= TForm(Sender).Position;
    
    TForm(Sender).BorderStyle:= BsNone;
    TForm(Sender).BorderIcons:= [];
    TForm(Sender).Parent:= FControllForm;                       //Изменяю хозяина формы
    TForm(Sender).Align:= alClient;
    TForm(Sender).Position:= poDefault;
    FControllForm.Show;                                                     //Показываю форму
end;


Также перекрыл процедуру CreateParams для главной формы следующим образом
Код

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  Inherited CreateParams(Params);
  Params.Style := Params.Style or WS_CHILD;
end;


Задумка перенести главную форму на динамическую форму. Конструкция работает но не надежно, т.к при максимизировании дочерних форм, гдето через раз или два вылетает ошибка «Project Project.exe raised exception class EAccessViolation with message ‘Adress vionlation at address 77D66A40 in module ‘user32.dll’. Read of adress 0063059A. Process stopped. Use step or Run to continue.

Может я что-то делаю не так. 
Привожу полный листинг

Код


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    procedure CreateParams(var Params: TCreateParams); override;
    { Public declarations }
  end;

var
  Form1: TForm1;
  FControllForm:TForm;

implementation

{$R *.dfm}

procedure TForm1.CreateParams(var Params: TCreateParams);
begin
  Inherited CreateParams(Params);
  Params.Style := Params.Style or WS_CHILD;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    FControllForm:= TForm.Create(Application);
    FControllForm.Caption:= TForm(Sender).Caption;
    FControllForm.Position:= TForm(Sender).Position;
    TForm(Sender).BorderStyle:= BsNone;
    TForm(Sender).BorderIcons:= [];
    TForm(Sender).Parent:= FControllForm;
    TForm(Sender).Align:= alClient;
    TForm(Sender).Position:= poDefault;
    FControllForm.Show;
end;

end.


   

Это сообщение отредактировал(а) Girder - 10.7.2006, 10:17
PM MAIL   Вверх
Mechanic
Дата 10.7.2006, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.5.2006
Где: Kharkov, Ukraine

Репутация: 6
Всего: 7



Цитата(lucas @  8.7.2006,  17:54 Найти цитируемый пост)
Создаю MDI проект, Главная форма имеет стиль fsMDIForm, остальные дочерние со стелем fsMDIChild. В событие создания главной формы я создаю динамическую форму и устанавливаю ее в качестве хозяина для главной формы

А зачем так сложно-то? Чем не устраивает главная MDI форма в качестве главной?  smile   
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are..  ©Mch  
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0403 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.