VB6 MULTI DUVIDAS
Obs: São 2 Forms. Em um Tenho varias text box no meu programa cada uma é multiplicada por um numero pre estipulado. Um Cmd Button faz o evento das operações e mostra em um Label.
Form 2:
[txt-color=#0000f0]Private Sub[/txt-color] cmdcalcular_Click()
lblpont = (txtrb.Text * 1.7) - (txtfc.Text * 0.5) - (txtpe.Text * 0.3) - (txtgc * 6) +....
[txt-color=#0000f0]End Sub[/txt-color]
1: Estou tendo problemas como: nao quero que numeros negativos, com virgulas ou pontos(0.2 ; 2,6) e nem letras sejam aceitos.
2: Alguns Textbox somente digitar um numero (0 ou 1).
3: No 2º Form (Startup Form) Tem um checkbox para se estiver selecionado modificar o Startup Form de Lugar e Iniciar o 2º.
Se alguem tiver alguma Solução para os problemas sera de muita ajuda.
Form 2:
[txt-color=#0000f0]Private Sub[/txt-color] cmdcalcular_Click()
lblpont = (txtrb.Text * 1.7) - (txtfc.Text * 0.5) - (txtpe.Text * 0.3) - (txtgc * 6) +....
[txt-color=#0000f0]End Sub[/txt-color]
1: Estou tendo problemas como: nao quero que numeros negativos, com virgulas ou pontos(0.2 ; 2,6) e nem letras sejam aceitos.
2: Alguns Textbox somente digitar um numero (0 ou 1).
3: No 2º Form (Startup Form) Tem um checkbox para se estiver selecionado modificar o Startup Form de Lugar e Iniciar o 2º.
Se alguem tiver alguma Solução para os problemas sera de muita ajuda.
Atualizando: Resolvi a 3ª parte com if/then/else e Left/Top
[txt-color=#0000f0]Private Sub[/txt-color] Command1_Click()
If Abertura.Check1.DataChanged = [txt-color=#0000f0]True Then[/txt-color]
Abertura.Top = [Ô]7165[Ô]
Abertura.Left = [Ô]10060[Ô]
Load frm2
frm2.Visible = [txt-color=#0000f0]True
Else[/txt-color]
Load frm2
Unload Me
frm2.Visible = True
[txt-color=#0000f0]End If
End Sub[/txt-color]
Nesse meio tempo percebi um erro no tempo de execuçao que quando o campo esta vazio o programa não sabe por que numero multiplicar. Então voltando com uma 3ª duvida: Fazer com que nenhum textbox possa ficar em branco.
[txt-color=#0000f0]Private Sub[/txt-color] Command1_Click()
If Abertura.Check1.DataChanged = [txt-color=#0000f0]True Then[/txt-color]
Abertura.Top = [Ô]7165[Ô]
Abertura.Left = [Ô]10060[Ô]
Load frm2
frm2.Visible = [txt-color=#0000f0]True
Else[/txt-color]
Load frm2
Unload Me
frm2.Visible = True
[txt-color=#0000f0]End If
End Sub[/txt-color]
Nesse meio tempo percebi um erro no tempo de execuçao que quando o campo esta vazio o programa não sabe por que numero multiplicar. Então voltando com uma 3ª duvida: Fazer com que nenhum textbox possa ficar em branco.
Olá, veja se isto o ajuda:
1:
2:
O KeyAscii [Ô]8[Ô] é o BackSpace
Parece-me que vc se está contradizendo... mas veja a solução do PedroPiu23, pode ser que o ajude..
Té +
1:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then
MsgBox [Ô]Só é permitido numeros[Ô], vbCritical, [Ô]Mensagem de erro[Ô]
KeyAscii = 0
End If
End Sub
2:
Private Sub Text2_KeyPress(KeyAscii As Integer)
If Len(Text2) = 1 And KeyAscii <> 8 Then
MsgBox [Ô]Só é permitido um Caracter[Ô], vbCritical, [Ô]Mensagem de erro[Ô]
KeyAscii = 0
ElseIf (KeyAscii < 48 Or KeyAscii > 49) And KeyAscii <> 8 Then
MsgBox [Ô]Só é permitido 0 (Zero) ou 1 (Um)[Ô], vbCritical, [Ô]Mensagem de erro[Ô]
KeyAscii = 0
End If
End Sub
O KeyAscii [Ô]8[Ô] é o BackSpace
Citação:3: No 2º Form (Startup Form) Tem um checkbox para se estiver selecionado modificar o Startup Form de Lugar e Iniciar o 2º.
Parece-me que vc se está contradizendo... mas veja a solução do PedroPiu23, pode ser que o ajude..
Té +
Citação::
Parece-me que vc se está contradizendo... mas veja a solução do PedroPiu23, pode ser que o ajude..
Té +
humm bem notado amigo na realidade o checkbox fica no 1º form e não no 2ºcomo dito antes. Essa parte ja esta resolvida.(3ª)
Quanto a somente numeros ficou bom +... quando deixo em branco ele me da erro 13 (deve ser por nao aceitar o tipo de dado inserido no caso [txt-color=#e80000][Ô][Ô][/txt-color]). Será que não resolveria se eu tirasse da lista de teclas possiveis de digitar o del e o backspace(acho que vc falou isso + nao entendi mto bem)
Já a questão do 0 ou 1 não poderia ter ficado melhor. Perfeito.
Fiz o seguinte para os textbox em branco
[txt-color=#007100][ô]Evento para não haver campos em branco[/txt-color]
[txt-color=#0000f0]If[/txt-color] text1.Text = [Ô][Ô] [txt-color=#0000f0]Then[/txt-color]
MsgBox [Ô]Digite um Numero[Ô], vbCritical, [Ô]Erro[Ô]
text1.Text = [Ô]0[Ô]
[txt-color=#0000f0]End If[/txt-color]
[txt-color=#007100][ô]Evento para não haver campos em branco[/txt-color]
[txt-color=#0000f0]If[/txt-color] text1.Text = [Ô][Ô] [txt-color=#0000f0]Then[/txt-color]
MsgBox [Ô]Digite um Numero[Ô], vbCritical, [Ô]Erro[Ô]
text1.Text = [Ô]0[Ô]
[txt-color=#0000f0]End If[/txt-color]
Peguei isto em outro local.
Function SoNumeros(Key As Integer) As String
[ô]selecione os caracteres que desejar
[txt-color=#e80000] [ô]Const Números$ = [Ô]0123456789,.[Ô]
Const Números$ = [Ô],.01[Ô] [ô] Aqui você coloca os números que desejar[/txt-color]
SoNumeros = Key
If Key <> 8 Then [ô]conferindo se é backspace
[ô]vê se é um caracter permitido
If InStr(Números$, Chr(Key)) = 0 Then
SoNumeros = 0
End If
End If
End Function
Private Sub Text1_KeyPress(KeyAscii As Integer)
[txt-color=#007100]KeyAscii = SoNumeros(KeyAscii)[/txt-color]End Sub
Function SoNumeros(Key As Integer) As String
[ô]selecione os caracteres que desejar
[txt-color=#e80000] [ô]Const Números$ = [Ô]0123456789,.[Ô]
Const Números$ = [Ô],.01[Ô] [ô] Aqui você coloca os números que desejar[/txt-color]
SoNumeros = Key
If Key <> 8 Then [ô]conferindo se é backspace
[ô]vê se é um caracter permitido
If InStr(Números$, Chr(Key)) = 0 Then
SoNumeros = 0
End If
End If
End Function
Private Sub Text1_KeyPress(KeyAscii As Integer)
[txt-color=#007100]KeyAscii = SoNumeros(KeyAscii)[/txt-color]End Sub
Citação:quando deixo em branco ele me da erro 13 (deve ser por nao aceitar o tipo de dado inserido no caso [Ô][Ô]).
é o que vc falou, vc terá de criar uma rotina para verificar se os TextBox[ô]s contem algo, essa rotina ficará dentro do seu botão [Ô]CmdCalcular[Ô] antes de fazer sua operação.
Se vc quiser deixar alguma TextBox em branco, terá que lhe atribuir algum valor dentro dessa rotina para verificar, 0 (zero) ou 1 (um) dependo do tipo de operação que vc está fazendo...
No caso de querer todos os TextBox[ô]s com valores, terá que avisar o usuario que nem todos os TextBox[ô]s não estão preenchidos e não deixar fazer sua operação...
Se precisar de um exemplo avisa ae!!!
Para digitar apenas numeros coloca no keypress do textbox esse codigo
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0
e para nao deixar o textbox sem nenhum nro inicie ele ja com 0, e coloque no change dele o codigo
If Len(Text1.Text) = 0 Then Text1.Text = [Ô]0[Ô]
abs
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii <> 8 Then KeyAscii = 0
e para nao deixar o textbox sem nenhum nro inicie ele ja com 0, e coloque no change dele o codigo
If Len(Text1.Text) = 0 Then Text1.Text = [Ô]0[Ô]
abs
Uma tremenda falta de educação da minha parte não agradecer a voces.
O programa ficou otimo muito obrigado pela ajuda Segue o Link
O programa ficou otimo muito obrigado pela ajuda Segue o Link
Tópico encerrado , respostas não são mais permitidas