COMO ALTERAR VALOR NUM TEXTBOX?

TAMANINI 10/05/2004 09:23:27
#23858
Olá, pessoal.
Mais uma dúvida:
Estou precisando de idéias e exemplos se possível de como fazer alterações em um textbox no qual possui os seguintes valores:
"Dê 06:00 até 12:00"

Agora como faria para clicar apenas nos números e marcar, por exemplo "06:00" e assim poder alterar?
Nisto quando marcasse apareceria alguma caixa para digitar novos valores, por exemplo DTpicker e um botão OK para confirmar o novo valor e inserir no "06:00", tem como isso?
Seria melhor colocar um "label" no lugar de um "textbox"?
Estou aceitando sugestões?
USUARIO.EXCLUIDOS 10/05/2004 11:34:28
#23887
Resposta escolhida


Caro Tamanini:

Não sei se é isto que vc quer:

Faça um teste.

Crie um Form com 2 textbox e um botão.

Deixe o text2 e o botão invisíveis

Digite algo no Text1 e selecione um pedaço do texto.

Private Sub Text1_Click()
Text2.Visible = True
Command1.Visible = True
End Sub

Private Sub Command1_Click()
Text1.SelText = Text2
End Sub

Que funciona, funciona !!!
USUARIO.EXCLUIDOS 10/05/2004 11:49:58
#23893
Tamanini:

Melhore um pouco:

Como o evento Click no TextBox ocorrerá "depois" da seleção, vc deverá monitorar se "alguma coisa" foi selecionada:

Private Sub Command1_Click()
Text1.SelText = Text2

End Sub

Private Sub Text1_Click()
If Text1.SelLength 0 Then 'atenção - sinal de maior que
Text2.Visible = True
Command1.Visible = True
End
End Sub
USUARIO.EXCLUIDOS 10/05/2004 11:52:19
#23894
Falha nossa:

If Text1 ........................

End If
USUARIO.EXCLUIDOS 11/05/2004 09:02:47
#24034
Caro Tamanini:

Neste caso, como no relógio do windows, acho mais facil fazer o seguinte:

Faça uma PictureBox que será seu conteiner.

Faça vários textbox e labels dentro desta picture:

Label1.Caption = "Dê"
Text1.Textt = "06:00"
Label2.Caption = " até "
Text2.Caption = "12:00"

Coloque as propriedades dos TextBox como:
BorderStyle = 0 '(None)

Coloque as propriedades dos labels como:
Autosize = True
BackStyle = 0 '(Transparent)

Ajuste as propriedades BackColor dos controles, como desejado.

Coloque um do ladinho do outro, dentro da picture. é assim que funciona o relógio do windows.

No seu caso, deve ser isto.
USUARIO.EXCLUIDOS 11/05/2004 11:20:03
#24074
Caro Tamanini.

Infelzmente é isto aí. Não vejo outra forma, a não ser elaborando uma OCX para fazer isto. Não é muito difícil.

De qualquer forma, para facilitar um pouquinho, use um updown para cada textbox, colocando no mesmo as propriedades:

BuddyControl = Text1 'ou 2 , 3, etc.
BuddyProperty = (Default)

se vc quizer numeros com com zero à  esquerda no Text1 (2 posições) , coloque:

Private Sub Text1_Change()
Text1.Text = Format(Text1, "00")
End Sub

Vou tentar achar um tempinho e fazer a OCX.
USUARIO.EXCLUIDOS 11/05/2004 12:02:50
#24094
Tamanini:

A propriedade BuddyControl, se relacionada a um textbox faz que o valor do textbox mude a cada clique que vc dá no updown. O Inverso tembém é verdadeiro: Cada vez que vc alterar a textbox, o valor do updown também muda, desde que, é claro, vc digite valores numéricos, dentro do "range" Min, Max do Updown.

A Propriedade BuddyProperty define qual propriedade vc quer controlar no textbox. Deixe "default", porque esta é a propriedade padrão do textbox.

Portanto, vc relaciona Updown1 com Text1, Updown2 com Text2 e assim por diante.

Sim. Tem que colocar os labels ":", etc.

Esta Ocx é meio besta. Se vc. usar isto uma só vez em seu programa, não tem necessidade de fazer. Mas poderá servir de exemplo prático para os colegas. Assim que fizer mando os fontes para a galera. Só não prometo para amanhã, poque a coisa aqui tá preta.
USUARIO.EXCLUIDOS 11/05/2004 14:04:52
#24115
Tamanini:
Não sei o que está acontecendo. Fiz uma simulação aqui com 3 updown e 3 textbox, cada updown relacionado com seu textbox (updown1 com textbox1, etc.)
e funcionou direitinho.
Não faça isto via código. Relacione na janela propriedades, que não tem como errar.
Tópico encerrado , respostas não são mais permitidas