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

Вниз

Редакторы компонент   Найти похожие ветки 

 
DimaBr   (2005-10-25 12:07) [0]

Здравствуйте !
Пишу TComboBox + TStoredProc, где TStoredProc - субкомпонент. Нужно вывести на поверхность Field Editors. Как это сделать ?


 
Юрий Зотов ©   (2005-10-26 05:01) [1]

Ни в TComboBox, ни в TStoredProc никаких полей обнаружить не удалось. Поэтому при чем тут редактор полей - пока что непонятно. Видимо, есть смысл уточнить вопрос.


 
DimaBr   (2005-10-26 10:46) [2]

Fields Editor - редактор компонента TStoredProc (очепяточка вышла). Помогите вынести его на поверхность ComboBox.


 
Priest ©   (2005-10-26 16:29) [3]

Поищи здесь по форуму....Я задавал вопрос как вызвать редактор коллекции....Вот часть ветки

Юрий Зотов ©   (05.07.05 18:26) [2]
> Priest   (05.07.05 18:03) [1]

А вот так можно вызвать редактор ЛЮБОГО свойства, не только коллекции (в данном примере это объектное свойство MyItems класса TMyComp).

type
TMyCompEditor = class(TComponentEditor)
private
  FPropInfo: PPropInfo;
  FPropEdit: IProperty;
  procedure GetPropProc(const PropEdit: IProperty);
public
  constructor Create(AComponent: TComponent; ADesigner: IDesigner); override;
  procedure ExecuteVerb(Index: Integer); override;
  function GetVerb(Index: Integer): string; override;
  function GetVerbCount: Integer; override;
end;

{ TMyCompEditor }

constructor TMyCompEditor.Create(AComponent: TComponent; ADesigner: IDesigner);
begin
inherited;
FPropInfo := GetPropInfo(GetComponent.ClassInfo, "MyItems", [tkClass])
end;

procedure TMyCompEditor.ExecuteVerb(Index: Integer);
var
Selections: TDesignerSelections;
begin
if Index = GetVerbCount - 1 then
begin
  if (FPropEdit = nil) and (FPropInfo <> nil) then
  begin
    Selections := TDesignerSelections.Create;
    try
      Designer.GetSelections(Selections);
      GetComponentProperties(Selections, [tkClass], Designer, GetPropProc)
    finally
      Selections.Free
    end
  end;
  if FPropEdit <> nil then
    FPropEdit.Edit
end
else
  inherited
end;

procedure TMyCompEditor.GetPropProc(const PropEdit: IProperty);
begin
if PropEdit.GetPropInfo = FPropInfo then
  FPropEdit := PropEdit
end;

function TMyCompEditor.GetVerb(Index: Integer): string;
begin
if Index = GetVerbCount - 1 then
  Result := "MyItems Editor..."
else
  Result := inherited GetVerb(Index)
end;

function TMyCompEditor.GetVerbCount: Integer;
begin
Result := inherited GetVerbCount + 1
end;


 
Юрий Зотов ©   (2005-10-27 03:39) [4]

> Priest ©   (26.10.05 16:29) [3]

Тут другая задача. Там нужно было приспособить редактор свойства в качестве пункта меню редактора компонента, а здесь нужно приспособить редактор одного компонента к другому компоненту.

> DimaBr   (26.10.05 10:46) [2]

Редактор компонента TStoredProc - все же не Fields Editor, а TStoredProcEditor (см. BDEReg.pas). Fields Editor - это лишь один из пунктов его меню.

Значит, пишем свой редактор компонента по аналогии с TStoredProcEditor, и регистрируем его для нашего компонента. Естественно, работать он должен с субкомпонентом.


 
DimaBr   (2005-10-27 08:52) [5]

To Юрий Зотов.
Я так и пытался делать, но подключение модуля  BDEReg.pas произвести не удаётся, поскольку ругается на отсутствие Report.dcu. Модет он уже скомпилирован в каком-нибудь пакете ?


 
Priest ©   (2005-10-27 11:26) [6]

>>DimaBr

А ты редактор компонента билдишь с пакетами?


 
DimaBr   (2005-10-27 15:47) [7]

Priest ©   (27.10.05 11:26) [6]

Нет, конечно.


 
Priest ©   (2005-10-27 17:49) [8]

Поэтому и не находит. Надо с поддержкой пакетов. А чтобы твой компонент не требовал пакетов, редактор компонента нужно в отдельном пакете клепать....


 
DimaBr   (2005-10-31 14:43) [9]


> Надо с поддержкой пакетов.
А в каком пакете его можно найти ?



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
15-1145026676
haikaterine
2006-04-14 18:57
2006.05.07
DBNavigator


1-1143653083
Kolan
2006-03-29 21:24
2006.05.07
Проектирование взаимодействия плагина с программой


15-1144767485
Seldon
2006-04-11 18:58
2006.05.07
рендер HTML


3-1142091496
Sollo
2006-03-11 18:38
2006.05.07
dbExpress сумма вычисляемых полей


2-1145357618
AnP
2006-04-18 14:53
2006.05.07
ShellExecute





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