Editor de propriedades
Já tentei de tudo, li artigos, segui exemplos, mas já estou até começando a duvidar que esse ´troço´ funcione.
Criei um editor para a propriedade ´ListField´ que é do tipo TStringList. Nesse editor eu informo nas Edits o nome do Campo e o Apelido do mesmo e o editor retorna para a StringList no formato ´NomedoCampo/Apelido´. Mas acontece que na verdade não acontece, o editor não é mostrado quando clico nas [...], o que é mostrado é o editor padrão de TStrings.
Abaixo está o código do editor, peços por favor que avaliem no que estou errando, pois já perdi as esperanças ...
Criei um editor para a propriedade ´ListField´ que é do tipo TStringList. Nesse editor eu informo nas Edits o nome do Campo e o Apelido do mesmo e o editor retorna para a StringList no formato ´NomedoCampo/Apelido´. Mas acontece que na verdade não acontece, o editor não é mostrado quando clico nas [...], o que é mostrado é o editor padrão de TStrings.
Abaixo está o código do editor, peços por favor que avaliem no que estou errando, pois já perdi as esperanças ...
unit unListFieldEditor;
interface
uses Classes, DesignEditors, DesignIntf, Forms, Controls, FindDialog;
Type
TListFieldProperty = class(TPropertyEditor)
public
procedure Edit; override;
function GetAttributes: TPropertyAttributes; override;
end;
procedure register;
implementation
uses unPEListField;
{ TListFieldProperty }
procedure TListFieldProperty.Edit;
Var i : Integer;
begin
inherited;
with TfmPEListField.Create(Application) do
begin
ListBox1.Items.Text:= GetStrValue;
ShowModal;
if ModalResult = mrOK then
SetStrValue(ListBox1.Items.Text);
end;
end;
function TListFieldProperty.GetAttributes: TPropertyAttributes;
begin
Result := inherited GetAttributes + [paDialog];
end;
procedure register;
begin
RegisterPropertyEditor(TypeInfo(TStrings), TFindDialog, ´ListField´, TListFieldProperty);
end;
end.
Brener Leão
Curtidas 0
Respostas
Giordanocwb
06/12/2007
Repare que a sua ´procedure register´ está com a palavra ´register´ em minúsculo. Esse é um dos poucos casos dentro do Delphi, onde faz diferença maiúsculas e minúsculas.
Use ´procedure Register´, com o R maiúsculo que deve resolver o seu problema.
T+
Use ´procedure Register´, com o R maiúsculo que deve resolver o seu problema.
T+
GOSTEI 0
Brener Leão
06/12/2007
Funcionou....
muito obrigado por essa grande dica, pois eu não iria descobrir nunca.
muito obrigado por essa grande dica, pois eu não iria descobrir nunca.
GOSTEI 0
Sistemald
06/12/2007
Rapaz,
que podreira, essa do maiusculo é foda.
a linguagem não case insensitive?
que podreira, essa do maiusculo é foda.
a linguagem não case insensitive?
GOSTEI 0
Techsoft
06/12/2007
Rapaz,
que podreira, essa do maiusculo é foda.
a linguagem não case insensitive?
Sim, o Delphi é case insensitive, mas o Register é um comando do windows, e este é feito em C e este sim é case sensitive, esta é a razão de Register ser case sensitive, aliás, é a única palavra no delphi que é case sensitive.
GOSTEI 0