Jump to content
filipe3632

Repetir text boxes

Recommended Posts

filipe3632

Bom dia

Queria pedir uma ajudinha de novo, é assim, tenho um form com o design tal como está na imagem abaixo, o x_lido, y_lido, z_lido corresponde a valores que vem de uma máquina por porta serial rs232, tenho a funcionar, tudo direito... e os text boxes de x_furacao, y, z, tol's só estão a  dar para testar um furo, e eu quero saber como faço para consegui por mais linhas iguais aquelas e no teste que é ver se o que vem da maquina está certo e dentro das tolerancias, da furação... eu não sei como faço isso, alguem me podia ajudar? já me falaram em repeaters, mas nao faço minima ideia do que seja....

semttulojv.png

Cumprimentos


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
ribeiro55

Porque tinhas uma "/" depois do ".png".

"Linhas iguais aquelas". Quais? O bloco de caixas de texto que aí tens?


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
filipe3632

Sim isso, e tendo em conta que esses blocos vai ter a ver com base de dados, ou seja, em cima numa combo box escolho o produto e ele apareçe os dados relativos a esse produto, mas neste momento estou a introduzir normalmente, agora queria era conseguir medir mais que um furo, e por ordem ou seja escrevo neles todos, e depois verifica primeiro, segundo e por ai fora...


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
ribeiro55

Podes abordar o problema de muitas maneiras, uma delas passa por criares um UserControl com todas essas caixas e repeti-lo tantas vezes quantas forem necessárias num FlowLayout, a partir do qual podes facilmente percorrer as unidades e afectar os seus valores.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
filipe3632

mas como faço isso, é novo para mim meu... Flow layout como assim?


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
filipe3632

Pessoal, conseguem ajudar-me? é que eu nunca mexi com user control e flow layout, nao percebo o que tenho de fazer para ter mais blocos de text's daqueles.

Cumps


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
jpaulino

Não sei se estou a entender muito bem o teu problema, mas penso que tens duas soluções (pelo menos):

Usar uma DataGridView para colocar os dados após cada leitura (copiando das textboxes para uma nova linha)

ou

Usando um DataRepeater control do Microsoft Power Packs 3.0

http://msdn.microsoft.com/en-us/vbasic/bb735936

Share this post


Link to post
Share on other sites
filipe3632

É isso do data repeater mesmo, e aquilo é facil de usar? tenho de instalar o power packs não é?


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
filipe3632

Sim eu já instalei, mas tipo, eu vou buscar aquilo ao vb como? eu tenho o 2010... eu preciso mesmo disso... é o meu projecto de estágio ... termino 2a feira, falta-me mesmo só isso, o resto é acertos ...


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
filipe3632

Tipo aquele pack, quando abro ele abre-me no visual basic, mas pareçe que é só um criador de reports...sei que não é só isso, só que eu nunca trabalhei com um data repeater... tinhas falado em data grid, decerto essa forma até se façil de passar os dados para o data grid, só que eu tenho uma condição para depois apareçer uma label verde ou vermelho conforme, para dizer se as medidas tão certas, como é que ele depois vai saber de que linha do datagrid é?

0brigado mesmo por tudo, têm-me ajudado imenso.


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
jpaulino

Quando instalas, e após reiniciares o Visual Studio, não te aparece na toolbox?

Share this post


Link to post
Share on other sites
filipe3632

Não sei ao certo o que deveria apareçer, mas acho que não :x


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
ribeiro55

Antes disso, explica lá melhor o que pretendes.

Não terás que activar furo a furo para virem valores da máquina?

Não faz sentido alimentar todos os furos com os valores da máquina.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
filipe3632

Pronto eu vou tentar explicar melhor, tipo eu em cima tenho uma combo box com os nomes do produto e seleciono o que quero e o quero que me apareça é o que está na tabela furação, tenho esse produto 15 20 30 furos, que de os dados desse furo, e depois se eu quiser outro vou acima e escolho outro e ele actualiza os furos, e quando escolher um, depois vou a maquina e medir essa peça, e ele vai comparando por ordem com o que tem nas text box, o 1º bloco tem estes dados assim assim, pronto, está ok ou está fora, passa ao próximo.. e assim sucessivamente.


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
jpaulino

Tens de mostrar uma imagem, tens de mostrar o que já tens feito, tens de fazer testes e pesquisar .... não podes estar à espera que façam tudo por ti ou que adivinhem ;)

Share this post


Link to post
Share on other sites
filipe3632

Já utilizei o data repeater, e ele ja mostra, mas agora preciso de saber tipo, eu quando mudo na combo box, como faço para mudar tambem no data repeater, tipo acontece é que se eu mudar para outro produto ele não mostra e por exemplo se tiver dados na base de dados de mais que um produto na tabela das furações, eu tenho o produto um selecionado, e ele apareçe no repeater também o do dois e três, os que tiver, e eu não queria isso.

Ya eu sei disso jpaulino


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
filipe3632

Os meus problemas é ele não actualizar quando eu mudo, ou seja estar por exemplo a mostrar 4 furos do produto 1 e se o produto 2 tiver 5 furos apareçe em baixo dos do produto 1 mesmo só estando o 1, e se eu mudar para o 2 continua igual... e o outro problema é não saber como depois vamos verificar se o furo está errado ou não pois tem mais que  um.

Preciso mesmo de resolver isto, já tentei uma query no sql mas nao fiz certo por que não mudou nada :x


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
jpaulino

Ainda não mostraste nada! Nem código, nem imagens, nada. O pessoal não adivinha.

Share this post


Link to post
Share on other sites
filipe3632

semttulotg.png

Tenho o form assim com esse aspecto, aquela combo box é para escolher o produto, e os furos vão aparecer no data repeater por baixo, e aqueles text's x y e z é o que vem da máquina por rs232 para verificar se os furos estão certos, dentro das tolerâncias.

Tenho este código:


    Private Function PosicaoValida(ByVal ValorMaquina As String, ByVal ValorTeste As String, ByVal ToleranciaSup As String, ByVal ToleranciaInf As String) As Boolean
        If Double.Parse(ValorMaquina) <= Double.Parse(ValorTeste) + Double.Parse(ToleranciaSup) And _
        Double.Parse(ValorMaquina) >= Double.Parse(ValorTeste) - Double.Parse(ToleranciaInf) Then
            Return True
        Else
            Return False
        End If
    End Function
    Dim MaX As String = txtx.Text
    Dim MaY As String = txty.Text
    Dim MaZ As String = txtz.Text
    Dim PeX As String = x_furacao.Text
    Dim PeY As String = y_furacao.Text
    Dim PeZ As String = z_furacao.Text
    Dim TolSupX As String = Tol_acimaXTextBox.Text
    Dim TolInfX As String = Tol_abaixoXTextBox.Text
    Dim TolSupY As String = Tol_acimaYTextBox.Text
    Dim TolInfY As String = Tol_abaixoYTextBox.Text
    Dim TolSupZ As String = Tol_acimaZTextBox.Text
    Dim TolInfZ As String = Tol_abaixoZTextBox.Text

    'normalizamos as tolerâncias
        If TolSupX = String.Empty Then TolSupX = "0"
        If TolInfX = String.Empty Then TolInfX = "0"
        If TolSupY = String.Empty Then TolSupY = "0"
        If TolInfY = String.Empty Then TolInfY = "0"
        If TolSupZ = String.Empty Then TolSupZ = "0"
        If TolInfZ = String.Empty Then TolInfZ = "0"

    'preparamos uma variável de controlo, que indicará no final se correu tudo bem
    Dim PosValida As Boolean = True

    'à falta de um dos eixos, validamos a posição dos restantes dois.
    'vamos utlizar lógica de boole para facilitar a coisa
    'TRUE AND TRUE = TRUE (tudo ok)
    'TRUE AND FALSE = FALSE (falhou um eixo)
    'FALSE AND TRUE = FALSE (falhou um eixo)
    'FALSE AND FALSE = FALSE (falharam ambos os eixos)
        If MaX = String.Empty Or PeX = String.Empty Then
            PosValida = PosicaoValida(MaY, PeY, TolSupY, TolInfY) And _
            PosValida = PosicaoValida(MaZ, PeZ, TolSupZ, TolInfZ)
        ElseIf MaY = String.Empty Or PeY = String.Empty Then
            PosValida = PosicaoValida(MaX, PeX, TolSupX, TolInfX) And _
            PosValida = PosicaoValida(MaZ, PeZ, TolSupZ, TolInfZ)
        ElseIf MaZ = String.Empty Or PeZ = String.Empty Then
            PosValida = PosicaoValida(MaX, PeX, TolSupX, TolInfX) And _
            PosValida = PosicaoValida(MaY, PeY, TolSupY, TolInfY)
        Else
            PosValida = PosicaoValida(MaX, PeX, TolSupX, TolInfX) And _
            PosValida = PosicaoValida(MaY, PeY, TolSupY, TolInfY) And _
            PosValida = PosicaoValida(MaZ, PeZ, TolSupZ, TolInfZ)
        End If

    'e mandamos para fora, a título de demonstração
        If PosValida = True Then MsgBox("YEY") Else MsgBox("Bolas...")
    

    Private Sub DataReceived( _
      ByVal sender As Object, _
      ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _
      Handles SerialPort1.DataReceived

        txtDataReceived.Invoke(New  _
                       myDelegate(AddressOf updateTextBox), _
                       New Object() {})
    End Sub
    Public Delegate Sub myDelegate()

    Public Sub updateTextBox()
        Dim x As String

        x = SerialPort1.ReadExisting

        With txtDataReceived
            If Mid(x, 1, 1) = "[" Then txtDataReceived.Text = String.Empty
            .Font = New Font("Garamond", 12.0!, FontStyle.Bold)
            .AppendText(x)
            .ScrollToCaret()
        End With

    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If SerialPort1.IsOpen Then
            SerialPort1.Close()
        End If
        Try
            With SerialPort1
                .PortName = "COM1"
                .BaudRate = 4800
                .Parity = IO.Ports.Parity.None
                .DataBits = 8
                .StopBits = IO.Ports.StopBits.One
                ' .Encoding = System.Text.Encoding.Unicode
            End With
            SerialPort1.Open()

            RichTextBox1.Text = SerialPort1.PortName & " Conectado"
            Button1.Enabled = False
            Button2.Enabled = True
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Try
            SerialPort1.Close()
            RichTextBox1.Text = SerialPort1.PortName & " Disconectado"
            Button1.Enabled = True
            Button2.Enabled = False
        Catch ex As Exception
            MsgBox(ex.ToString)
        End Try
    End Sub

E tenho uma query no sql, mas está mal feita :x


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites
filipe3632

Alguma ideia de como fazer isto? vou ter de marrar o fim de semana para na 2ª ter algo para trabalhar... agradecia mesmo a ajuda...


Peace, Love & Empathy by: Kurt Cobain

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.