Verificar se um determinado SpeedButton já tem no form

Delphi

10/04/2011

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

Curtidas 0

Respostas

Leandro

Leandro

10/04/2011

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

verifique o post ver se o botao existe.
GOSTEI 0
Robson Morais

Robson Morais

10/04/2011

sobe
GOSTEI 0
Wilson Junior

Wilson Junior

10/04/2011

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.
GOSTEI 0
POSTAR