GARANTIR DESCONTO

Fórum Para que o RadioGroup Receba o foco #288279

15/07/2005

0

Estou numa situação , um poucop desagradavel. Como se pode notar , tenho um Radiogroup dentro de um TabSheet1

O Problema que toda vez que ele recebe o foco , tenho que dar um[b:aad69096a7] tab [/b:aad69096a7]para que o [b:aad69096a7]ItemIndex[/b:aad69096a7] fique selecionado , pára que o usuário possa [b:aad69096a7]Usar as setas [/b:aad69096a7]para andar de um item ao Outro...Isto é uma situação extremamente desagradável , pois o usário muitas das vezes não sabe que tem que dar um tab.. Ta certo que ele pode selecionar os itens clicando com o mouse sobre o ItemIndex correspondente , mas to porgramando para um lugar com pouco espaco fisico e onde a programação sera digirida somente ao teclado com as respectivas teclas de atalho

Compare as duas figuras abaixo , na primeira o RadioGrop1 tem o foco , mas para que o suário mova entre os Itens (Item1 , item 2) ele tem que dau Um Tab

[URL=http://www.imageshack.us][img:aad69096a7]http://img344.imageshack.us/img344/3664/imagem1radiogroup19yb.jpg[/img:aad69096a7][/URL]

Gostaria que toda vez que o RadioGroup Recebesser o foco o ItemIndex Ja ficaria Selecionado.. Tipo esta figura abaixo

[URL=http://www.imageshack.us][img:aad69096a7]http://img344.imageshack.us/img344/1160/imagem2radiogroup15yv.jpg[/img:aad69096a7][/URL]

Note que nesta ultima figura o ItemIndex Ja esta circulado e pronto para Receber as Setas , para ir de um item ao outro..

Pronto é isso e muitpo obrigado.


Marco Salles

Marco Salles

Responder

Posts

16/07/2005

Eduardo Pereira

Se for possível não usar o RadioGroup, uma solução é usar uma GroupBox com dois RadioButtons. No OnShow do Form é só setar o foco para o segundo RadioButton (Ex.: RadioButton2.SetFocus), que deverá ter a propriedade Checked = TRUE.


[]´s
Eduardo Pereira


Responder

Gostei + 0

16/07/2005

Marco Salles

quem ler o inicio da dúvida , vai certamente poder seguir adiante com alguma sugestão... O fato de usar radioGroup1 , puro e simplesmente com a propriedade TabStop Cetada em False , ( o que é defalt) , no Objecto Inspector, resolve o probleminha do jeito que eu mencionei no inicio da minha dúvida
Mas muitas das vezes o problema é maior que uma dez linhas e com o passar do tempo a gente vai introduzindo outro conceitos
O que acontece de fato é fato é que ta envolvido na historia um edit
quando o item1 é selecionado , automaticamente ele manda o foco para o edit1... Numa instrução a seguir

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
 Case RadioGroup1.ItemIndex of
  0:begin
      Edit2.Enabled:=True;
      Edit2.Text:=´´;
      Edit2.SetFocus;  //edit1 recebe o foco
    end;
  1:begin
      edit2.Enabled:=False;
      edit2.TabStop:=false;
    end;
 end;
end;


Funciona beleza , :P :P :P :P :P :P :P :P

[b:aabde67d9e]O Problema é retornar ao radioGroup do Edit1..[/b:aabde67d9e] :cry: :cry: :cry:

Alem de retornar , que o [b:aabde67d9e]itemIndex fique selecionado [/b:aabde67d9e]sem a necessidade de ter que dar um tab... :lol: :lol: :lol:

[b:aabde67d9e]No onexit do edit1 Escrevi o codigo a seguir[/b:aabde67d9e]

procedure TForm1.Edit2Exit(Sender: TObject);
begin
if edit2.Text = ´´ Then
  RadioGroup1.Setfocus;
end;


o Foco vai para o RadioGroup 1 so que para o itemIndex ficar selecionado , é necessário ter que [b:aabde67d9e]dar um Tab [/b:aabde67d9e]... :cry: :cry: :cry:
Este que é o problema

:idea: :idea: :idea: :idea: :idea:
[color=darkred:aabde67d9e][b:aabde67d9e]Ja pensei em simular o pressionamento da tecla tab Usando a instruçaõ[/b:aabde67d9e][/color:aabde67d9e]
if edit2.Text = ´´ Then
  RadioGroup1.Setfocus;
  keybd_event(Vk_Tab,0, 0, 0); //--->>simular 
end;


:cry: :cry: :cry: :cry:
so que o foco neste caso vai para a [b:aabde67d9e]aba do TabSheet[/b:aabde67d9e]


:idea: :idea: :idea: :idea: :idea:
Pensei que pudesse [b:aabde67d9e]simular o Pressionamento [/b:aabde67d9e]de uma [color=darkred:aabde67d9e][b:aabde67d9e]tecla de atalho[/b:aabde67d9e][/color:aabde67d9e]
Por exemplo < Alt + Letra do Atalho > Usando a Intrução keybd_event
Por exemplo ::::::::::::
if edit2.Text = ´´ Then
   //Simular O Pressionamento de Alt + Tecla de atalho  *****
end;


Mas esta instrução não estou conseguindo Formatar.. de forma correta :cry: :cry: :cry:
A Tecla do atalho no meu caso [b:aabde67d9e]Real[/b:aabde67d9e] estou usando é [color=darkred:aabde67d9e][b:aabde67d9e]u pequeno[/b:aabde67d9e][/color:aabde67d9e]

Selecionar F&uncionário :


Quero agradecer ao Eduardo Pereira a iniciativa tomada , e dizer que o problema é um pouquindo diferente , e eu gostaria de dizer que como eu ja escrevi vária linhas de codigo usando o radioGroup1 , no momento eu não gostaria de mudar... Gostaria sim de alguem que conseguisse formatar corretamente o pressionamento da Tecla de atalho seguido do Alt pressionado.. Sabemos que isto pode ser possível lendo o tópico a seguir:::


http://www.codeproject.com/system/keyboard.asp


So que não estou conseguindo :cry: :cry: :cry: :cry: :cry:


Responder

Gostei + 0

17/07/2005

Marco Salles

Código: if edit2.Text = ´´ Then //Simular O Pressionamento de Alt + Tecla de atalho ***** end; Mas esta instrução não estou conseguindo Formatar.. de forma correta A Tecla do atalho no meu caso Real estou usando é u pequeno


É , acho que consegue.... :P :P :P :P

if edit2.Text = ´´ Then 
  keybd_event(VkKeyScan(´u´),38, 0, 0);
   //Simular O Pressionamento de Alt + Tecla de atalho  ***** 
end;



Responder

Gostei + 0

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

Aceitar