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

Вниз

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

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

Наверх




Память: 0.49 MB
Время: 0.049 c
6-1137350510
Volf_555
2006-01-15 21:41
2006.05.07
Проблема с работой почты через proxy-сервер


15-1145179994
mumakil raider
2006-04-16 13:33
2006.05.07
Почему не происходит ошибки?


15-1145005557
Ламот
2006-04-14 13:05
2006.05.07
Что делать, если мыслей 0 и хочется тупо кого-то убить?!!!


8-1134397475
Энди
2005-12-12 17:24
2006.05.07
Проблемы с компиляцией примеров OpenGL


15-1145095256
SergP.
2006-04-15 14:00
2006.05.07
Нужна помощь по скачиванию файла