Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Вниз

А можно ли унаследовать форму из файла   Найти похожие ветки 

 
boa   (2003-08-06 08:23) [0]

Хотельсь бы не таскать за собой пасовский файл а использовать .DCU в которой находится радительская форма.


 
Кот Бегемот   (2003-08-06 09:05) [1]

А попробовать перед тем как спрашивать слабО ???


 
boa   (2003-08-06 09:38) [2]

В том-то и дело, что пробовал и не вышло. Дельфя ругается на то что не может найти прорадителя!!!


 
PVOzerski   (2003-08-06 10:33) [3]

Я вот сейчас немного поэкспериментировал. Вот что получилось (D3):

unit Unit1;

interface

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

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
uses
Unit2;
{$R *.DFM}

end.

unit Unit2;

interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Unit1, stdctrls;
type
tMyForm=class(tForm1)
Button1:tButton;
public
constructor Create(Owner:tComponent);override;
end;
implementation
constructor tMyForm.Create(Owner:tComponent);
begin
inherited;
Button1:=tButton.Create(Self);
Button1.parent:=Self;
end;
end.


program Project1;

uses
Forms,
Unit1 in "Unit1.pas" {Form1},
Unit2 in "Unit2.pas";

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(tMyForm, Form1);
Application.Run;
end.



 
PVOzerski   (2003-08-06 10:43) [4]

P.S. "uses unit 2" в Unit1 - тяжкое наследие моих экспериментов :^). На самом деле ни к чему.


 
boa   (2003-08-06 11:46) [5]

program Project1;

uses
Forms,
Unit1 in "Unit1.pas" {Form1},
Unit2 in "Unit2.pas";

{$R *.RES}

А как бы только с Unin1.dcu


 
PVOzerski   (2003-08-06 12:01) [6]

Ну, такое тоже работает:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
private
{ Private declarations }
public
( tForm1) Ну, такое тоже работает:
unit Unit1;

interface

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

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

implementation

{$R *.DFM}

end.

unit Unit2;

interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Unit1, stdctrls;
type
tMyForm=class(tForm1)
Button1:tButton;
public
constructor Create(Owner:tComponent);override;
end;
var
MyForm:tMyForm;
implementation
constructor tMyForm.Create(Owner:tComponent);
begin
inherited;
Button1:=tButton.Create(Self);
Button1.parent:=Self;
end;
end.

program Project1;

uses
Forms,
Unit2 in "Unit2.pas";

{$R *.RES}

begin
Application.Initialize;
Application.CreateForm(tMyForm, MyForm);
Application.Run;
end.

Правда, обратите внимание на то, что я вручную (в конструкторе) инициализирую контролы (Button1).


 
boa   (2003-08-06 15:09) [7]

>PVOzerski

А теперь попробуйте удалить "Unit1.dfm" и "Unit1.pas" и открыть проект.


 
PVOzerski   (2003-08-06 15:21) [8]

.DFM-то нужен, а вот unit1.pas - уже нет.


 
Anatoly Podgoretsky   (2003-08-06 15:31) [9]

boa © (06.08.03 15:09)
Стоп, где в товоем вопросе была речь про dfm?


 
boa   (2003-08-06 16:02) [10]

Речь-то и шла про ".dcu"
Ну, в принципе, большой нужды удалять ".dfm" нет (я уж всяко перепробовал).
Но без unit1.pas (если его удалить) у меня при открытии проекта Дельфя ругается:
"Error creating form: Ancestor for "TForm1" not found."
Может у меня чего-нибудь в установках не так (если у вас все прекрасно прокатывает)


 
PVOzerski   (2003-08-06 16:08) [11]

У меня на D3 и D6 "прокатывает".


 
Семен Сорокин   (2003-08-06 16:08) [12]

boa © (06.08.03 16:02)
убери Unit1 из Uses в DPR.


 
boa   (2003-08-06 16:30) [13]

Вот код, который я использую:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}

end.


unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Unit1;
type
TForm2 = class(TForm1)
private
{ Private declarations }
public
( TForm2, Form2) Вот код, который я использую:

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}

end.


unit Unit2;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Unit1;
type
TForm2 = class(TForm1)
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
{$R *.DFM}

end.


program Project1;
uses
Forms,
Unit2 in "Unit2.pas" {Form2};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm2, Form2);
Application.Run;
end.

--------------------
запускаться он запускается
Но Дельфя ругается и не позволяет открыть форму TForm2 в дизайнтайме


 
boa   (2003-08-06 16:31) [14]

Да забыл добавить что это происходит, когда я закрою проект, а потом снова его открою!


 
boa   (2003-08-07 06:50) [15]

Ау!
Хоть скажите - у вас с этим кодом тоже нет проблем ????



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.08.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.119 c
3-68198
ray_w
2003-07-25 19:40
2003.08.21
DBGrid?


1-68336
Dysan
2003-08-08 11:59
2003.08.21
объект в dll


1-68312
cult
2003-08-06 14:09
2003.08.21
Тестирование COM-класса


6-68428
Manfred
2003-06-14 01:51
2003.08.21
Ожидание ответа сервера.


14-68494
avoitenko
2003-08-05 13:26
2003.08.21
ищу компонент





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский