Форум: "Основная";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
ВнизСкрыть свойства. Найти похожие ветки
← →
Gari (2002-10-22 14:49) [0]Уважаемые господа, проблема маленькая но непрятная. А именно: необходимо скрыть в инспекторе объектов часть свойств компонента (например 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;
← →
Skier (2002-10-22 14:51) [1]>Gari
Это нельзя сделать !
Можно только сделать св-во Read-only.
Но лучше всего наследоваться от
классов с префиксом TCustom...и тогда
всё будет...
← →
Gari (2002-10-22 14:55) [2]А если по подробнее почему нельзя. Мы же переопределяем данные свойства, т.е. в нашем компоненте они стаят на первом месте по отношению к родительскому классу. Я думал что может быть в коде что то не дописали таке бывает, в Faq.
← →
Игорь Шевченко (2002-10-22 14:57) [3]Gari (22.10.02 14:55)
Учите матчасть, уважаемый. Object Pascal Languauge Guide зовется.
← →
Skier (2002-10-22 14:58) [4]>Gari
св-во Height объявлено в классе
TControl как published и "уменьшить видимость"
этого св-ва НЕЛЬЗЯ !
Такие уж правила в Borland-e придумали...:)
← →
Gari (2002-10-22 14:59) [5]Извените, я думал что форум он для всех в том числе и для простых смертных. Прочитать книгу, это не трудно, дай бог научили в первом классе, я бы хотел получить ответ именно из уст непосредственных разработсиков.
← →
Gari (2002-10-22 15:00) [6]Сразу в догонку второй вопрос, я так понял что скрыть можно только свойства read_onlyю так ли это.
← →
Skier (2002-10-22 15:03) [7]>Gari
Скрыть нельзя НИКАКИЕ свойства - если они,
в классе-предке, объявлены в разделе published.
← →
Игорь Шевченко (2002-10-22 15:06) [8]
> Извените, я думал что форум он для всех в том числе
> и для простых смертных. Прочитать книгу, это не трудно,
> дай бог научили в первом классе, я бы хотел получить ответ
> именно из уст непосредственных разработсиков.
Это не на этот форум. Это к Borland"у.
Но там, IMHO, еще дальше пошлют :-)
← →
Gari (2002-10-22 15:07) [9]А каким либо образом, такую проблему можно решить. Мне бы это сильно помогло.
← →
Skier (2002-10-22 15:08) [10]>Gari
Только прошу без суицида !!! :)
НО - НИКАК !
← →
Gari (2002-10-22 15:10) [11]все понял. Раз некак, не чего страшного.
← →
MBo (2002-10-22 15:26) [12]извращенцам ;)
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:31) [13]А это поможет, скрыть свойства.
← →
Кулюкин Олег (2002-10-22 15:41) [14]2 Gari
Вам же написали, наследуйтесь от более "древнего" класса.
Тогда сможете само опубликовать ту часть свойств, которая Вам нужна.
← →
MBo (2002-10-22 15:44) [15]>А это поможет, скрыть свойства.
Я не поленился проверить...
← →
Gari (2002-10-22 15:49) [16]Если да, то огромное спасибо. такая шняга мне в компоненте была крайне неоходиом. Так как по мимо стандартных свойств, у меня еще штук 20 добавляется, и мешать их очень не хотелось. А ваш пример, УВАЖАЕМЫЙ мне позволит решить эту проблему.
Еще раз огромное спасибо.
← →
Nomad.kz (2002-10-22 15:50) [17]Дык, вроде борланды пишут, что если перенести свойство из published в public, то усе будет на этот счет в порядке ...
Только не пинайте меня ногами, если глупость ляпнул ;-)
← →
Кулюкин Олег (2002-10-22 15:51) [18]2 Nomad.kz (22.10.02 15:50)
А где они это пишут?
← →
MBo (2002-10-22 15:57) [19]>решить эту проблему
Честно говоря, не пойму, какую проблему это решит - только создаст новые.
Свойство Height не зря сделано published на раннем этапе иерархии - оно совершенно необходимо всем компонентам.
P.S.
Иногда может помочь группировка свойств в OI Arrange by Category, скрытие ненужных категорий, отнесение своих свойств к определенным категориям
← →
Gari (2002-10-22 16:02) [20]Конечно можно было бы объединять и по категориям, но тогда возникают дополнительные (но решаемые) сложности при переводе компонента в элемент управления ActiveX. Ну и плюс ко всему некоторые пользователи (не буду останавливаться на всех аспектах работы) просто пугаются свойств, названия которых не понимают. Как раз для этого я еще ко всему, с помощью совета в форуме, названия пишу по русски.
← →
Юрий Зотов (2002-10-22 18:04) [21]Понизить видимость в Delphi нельзя. Поэтому и вводятся custom-классы.
Но cкрыть (не убрать из класса, а только скрыть из Object Inspector) published-свойство можно, и даже очень просто - зарегистрировать для него пустой редактор свойства (передав nil вместо класса редактора).
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.009 c