Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
ВнизКак сменить наследника у фрейма с .dfm-файлом Найти похожие ветки
← →
Smithson (2002-11-29 11:10) [0]Вопрос следующий: Есть n фреймов, полученных командой File->New Frame. Они отлажены и отлично работают в проекте. Теперь возникла необходимость подвести их все к одному предку (наследнику от TFrame, имеющему некую общую для них всех функциональность). Просто смена наследника в модуле блокируется Delphi. Как это можно сделать?
← →
Smithson (2002-11-29 12:48) [1]Ну товарищи!
← →
Skier (2002-11-29 13:04) [2]>Smithson
> Просто смена наследника в модуле блокируется Delphi.
Вот это штука прекрасно работает !
В чём проблема-то ?
unit Unit2;
TFrame2 = class(TFrame)
private
{ Private declarations }
public
{ Public declarations }
end;
//.............................................
unit Unit3;
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Unit2;
type
TFrame3 = class(TFrame2)
private
{ Private declarations }
public
{ Public declarations }
end;
← →
Skier (2002-11-29 13:08) [3]>Smithson
>Теперь возникла необходимость подвести их все к одному предку
Тебе нужно наследоваться свой "главный" класс-предок и наследоваться уже от него, обзови его TBaseFrame и дальше
TFrame1 = class(TBaseFrame)
TFrame2 = class(TBaseFrame)
и т.д.
← →
Smithson (2002-11-29 14:34) [4]Мда. Спасибо. Вчера при попытке сменить предка и откомпилировать говорило "несовпадение типов" на строку class(TBaseFrame). Сегодня прошло на ура. Видимо, надо хоть изредка перегружать машину.
Спасибо за помощь!
← →
Smithson (2002-11-30 12:20) [5]И все-так фигня.
При компиляции проекта в .dfm модуль Delphi пихает массу всяких полей, исполнимый файл компилится, а потом при попытке использовать такой фрэйм возникает исключение "неизвестное свойство OldCreateOrder".
// Описание самого фрэйма
TFrameRegisterWare = class(TSmithFrame)
Label1: TLabel;
EmpList: TComboBox;
Label2: TLabel;
WareList: TComboBox;
Label3: TLabel;
Inventar: TEdit;
ButtonFindFreeInv: TSpeedButton;
Label4: TLabel;
Serial: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Room: TEdit;
StatusList: TComboBox;
Info: TMemo;
Label8: TLabel;
Billing: TEdit;
Label9: TLabel;
BillDate: TEdit;
procedure EmpListChange(Sender: TObject);
procedure WareListChange(Sender: TObject);
procedure ButtonFindFreeInvClick(Sender: TObject);
procedure SerialExit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
FBillID: String;
Procedure Init; override; // инициализация фрейма
Procedure Start(cBill: String); // инициализация фрейма, cBill - номер по таблице BillItem
Procedure AddData; // Регистрирует вещь в warehouse
end;
// Цитата из dfm файла
object FrameRegisterWare: TFrameRegisterWare
Left = 0
Top = 0
Width = 455
Height = 291
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = "MS Sans Serif"
Font.Style = []
OldCreateOrder = True /// Откуда это гавно???
PixelsPerInch = 96
TextHeight = 13
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c