Вниз
Скачать: CL | DM;

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

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.012 c
3-68223
ads
2003-07-25 19:17
2003.08.21
как достучаться до Items в TDBLookupComboBox??


3-68226
frost
2003-07-26 10:50
2003.08.21
Библиотеки BDE


3-68212
Magic&Wizard
2003-07-24 20:41
2003.08.21
КАК отловить, что запись в базе уже СУЩЕСТВУЕТ


1-68319
IGoRka
2003-08-08 17:58
2003.08.21
как узнать завершение роботи программи ...


3-68152
ads
2003-07-25 16:22
2003.08.21
как содержимое в TClientDataSet сохранить в физическую базу




   Наверх