Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
3-11128
ACR
2002-10-16 14:44
2002.11.04
ADO -> Access


8-11342
Саня
2002-07-11 11:38
2002.11.04
Как перевести RGB в формат байт


6-11380
Beschieru
2002-08-01 14:56
2002.11.04
Трафик для каждого соединения.


1-11152
4nikandr
2002-10-24 13:53
2002.11.04
Возведение в степень


1-11206
Di_wind
2002-10-24 22:34
2002.11.04
Class Eplorer





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский