• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Anthony

Criar botton em modo Execuçao

13 mensagens neste tópico

Boas ...

Gostada de uma ajuda de vb.net,  como posso criar botões em modo execução... mais ao mesmo tempo este procure a informação em uma base de dados SQL server ex..

Tabela Botão

ID_Botao

T_Descriçao ( o nome do botão Text)

T_cod_imagem (Imagem de fundo do botão)

Possui 3, 4 , 5 , 6 registos etc... este ao entrar no modo execução procura os dados na base de dados e cria os botões automaticamente com suas respectivas características...

Muito Obrigado pela vossa atenção!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas nao sei sem é o melhor exemplo porque este trabalha em ficheiros XML .... mas mesmo assim nao consigo fazer download para dar uma vista de olhos no codigo !!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas qual e o problema disso...... mostra alguma lógica... não é a papinha toda feita...

De qualquer modo, o que está a ir buscar ao XML, são propriedades de botoes... dados... logo a unica coisa que muda, é que em vez de ires buscar ao xml, tens que ir buscar ao sq server... deve haver aqui montes de codigo para isso no forum.

Mas dá para teres uma ideia e evoluires por ti próprio.

Só assim se aprende!

Realmente o link ja nao funciona... postei de novo em: http://rapidshare.com/files/209192127/groupBoxLauncher.rar.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas outra vez.. papinha feita ? umm ok não vou levar a mal..!

continuo a não poder abrir o ficheiro compactado porque esta danificado e já agora este é algum do código feito por mim

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim btn As Button = New Button() 'declara o botão

        Dim BOTAO As Button

        Dim l As Integer

        conexao.ConnectionString = "Data Source=ANTHONY-PC\SQLEXPRESS;Initial Catalog=Projecto_leng;Integrated Security=True"

        conexao.Open()

        'Filtra por utilizador

        filtro.Connection = conexao

        filtro.CommandType = CommandType.Text

        filtro.CommandText = " SELECT T_Descricao From TBL_Mesa"

        'Executa a consulta

        consultadapter = New SqlClient.SqlDataAdapter

        consultadapter.SelectCommand = filtro

        dr = filtro.ExecuteReader

        l = 1

        Do While dr.Read

            BOTAO = Me.Controls("Button" & l)

            btn.Text = dr("T_Descricao").ToString 'define o texto

            btn.Size = New Size(180, 170) 'define o tamanho

            btn.Location = New Point(50, 70) 'define a localização

            btn.BackgroundImageLayout = ImageLayout.Stretch 'Ajusta a imagem

            btn.BackgroundImage = System.Drawing.Image.FromFile("C:\Users\Anthony.Anthony-PC\Desktop\Projecto vb\BAR.jpg") 'procura a imagem

            Me.Controls.Add(btn) 'adiciona o botão ao form

            l = l + 1

        Loop

        dr.Close()

    End Sub

Estou a ter 2 problemas, este lê o segundo registo e não começa pelo primeiro .... e o segundo é não conseguir criar mais que um botão  :ohwell: lol .... Podes ver k não é papinha feita Obrigado na mesma ;) Força !!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ok... como mostraste algum código, peço desculpa pelo comentário da papinha feita ;-), mas ultimamente..parece-me quase prato do dia ;-)

Quanto a teu código, tu como estás a fazer, até podes criar 500 botoes que so vais ver um....

tens que ir incrementando a location (quer em x, quer em y)

Quanto ao ficheiro..acabei de sacar... é um rar...e  funcionou perfeitamente

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na boa ...  :P

sobre a location eu ja fiz ixu mais tanbem nao funciona !.. tipo para mim ta certo como faxo ... da uma vista de olhos please ;)..

dr = filtro.ExecuteReader

        x = 50

        y = 70

        l = 1

        Do While dr.Read

            BOTAO = Me.Controls("Button" & l)

            btn.Text = dr("T_Descricao").ToString 'define o texto

            btn.Size = New Size(180, 170) 'define o tamanho

            btn.Location = New Point(x, y) 'define a localização

            btn.BackgroundImageLayout = ImageLayout.Stretch 'Ajusta a imagem

            btn.BackgroundImage = System.Drawing.Image.FromFile("C:\Users\Anthony.Anthony-PC\Desktop\Projecto vb\BAR.jpg") 'procura a imagem

            Me.Controls.Add(btn) 'adiciona o botão ao form

            x = x + 150

            y = x + 150

            l = l + 1

e ja declarei as variaveis..

agradeço tua ajuda :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e o tal ficheiro rar a mim da-m erro quando desconpacto ...o erro é este (!  C:\Downloads\groupBoxLauncher.rar: O arquivo está num formato desconhecido ou danificado)

pode ser problema de aqui ...

deixa tar na mesma axo que nao presiso ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Fiz assim num form novo, pk nao tenho a DB, e no evento clique de um botão qualquer:

    Dim x As Integer
        Dim y As Integer
        x = 20
        y = 20
        For i = 0 To 10
            Dim btn As New Button
            btn.Text = ("botao n " & i).ToString 'define o texto
            btn.Width = 100
            btn.Height = 20
            'define o tamanho
            btn.Location = New Point(x, y) 'define a localização
            btn.BackgroundImageLayout = ImageLayout.Stretch 'Ajusta a imagem
            ' btn.BackgroundImage = System.Drawing.Image.FromFile("C:\Users\Anthony.Anthony-PC\Desktop\Projecto vb\BAR.jpg") 'procura a imagem
            Me.Controls.Add(btn) 'adiciona o botão ao form
            x = x + 20
            y = x + 20
        Next

ta a funcionar perfeitamente..... quer dizer..pelo menos cria os botoes... nao estaras a dar muito entervalo entrew os botoes ou qq coisa?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso o problema nao era dos intervalos mais sim da linha Dim btn As Button = New Button() 'declara o botão ao ser definida na parte superior...

resultado final =

x = 20

        y = 20

        l = 1

        Do While dr.Read

            BOTAO = Me.Controls("Button" & l)

            Dim btn As Button = New Button() 'declara o botão

            btn.Text = dr("T_Descricao").ToString 'define o texto

            btn.TextAlign = ContentAlignment.TopCenter

            btn.Size = New Size(160, 140) 'define o tamanho

            btn.Location = New Point(x, y) 'define a localização

            btn.BackgroundImageLayout = ImageLayout.Stretch 'Ajusta a imagem

            btn.BackgroundImage = System.Drawing.Image.FromFile("C:\Users\Anthony.Anthony-PC\Desktop\Projecto vb\BAR.jpg") 'procura a imagem

            btn.Font = New Font("Arial", 20, FontStyle.Bold)

            Me.Controls.Add(btn) 'adiciona o botão ao form

            l = l + 1

            If i < 4 Then

                For j = 1 To 3

                    y = y + 50

                    i = i + 1

                Next j

            Else

                x = x + 170

                i = 0

                y = 20

            End If

        Loop

        dr.Close()

    End Sub

Esta confuçao de IF é para existir uma ordem do tipo 3 linhas e infinitas  colunas ...

já agora sabes como eu posso dar uma actividad a cada botao ? ..

do tipo eu fiz uma MsgBox("Button" & l) para ver os resultados: Button1, Button2....

para assim fazer

    Select Case ("Button" & l)

                Case "button1"

                    MsgBox("sucesso")

                Case "button2"

                    Contas.Show()

            End Select

E nao funciona  :wallbash: ...!

conheçes uma outra melhor forma?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o teu botão pode ser um usercontrol.. que tem propriedades próprias e um método próprio tb, por exemplo. Assim, todos eles repondem ao chamamento, e não tens que estar a testar qual foi premido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

:eek:Ummmm nao sei nunca trabalhei com isso xD!!... mais nao intereça vou procurar outra maneira ...

Muito obrigado na mesma Força !!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora