Fórum Verificar se um determinado SpeedButton já tem no form #398932

10/04/2011

0

Pessoal estou com um problema, que já me tirou uma semana de atraso.......



É Assim no meu formulario principal eu tenho alguns TabControl com varios botões que são os acessos ao formulários....e do meu lado direto da tela deixo um espaço para criar um ShortCut do menu, mas ai ná hora de criar eu faço para aquele shortcut pegar o icone que está no botão de atalho dessa maneira abaixo:




TSpeedButton(FindComponent('TF' + 
Dtm.QryAtalhos.FieldByName('AtlFormulario').AsString)).Glyph := 
TSpeedButton(FindComponent(Dtm.QryAtalhos.FieldByName('AtlFormulario').AsString)).Glyph;



Mas ai tem um porém as vezes eu não tenho um botão de menu no tabControl, mas tenho o atalho, porém quando vou pegar a imagem dele como não tem ele dá erro


for test := 0 to ComponentCount -1 do
      begin

         if 
TSpeedButton(FindComponent(Dtm.QryAtalhos.FieldByName('AtlFormulario').AsString)).Name
 = ( Components [test] as TSpeedButton ).Name then
               begin
                
 TSpeedButton(FindComponent('TF' + 
Dtm.QryAtalhos.FieldByName('AtlFormulario').AsString)).Glyph := 
TSpeedButton(FindComponent(Dtm.QryAtalhos.FieldByName('AtlFormulario').AsString)).Glyph;
               end;


       end;



Então ná hora de criar os shortCut em tempo de execução.....eu queria que verificasse se tem o botão do menu para pegar a imagem dele.....tipo verificar se o

TSpeedButton(FindComponent(Dtm.QryAtalhos.FieldByName('AtlFormulario').AsString)).Name

tem para pegar a imagem dele e colocar no

TSpeedButton(FindComponent('TF' + Dtm.QryAtalhos.FieldByName('AtlFormulario').AsString)).Name


Então como eu verifico se um speedbutton existe ?
Robson Morais

Robson Morais

Responder

Posts

10/04/2011

Leandro

hahahaha acabei de fazer um rolo, ao inves de te responder postei um novo intem

verifique o post ver se o botao existe.
Responder

Gostei + 0

10/04/2011

Robson Morais

sobe
Responder

Gostei + 0

11/04/2011

Wilson Junior

Veja se isto lhe ajuda
var
  Componente: TComponent;
begin
  for test := 0 to ComponentCount -1 do
  begin
    Componente := FindComponent( Dtm.QryAtalhos.FieldByName('AtlFormulario').AsString );
    if  ( Componente <> nil )
    and ( Components[test] is TSpeedButton )
    and ( TSpeedButton(Componente).Name = TSpeedButton(Components[test]).Name ) then
        TSpeedButton(FindComponent('TF' + Dtm.QryAtalhos.FieldByName('AtlFormulario').AsString)).Glyph := TSpeedButton(Componente).Glyph
    ;
  end;
end;


Espero ter colaborado.
Responder

Gostei + 0

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

Aceitar