Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.08.2014, 08:38   #1
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
Восклицание Компонент работа с унаследованным свойством

Доброго дня!

Создал компонент на базе TPanel, мне надо добавить возможность скрывать надпись(только надпись не всю панель), попробовал работать с этим свойством и теперь при любой попытке установить Caption появляется ошибка Stack Overflow.
Код:
uses
  SysUtils, Classes, Controls, ExtCtrls,Graphics;

type
  TKontainer = class(TPanel)
  private
     fcapt:string;
    fcontein:string;
    fhidecapt:boolean;
       MyFont:TFont;
  protected


       procedure SetCapt(capt:String);
  public

 constructor   Create(AOwner: TComponent); override;

    { Public declarations }
  published
property    HideCapt:boolean Read fhidecapt Write  fhidecapt;
Property    Contein:String Read fcontein write fcontein;
property    Caption :String Read fcapt write  fcapt;
{
    Published declarations }
  end;

procedure Register;
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 25.08.2014, 09:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А полностью код где?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.08.2014, 08:06   #3
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Я привел весь код где есть нововведения, я правда пробовал вот так ,
Код:
property    Caption :String Read fcapt write SetCapt;
но когда начались проблемы с переполнением чего-то там, то я переписал все так как не должно проблем возникать:
Код:
  property    Caption :String Read fcapt write  fcapt;
.dcu-файл компонента убил, чтобы изменения наверняка вступили в силу.

Конструктор не изменен, единственная процедура незадействована.
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 26.08.2014, 08:19   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я правда пробовал вот так ,
Пф... Ну и зачем нас дурачить? Пробовал так - спросил по другому...
Учти: Если в вызове процедуры-сетера есть обращение к ее свойству то будет тебе зацикливание. Именно поэтому внутри геттеров и сеттеров рекомендуют использование переменок, которые Делфи именует F<имя свойства>, которая по факту и есть ядро свойства, и при обращении к конкретно ей сеттер-геттер уже не вызывается.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти окно со свойством Berlioz Win Api 2 11.11.2012 18:10
Обращение к унаследованным свойствам внутри класса t2skler Общие вопросы C/C++ 8 13.01.2012 21:24
проблема со свойством clear mue HTML и CSS 2 02.08.2011 15:25
Компонент со свойством TStrings. Impuls1989 Компоненты Delphi 15 17.09.2009 17:42
Играемся со свойством Align Polotenchik Общие вопросы Delphi 3 13.08.2009 21:18