Fórum Converter um String #406111

05/08/2011

0

Galera, boa tarde.Estou tentando criar um menu de acesso rapido e esbarrei em uma situação.
Tenho no meu banco de dados, o nome da action onde esta o procedimento para chamar o form.
varB : TSpeedButton;largura : Integer;begin  with TZReadOnlyQuery.Create(nil) do  try    Connection := DmPrincipal.MyDB;    sql.Add('SELECT B.ACTION, B.DESCRICAO '+            'FROM ' +            'TBLUSUARIOMODULOACESSO A, TBLMODULOACESSO B ' +            'WHERE ' +            'A.IDMODULOACESSO=B.IDMODULOACESSO AND ' +            'A.ACESSORAPIDO=0 AND ' +            'B.ACESSORAPIDO=0 AND ' +            'A.IDUSUARIO=:CIDCHAVES');    ParamByName('cidchaves').AsInteger := DmPrincipal.qryusuariocidchaves.AsInteger;    Open;    First;    largura:=0;    while not Eof do    begin      b           := TSpeedButton.Create(Application);      b.Parent    := pnlacessorapido;      b.Height    := 40;      b.Left      := largura;      b.Width     := pnlacessorapido.Width;      b.Action    := FieldByName('descricao').AsString;{erro acorre aqui}      b.ShowHint  := True;      b.Hint      := FieldByName('descricao').AsString;      b.Caption   := '';      b.NumGlyphs := 1;      b.Flat      := True;      b.Tag       := 1;      largura     := largura+40;      Next;    end;  finally    free;  end;
como faço para converter string em um tbaseaction?
Agua Cascatai

Agua Cascatai

Responder

Posts

07/08/2011

Agua Cascatai

Nínguem pode me ajudar?
Responder

Gostei + 0

08/08/2011

Emerson Nascimento

uma forma:

b.Action    := FindComponent(FieldByName('descricao').AsString);

Responder

Gostei + 0

08/08/2011

Agua Cascatai

Dessa forma nao funfou
Responder

Gostei + 0

08/08/2011

Wilson Junior

As Actions estão localizadas na mesma unit de onde você está executando este comando?
Responder

Gostei + 0

08/08/2011

Agua Cascatai

Emerson, valeu pela ajudada forma em que colocou nao funcionou, porem me fez lembrar de dar um cast, entao ficou assim
      b.Width     := pnlacessorapido.Width;      b.Action    := TAction(Self.FindComponent(FieldByName('ACTION').AsString));      b.ShowHint  := True;      b.Hint      := FieldByName('descricao').AsString;

Assim funcionou
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar