Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.044 c
2-1142177914
Fl@sh
2006-03-12 18:38
2006.03.26
столбец с grid в combobox


3-1138706723
KSK
2006-01-31 14:25
2006.03.26
Импорт данных с таблицы MSSQL в DBF


15-1141655648
DVM
2006-03-06 17:34
2006.03.26
Delphi 2006 нет пункта Установить компонент. Че то я торможу.


15-1141476138
lookin
2006-03-04 15:42
2006.03.26
Скриншот из файла, проигрываемого (Alternative) Media Player


15-1141685330
mrAndersen
2006-03-07 01:48
2006.03.26
Благодарность