Array
(
)

Tecla de atalho no PageControl?

Susi
   - 30 nov 2005

Olá....

Sou iniciante em programação. Em um PageControl, quando a TabPosition é tpTop coloco a Caption da TabSheet=&Título e tenho uma tecla de atalho...(o T aparece sublinhado e posso usar ALT+T).
Só que eu preciso que a TabPosition seja tpLeft...Daí, a Caption fica sem a minha tecla de atalho, pois aparece exatamente o texto digitado:´&Título´.
Alguém poderia me ajudar a colocar uma tecla de atalho em uma TabSheet, quando a TabPosition=tbLeft?

Obrigada...

Susana :roll:


Jairroberto
   - 30 nov 2005

Olá, Susi!

A solução mais simples que vejo é usar uma ActionList, incluindo uma ação para selecionar cada TabSheet, definindo o ´ShortCut´ desejado para cada ação. Veja um exemplo:

Defina em tempo de design, no ObjectInspector:
ActionTabTitulo.ShortCut := ´Alt+T´;
ActionTabTitulo.Tag := 0;
ActionTabTitulo.OnExecute := ActionTabTituloExecute;
ActionTabExemplo.ShortCut := ´Alt+E´;
ActionTabExemplo.Tag := 1;
ActionTabExemplo.OnExecute := ActionTabTituloExecute;

Use o código adequado para selecionar a tab vinculada à ação:
procedure TForm1.ActionTabTituloExecute(Sender: TObject);
begin
PageControl1.ActivePageIndex := TComponent(Sender).Tag;
end;


Observe que para que os ShortCuts funcionem, não é necessário que a Action esteja vinculada a nenhum botão ou item de menu.


Um abraço,
Jair


Susi
   - 30 nov 2005

Olá, Jair,

Vc postou:

A solução mais simples que vejo é usar uma ActionList, incluindo uma ação para selecionar cada TabSheet, definindo o ´ShortCut´ desejado para cada ação. Veja um exemplo:

Defina em tempo de design, no ObjectInspector:
ActionTabTitulo.ShortCut := ´Alt+T´;
ActionTabTitulo.Tag := 0;
ActionTabTitulo.OnExecute := ActionTabTituloExecute;
ActionTabExemplo.ShortCut := ´Alt+E´;
ActionTabExemplo.Tag := 1;
ActionTabExemplo.OnExecute := ActionTabTituloExecute;


Sou realmente iniciante, e não entendi aonde devo colocar as definições acima.... é em algum evento da Action List???

Desde já agradeço a ´paciência´...


Outro abraço p/vc.
Susana :oops:


Jairroberto
   - 30 nov 2005

Olá, Susi!

Tudo bem... vou tentar ir mais devagar. No exemplo que dei, ´ActionTabTitulo´ e ´ActionTabExemplo´ são objetos do tipo ´TAction´, aqueles que são criados quando você clica duas vezes na ActionList e clica no botão ´New Action´.

A idéia seria criar um objeto Action para cada TabSheet do ´PageControl1´ que usei também no exemplo.

A propriedade Tag da cada Action corresponderia ao PageIndex de cada TabSheet para facilitar a codificação e centralizar o procedimento de navegação pelas TabSheets, conforme demonstrado no exemplo de código para evento ´OnExecute´ das Actions.

Esperto não ter complicado mais ainda. :wink:

Um abraço,
Jair


Susi
   - 30 nov 2005

Valeu, Jair!!!

Aumentei + um pouco meus pequenos conhecimentos em Delphi.

Nunca tinha usado este componente ActionList. Por isso minha ´ignorância´...

Mas deu certo....

Brigadão!!!

Susana. :D :D :D