DEFININDO COR DA FONTE

HUBER 26/02/2015 08:33:01
#444798
Amigos !

Tenho uma tela de parâmetros do sistema onde tenho várias opções que o usuário informa [Ô]Sim[Ô] ou [Ô]Não[Ô] para cada opção que melhor achar necessário.

Que gostaria é: Tem como eu definir o [Ô]Sim[Ô] dor azul e o [Ô]Não[Ô] cor vermelha.

Existe algum evento geral do formulário, alguma função simples que englobam todos os campos ao mesmo tempo.
EPISCOPAL 26/02/2015 19:57:03
#444812
??? não entendi bem! voce se refere a label ou commandbutton?
HUBER 27/02/2015 08:48:59
#444820
Olá bom dia !

Me refiro a textbox, Tenho uma parametrização no sistema onde o usuário informa [Ô]Sim[Ô] ou [Ô]Não[Ô] pela sua necessidade Ex abaixo

Cadastro de Parâmetros:

Faz isso [Ô]SIM[Ô]
Faz isso [Ô]NÃO[Ô]
Faz isso [Ô]NÃO[Ô]
Faz isso [Ô]SIM[Ô]

Gostaria de que a fonte do textbox fosse azul para [Ô]SIM[Ô] e vermelho para [Ô]NÃO[Ô]

PEGUDO 27/02/2015 09:32:59
#444821
Text1.ForeColor = vbGreen

Veja em:
[txt-color=#0000f0]http://stackoverflow.com/questions/1057094/how-do-i-change-the-font-color-in-vb6[/txt-color]
Então, se seu controle [Ô]SIM/NÃO[Ô] for um checkbox, coloque dentro do código checkChanged, tipo:

Se checked = True então
Text1.ForeColor = vbGreen
Senão
Text1.ForeColor = vbRed
Fim Se

Veja em:
[txt-color=#0000f0]https://msdn.microsoft.com/pt-br/library/6ys84h69(v=vs.90).aspx?sentenceGuid=801c1b26ef633dc9bf0e53c5895824bd#mt9[/txt-color]
HUBER 27/02/2015 09:40:28
#444824
Olá.

Minha necessidade seria se existe uma forma (função) para fazer isso em modo geral na tela e não campo em campo, pois tenho mais de 100 textbox nessa tela, ou se realmente a única forma seria campo em campo usando eventos como change, gotfocus, etc.
PEGUDO 27/02/2015 09:45:40
#444825
Sim.
Vou te confessar que tem uns 8 anos que não trabalho com o VB6 e não lembro de muita coisa, mas você poderia fazer função, passando o controle como um objeto e o sim ou o não, por exemplo:

Sub tratarFonte(ByVal txt As Object, ByVal valor As Boolean)
Select Case valor
Case True
txt.ForeColor = vbGreen
Case False
txt.ForeColor = vbRed
End Case
End Sub


Para utilizar:
tratarFonte(TextBox1, Valor booleano True ou False)

HUBER 27/02/2015 10:03:33
#444826
Olá PEGUDO

Entendi sua função OK, minha dúvida é, tenho que tratar isso campo por campo chamando a função por exemplo no evento change, gotfocus, etc. Gostaria (se existe claro) algo que colocasse diretamente em algum evento do formulário onde ele passará já todos os campos existentes fazendo isso.
PEGUDO 27/02/2015 10:29:09
#444829
Resposta escolhida
Como eu falei, tem mais de 8 anos que não mexo em VB6, mas veja se é isso:
    Dim e As Control

For Each e In Me.Controls
If (TypeOf e Is TextBox) Then
MsgBox e.Name + [Ô] = [Ô] + e.Text
End If
Next


ou

For Each Control In Form1.Controls
If TypeName(Control) = [Ô]TextBox[Ô] Then
Control.Text = [Ô][Ô]
End If
Next


No caso, este é o loop entre os objetos do tipo TextBox. Daí você colocaria a função dentro do loop.

Espero ter ajudado.
HUBER 27/02/2015 13:10:10
#444832
Olá PEGUDO, valeu ! fiz conforme abaixo

Módulo de Funções

Public Function CorFonte()
Dim e As Control
For Each e In frmFRM00557.Controls
If (TypeOf e Is TextBox) Then
If e.Text = [Ô]Sim[Ô] Then
e.ForeColor = vbBlue
ElseIf e.Text = [Ô]Não[Ô] Then
e.ForeColor = vbRed
Else
e.ForeColor = vbBlack
End If
End If
Next
End Function


Evento do Form (apesar de nunca ter usado esse evento no form, coloquei nele pois a cada alteração passa por ele)

Private Sub Form_Paint()
CorFonte
End Sub

Tópico encerrado , respostas não são mais permitidas