Converter um String
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?
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
Curtidas 0
Respostas
Agua Cascatai
05/08/2011
Nínguem pode me ajudar?
GOSTEI 0
Emerson Nascimento
05/08/2011
uma forma:
b.Action := FindComponent(FieldByName('descricao').AsString);
b.Action := FindComponent(FieldByName('descricao').AsString);
GOSTEI 0
Agua Cascatai
05/08/2011
Dessa forma nao funfou
GOSTEI 0
Wilson Junior
05/08/2011
As Actions estão localizadas na mesma unit de onde você está executando este comando?
GOSTEI 0
Agua Cascatai
05/08/2011
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
b.Width := pnlacessorapido.Width; b.Action := TAction(Self.FindComponent(FieldByName('ACTION').AsString)); b.ShowHint := True; b.Hint := FieldByName('descricao').AsString;
Assim funcionou
GOSTEI 0