Utilizo um componente desenvolvido por um amigo e gostaria de fazer uma pequena alteração.
Este é o cabeçalho do código: Minha dúvida segue após o código: ************************************************************************************************* type TParameter = class; TCollectionParameters = class; TELG_ValidateSQL = class; { TParameter } TParameter = class(TCollectionItem) private FParameterName: String; FValue: String; FVisualControl: TWinControl; function GetVisualControl: TWinControl; procedure SetVisualControl(const VisualControl: TWinControl); protected function GetDisplayName: String; override; published property ParameterName: String Read FParameterName Write FParameterName; property Value: String Read FValue Write FValue; property VisualControl: TWinControl Read GetVisualControl Write SetVisualControl; end; { TCollectionParameters } TCollectionParameters = class(TCollection) private FParameters: TELG_ValidateSQL; function GetItem(Index: Integer): TParameter; procedure SetItem(Index: Integer; Value: TParameter); public constructor Create(AOwner: TELG_ValidateSQL); function Add: TParameter; property Items[Index: Integer]: TParameter Read GetItem Write SetItem; end; { TELG_ValidateSQL } TELG_ValidateSQL = class(TComponent) private FHackOnValidateEdit: TEditEnhValidateEditEvent; FHackOnExit: TNotifyEvent; FParamsInput: TCollectionParameters; FParamsOutput: TCollectionParameters; FSQLText: TStringList; FMessageNotFound: String; FIB_Connection: TIB_Connection; FIB_Transaction: TIB_Transaction; QueryTemp: TIB_Query; FOnValidate: TNotifyEvent; FAfterValidate: TNotifyEvent; FBeforeValidate: TNotifyEvent; FVisualControlTrigger: TWinControl; function GetSQLText: TStringList; function GetIB_Connection: TIB_Connection; function GetIB_Transaction: TIB_Transaction; function GetVisualControlTrigger: TWinControl; procedure SetIB_Connection(const Value: TIB_Connection); procedure SetIB_Transaction(const Value: TIB_Transaction); procedure SetSQLText(const Value: TStringList); procedure SetParamsInput(Value: TCollectionParameters); procedure SetParamsOutput(Value: TCollectionParameters); procedure SetVisualControlTrigger(const VisualControlTrigger: TWinControl); procedure HackOnValidateEdit(Sender: TObject; var ErrCode: Integer); procedure HackOnExit(Sender: TObject); { Private declarations } protected { Protected declarations } public Valid: boolean; Enabled: boolean; function Execute: boolean; procedure GenInParams; procedure GenOutParams; constructor Create(AOwner: TComponent); override; destructor Destroy; override; { Public declarations } published property SQLText: TStringList read GetSQLText write SetSQLText; property MessageNotFound: String read FMessageNotFound write FMessageNotFound; property IB_Connection: TIB_Connection read GetIB_Connection write SetIB_Connection; property IB_Transaction: TIB_Transaction read GetIB_Transaction write SetIB_Transaction; property ParamsInput: TCollectionParameters read FParamsInput write SetParamsInput; property ParamsOutput: TCollectionParameters read FParamsOutput write SetParamsOutput; property VisualControlTrigger: TWinControl read GetVisualControlTrigger write SetVisualControlTrigger; // Eventos property OnValidate: TNotifyEvent read FOnValidate write FOnValidate; property BeforeValidate: TNotifyEvent read FBeforeValidate write FBeforeValidate; property AfterValidate: TNotifyEvent read FAfterValidate write FAfterValidate; { Published declarations } end; ************************************************************************************************* Para acessar a propriedade Value do parâmetro eu uso o seguinte código: M_PR[02] := StrToInt(ELG_ValidateSQL.ParamsOutPut.Items[02].Value); Mas gostaria de acessar da seguinte maneira, para ficar mais legível e não ficar dependente da ordem em que os parâmetros aparecem na lista: M_PR[02] := StrToInt(ELG_ValidateSQL.ParamsOutPut.ParamByName('CPPRZ01').Value); Acessando o parâmetro pela função PARAMBYNAME e não pelo seu índice. Alguém sabe fazer isso? Fiquei a manha inteira e nao consegui fazê-lo. []´s Leandro [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html