Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Компоненты";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Вниз

Сделать недоступным пункт меню редактора компонента   Найти похожие ветки 

 
Priest ©   (2005-09-23 16:42) [0]

Есть пользовательский компонент. У него редактор. Можно ли сделать для элемента меню Enabled:=Fals?


 
имя   (2005-09-23 18:08) [1]

Удалено модератором
Примечание: Будем вежливыми, ладно?


 
Юрий Зотов ©   (2005-09-23 18:15) [2]

Почему бы не перекрыть этот редактор своим, от него же и отнаследовавшись? Кода - минимум, а возможности получаем любые.


 
Priest ©   (2005-09-26 09:20) [3]

У компонента вообще нет редактора. Это мой собственный компонент. Хотелось чтобы пункты видны были и ясно было какая функциональность есть. Но при этом пункты в определённый момент были не активными. Таким образом будет ясно что пока эта функциональность не доступна. А после задания определённых свойств компонента, чтобы стали доступны редакторы?


 
Юрий Зотов ©   (2005-09-26 11:17) [4]

> Priest ©   (23.09.05 16:42)  
> Есть пользовательский компонент. У него редактор.

> Priest ©   (26.09.05 09:20) [3]
> У компонента вообще нет редактора.

1. И как же прикажете это понимать? Таки есть, или таки нет?
2. Если редактора нет, то непонятно, о каком меню идет речь.


 
Priest ©   (2005-09-26 11:32) [5]

я сам сделал компонент. у родительского нет редактора компонента. а у своего я сделал. у него 2 пункта. причём редактор имеет смысл вызывать только в том случае если задано определённое свойство. Если оно пустое то в редакторах вообще нет смысла...Вот я хочу пока значение этому главному свойству не присвоена, чтобы пунты меню редактора были видимы, но не активны...Возможно ли такое?


 
Reindeer Moss Eater ©   (2005-09-26 11:45) [6]

Про if then else совсем ничего не слышал?


 
Priest ©   (2005-09-26 12:12) [7]

>>Reindeer Moss Eater
Может ты поделишься кодом :)? Я спросил как сделать у редактора компонента пункт меню Enabled:=False. А если упростить задачу, то....Как получить пункт меню редактора компонента...Если нельзя такого сделать, то  я их сделаю просто не видимыми через GetVerbCount.. А если можно получить, то покажите, плиз......


 
Яся   (2005-09-26 12:16) [8]

PrepareItem(Index: Integer; const AItem: IMenuItem)

if ... then
     AItem.Enabled:=false;


 
Reindeer Moss Eater ©   (2005-09-26 12:55) [9]

Может ты поделишься кодом :)?

У тебя что, нет доступа к свойству своего собственного компонента?
Ты его не можешь прочитать?
Оно - свойство  только для записи?
Или что-то другое мешает?


 
Priest ©   (2005-09-26 13:36) [10]

>>Яся
PrepareItem(Index: Integer; const AItem: IMenuItem)
Спасибо... не доглядел :)

>>Reindeer Moss Eater
Я же в последнем посте спрашивал...
Как получить пункт меню редактора компонента? Не редактора свойства а у редактора компонента.....Редактор компонента создаёт меню с элементами....Вот это пункт мне необходимо получить....


 
Reindeer Moss Eater ©   (2005-09-26 14:19) [11]

А редактор разве не твой?


 
Priest ©   (2005-09-26 14:25) [12]

я наверное не правильно описал проблему... Вот мой редактор компонента
TMyClassEditor = class(TComponentEditor)
 private
 public
   procedure ExecuteVerb(Index: Integer); override;
   function GetVerb(Index: Integer): string; override;
   function GetVerbCount: Integer; override;
 end;
Когда я его зарегистрирую, то у компонента в Design-Time появится popup меню. Вот пункт этого меню мне нужно было получить, чтобы Enabled:=False


 
Reindeer Moss Eater ©   (2005-09-26 14:31) [13]

Раз редактор - твой, то перечитай снова пост номер девять.


 
DimaBr   (2005-09-26 15:05) [14]


TMyClassEditor = class(TComponentEditor)
private
public
  procedure ExecuteVerb(Index: Integer); override;
  function GetVerb(Index: Integer): string; override;
  function GetVerbCount: Integer; override;
  procedure PrepareItem(Index: Integer; const AItem: IMenuItem); override;
end;

*******
procedure TMyClassEditor .PrepareItem(Index: Integer; const AItem: IMenuItem);
begin
 if (Index = 0) and (что-то ещё)
    then AItem.Enabled := false;
end;


 
Юрий Зотов ©   (2005-09-26 15:46) [15]

procedure TMyClassEditor.PrepareItem(Index: Integer; const AItem: IMenuItem);
begin
  case Index of
     0: AItem.Enabled := Component.Свойство.Назначено;
     ...
     else inherited
  end
end;


 
Priest ©   (2005-09-27 09:52) [16]

Спасибо всем. Я так сделал после поста [8] :)



Страницы: 1 вся ветка

Форум: "Компоненты";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.053 c
15-1141378839
msguns
2006-03-03 12:40
2006.03.26
Видимо, всего хорошего


15-1140906187
Лорд Байрон
2006-02-26 01:23
2006.03.26
Форматирование диска


2-1142091057
dera
2006-03-11 18:30
2006.03.26
Что за ошибка?


2-1141992438
it_work
2006-03-10 15:07
2006.03.26
Как эмитировать нажатия кнопок


2-1141732958
pupapumQ
2006-03-07 15:02
2006.03.26
Программу в пуск





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский