AJUDA COM CRIAR OBJETOS EM TEMPO DE EXECU?ÃO
ola tenho um duvida.
Estou criando um controle de imagem em tempo de execução mas apenas em uma fila
minha duvida e a seguinte
caso as minhas imagens fileira fique maior que o forme precisaria que ele criasse outra filheira na parte de baixo dela
codigo
Dim i As Integer
Dim x As Single
Dim y As Integer
x = 0
y = 65
Dim pctPictureBox As Image
For i = 0 To 15
Set pctPictureBox = Me.Controls.Add([Ô]VB.Image[Ô], [Ô]pctPictureBox[Ô] & i, Me)
pctPictureBox.Visible = True
pctPictureBox.Height = 800
pctPictureBox.Width = 800
pctPictureBox.Stretch = True
pctPictureBox.Move 100 + x, 100
pctPictureBox.Picture = LoadPicture([Ô]C:\imagem.bmp[Ô])
y = x + 800
x = x + 800
Next
Estou criando um controle de imagem em tempo de execução mas apenas em uma fila
minha duvida e a seguinte
caso as minhas imagens fileira fique maior que o forme precisaria que ele criasse outra filheira na parte de baixo dela
codigo
Dim i As Integer
Dim x As Single
Dim y As Integer
x = 0
y = 65
Dim pctPictureBox As Image
For i = 0 To 15
Set pctPictureBox = Me.Controls.Add([Ô]VB.Image[Ô], [Ô]pctPictureBox[Ô] & i, Me)
pctPictureBox.Visible = True
pctPictureBox.Height = 800
pctPictureBox.Width = 800
pctPictureBox.Stretch = True
pctPictureBox.Move 100 + x, 100
pctPictureBox.Picture = LoadPicture([Ô]C:\imagem.bmp[Ô])
y = x + 800
x = x + 800
Next
Pura matemática.
Você tem a largura do formulário, tem a largura do seu controle. Isso significa que você consegue calcular quantos controles cabem na horizontal, no seu formulário.
A partir do momento que você tem esse valor, basta você usar o Mod para verificar se o index da inserção atual é múltiplo dele. Se for, você desloca o seu ponto Y e manda o X de volta a posição inicial. Bem simples...
Você tem a largura do formulário, tem a largura do seu controle. Isso significa que você consegue calcular quantos controles cabem na horizontal, no seu formulário.
A partir do momento que você tem esse valor, basta você usar o Mod para verificar se o index da inserção atual é múltiplo dele. Se for, você desloca o seu ponto Y e manda o X de volta a posição inicial. Bem simples...
kkkkkkkkkkkkk manda um exemplo ae
Tu precisaria de duas outras variáveis para guardar o tamanho do Form:
Depois disso, precisaria calcular se há espaço para um novo controle. Se não tiver, troca de linha:
dim frmWidth as Integer
dim frmHeight as Integer
frmHeight = Me.Height
frmWidth = Me.Width
Depois disso, precisaria calcular se há espaço para um novo controle. Se não tiver, troca de linha:
For i = 0 To 15
Set pctPictureBox = Me.Controls.Add([Ô]VB.Image[Ô], [Ô]pctPictureBox[Ô] & i, Me)
pctPictureBox.Visible = True
pctPictureBox.Height = 800
pctPictureBox.Width = 800
pctPictureBox.Stretch = True
pctPictureBox.Move 100 + x, y
pctPictureBox.Picture = LoadPicture([Ô]C:\imagem.bmp[Ô])
x = x + 800
if (x + 800) > frmWidth then
x = 0
y = y + 800
end if
Next
Aproveitei para corrigir o teu código. A linha pctPictureBox.Move 100 + x, y estava errada.
funcionou perfeitamente muito obrigado
Citação::
Aproveitei para corrigir o teu código. A linha pctPictureBox.Move 100 + x, y estava errada.
Tópico encerrado , respostas não são mais permitidas