Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Наследник TForm


Автор: NOCaut 15.8.2010, 17:27
Привет! Создал класс унаследовав TForm. После єтого у моей формы попропадали некоторые свойства и методы. Что делать?

Автор: CodeMonkey 15.8.2010, 17:45
Ваша вера в наши телепатические способности помогает скорейшему решению вашей проблемы.

Автор: NOCaut 15.8.2010, 18:50
Пропали такие методи: onShow,onClose; И свойства: AlphaBlandValue... .

код класа:
Код

unit ActiveForm;
 
interface
 
uses
  Windows, Messages, Controls, SysUtils, Classes, Graphics, Forms, ExtCtrls,
  StdCtrls;
 
type
  TActiveForm = class(TForm)
  private
    
  public
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
  published
 
  end;
 
 
implementation
 
{ TActiveForm }
 
constructor TActiveForm.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
 
end;
 
destructor TActiveForm.Destroy;
begin
 
  inherited Destroy;
end;
end.


Код юнита:
Код

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

Автор: xkor 15.8.2010, 19:56
NOCaut, ну при таком коде они никуда пропасть не могли...

Автор: NOCaut 15.8.2010, 20:18
спасибо умник! я ето й сам вижу, а что не так сказать слабо?

Автор: CodeMonkey 15.8.2010, 20:23
Цитата(NOCaut @  15.8.2010,  21:18 Найти цитируемый пост)
а что не так сказать слабо? 


А всё так. Методы и свойства все на месте.

Автор: Frees 15.8.2010, 20:30
Цитата(NOCaut @  15.8.2010,  21:50 Найти цитируемый пост)
Пропали такие методи:

а с чего ты взял что они пропали


Автор: NOCaut 15.8.2010, 20:40
Потомушто в IDE я их невижу, Если у кого то из вас ето работает, то пришлите мне маленький пример. Бо у меня в упор непашет.

правил даже *.dfm файл и ничего.

Код

inherited Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 311
  ClientWidth = 643
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
end



Автор: БелАмор 15.8.2010, 21:17
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=832

Автор: Frees 15.8.2010, 21:24
TActiveForm уже есть такой класс, смени имя..

Автор: NOCaut 15.8.2010, 22:16
Проект компилится, но  форми невижу, ошибка: Error Creating form Acestor "TMyActiveForm" not found

Автор: Frees 15.8.2010, 22:23
а ты в dfm  имя сменил?

Автор: NOCaut 15.8.2010, 23:21
Какое имя?
Код

inherited Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 311
  ClientWidth = 643
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
end


Автор: Frees 15.8.2010, 23:26
Цитата(NOCaut @  16.8.2010,  02:21 Найти цитируемый пост)
Какое имя?

у формы TMyActiveForm в dfm класс переименовал

Автор: NOCaut 15.8.2010, 23:36
TMyActiveForm - ето класc у него нет *.dfm. Я спать до завтра. папа
Код

unit MyActiveForm;

interface

uses
  Windows, Messages, Controls, SysUtils, Classes, Graphics, Forms, ExtCtrls,
  StdCtrls;

type
  TMyActiveForm = class(TForm)
  private

  protected
    constructor Create(AOwner: TComponent); override;
    destructor  Destroy; override;
  published

  end;

implementation

{ TMyActiveForm }

constructor TMyActiveForm.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);

end;

destructor TMyActiveForm.Destroy;
begin

  inherited Destroy;
end;

end.



Автор: Frees 15.8.2010, 23:49
Цитата(NOCaut @  16.8.2010,  02:36 Найти цитируемый пост)
TMyActiveForm - ето класc у него нет *.dfm.

отсюда вся проблема

Автор: БелАмор 16.8.2010, 07:50
Цитата(Frees @  15.8.2010,  23:49 Найти цитируемый пост)
отсюда вся проблема


... а также от того, что ссылки не читает, которые дают в ответах...

Автор: NOCaut 16.8.2010, 09:50
Вот что я делаю
1) создаю пустую форму 
2) дописую руками в uses модуль MyActiveForm (назву я заменил, мне сказали что такой моудуль уже есть)
3) меняю в Unit1 TForm1 = class(TForm) на TForm1 = class(TMyActiveForm)
4) захожу в Unit1.dfm меняю object Form1: TForm1 на inherited Form1: TForm1

милезла ошибка Error Creating form Acestor "TMyActiveForm" not found . ВСЕ!!!

Добавлено через 3 минуты и 51 секунду
... а также от того, что ссылки не читает, которые дают в ответах...

Ви мне придложили создать форму сдлать что надаб добавить ее в респозиторий а потом от нее унаследоватся, НО Я ПЕРЕДЕЛУЮ СТАРИЙ ПРОЕКТ і создать ничего немогу, поетому меняю руками... 

Автор: NOCaut 16.8.2010, 10:14
Всем Спасибо!!!!! проблема била из за того что MyActiveForm ето Unit а не проект. А отсуствия {R *.dfm} так никто й незаметил)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)