![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Скрыть свойства. [D5, WinME]
Gari © (2002-10-22 14:49:00)Уважаемые господа, проблема маленькая но непрятная. А именно: необходимо скрыть в инспекторе объектов часть свойств компонента (например height, width и.т.д), так вот в FAQ я нашел как это делается, но болты, не чего не получается вчем ошибка подскажите пожалуйста.
привожу пример кода:
TMyControl = class(TWinControl)
protected
procedure SetHeight(Value: Integer);
function GetHeight: Integer;
public
property Height: Integer read GetHeight write SetHeight;
end;
procedure TMyControl.SetHeight(Value: Integer);
begin
inherited Height := Value;
end;
function TMyControl.GetHeight;
begin
Result := inherited Height;
end;
Юрий Зотов (2002-10-22 18:04:00) [1]Понизить видимость в Delphi нельзя. Поэтому и вводятся custom-классы.
Но cкрыть (не убрать из класса, а только скрыть из Object Inspector) published-свойство можно, и даже очень просто - зарегистрировать для него пустой редактор свойства (передав nil вместо класса редактора).
Gari (2002-10-22 16:02:00) [2]Конечно можно было бы объединять и по категориям, но тогда возникают дополнительные (но решаемые) сложности при переводе компонента в элемент управления ActiveX. Ну и плюс ко всему некоторые пользователи (не буду останавливаться на всех аспектах работы) просто пугаются свойств, названия которых не понимают. Как раз для этого я еще ко всему, с помощью совета в форуме, названия пишу по русски.
MBo (2002-10-22 15:57:00) [3]>решить эту проблему
Честно говоря, не пойму, какую проблему это решит - только создаст новые.
Свойство Height не зря сделано published на раннем этапе иерархии - оно совершенно необходимо всем компонентам.
P.S.
Иногда может помочь группировка свойств в OI Arrange by Category, скрытие ненужных категорий, отнесение своих свойств к определенным категориям
Кулюкин Олег (2002-10-22 15:51:00) [4]2 Nomad.kz (22.10.02 15:50)
А где они это пишут?
Nomad.kz (2002-10-22 15:50:00) [5]Дык, вроде борланды пишут, что если перенести свойство из published в public, то усе будет на этот счет в порядке ...
Только не пинайте меня ногами, если глупость ляпнул ;-)
Gari (2002-10-22 15:49:00) [6]Если да, то огромное спасибо. такая шняга мне в компоненте была крайне неоходиом. Так как по мимо стандартных свойств, у меня еще штук 20 добавляется, и мешать их очень не хотелось. А ваш пример, УВАЖАЕМЫЙ мне позволит решить эту проблему.
Еще раз огромное спасибо.
MBo (2002-10-22 15:44:00) [7]>А это поможет, скрыть свойства.
Я не поленился проверить...
Кулюкин Олег (2002-10-22 15:41:00) [8]2 Gari
Вам же написали, наследуйтесь от более "древнего" класса.
Тогда сможете само опубликовать ту часть свойств, которая Вам нужна.
Gari (2002-10-22 15:31:00) [9]А это поможет, скрыть свойства.
MBo (2002-10-22 15:26:00) [10]извращенцам ;)
type TMyControl=class(TCustomControl)
private
FH:Integer;
public
Constructor Create(Owner:TComponent);override;
published
property Height:Integer read FH;
end;
procedure Register;
implementation
procedure Register;
begin
RegisterComponents("Samples",[TMyControl]);
end;
{ TMyControl }
constructor TMyControl.Create(Owner: TComponent);
begin
inherited;
Inherited Height:=100;
Width:=100;
end;
Gari (2002-10-22 15:10:00) [11]все понял. Раз некак, не чего страшного.
Skier (2002-10-22 15:08:00) [12]>Gari
Только прошу без суицида !!! :)
НО - НИКАК !
Gari (2002-10-22 15:07:00) [13]А каким либо образом, такую проблему можно решить. Мне бы это сильно помогло.
Игорь Шевченко (2002-10-22 15:06:00) [14]
> Извените, я думал что форум он для всех в том числе
> и для простых смертных. Прочитать книгу, это не трудно,
> дай бог научили в первом классе, я бы хотел получить ответ
> именно из уст непосредственных разработсиков.
Это не на этот форум. Это к Borland"у.
Но там, IMHO, еще дальше пошлют :-)
Skier (2002-10-22 15:03:00) [15]>Gari
Скрыть нельзя НИКАКИЕ свойства - если они,
в классе-предке, объявлены в разделе published.
Gari (2002-10-22 15:00:00) [16]Сразу в догонку второй вопрос, я так понял что скрыть можно только свойства read_onlyю так ли это.
Gari (2002-10-22 14:59:00) [17]Извените, я думал что форум он для всех в том числе и для простых смертных. Прочитать книгу, это не трудно, дай бог научили в первом классе, я бы хотел получить ответ именно из уст непосредственных разработсиков.
Skier (2002-10-22 14:58:00) [18]>Gari
св-во Height объявлено в классе
TControl как published и "уменьшить видимость"
этого св-ва НЕЛЬЗЯ !
Такие уж правила в Borland-e придумали...:)
Игорь Шевченко (2002-10-22 14:57:00) [19]Gari (22.10.02 14:55)
Учите матчасть, уважаемый. Object Pascal Languauge Guide зовется.
Gari (2002-10-22 14:55:00) [20]А если по подробнее почему нельзя. Мы же переопределяем данные свойства, т.е. в нашем компоненте они стаят на первом месте по отношению к родительскому классу. Я думал что может быть в коде что то не дописали таке бывает, в Faq.