AJUDA COM CRIAR OBJETOS EM TEMPO DE EXECU?ÃO

FABRICIOWEB 28/08/2016 10:30:10
#466232
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
DS2T 28/08/2016 11:00:57
#466233
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...
FABRICIOWEB 28/08/2016 11:15:04
#466234
kkkkkkkkkkkkk manda um exemplo ae
ASHKATCHUP 30/08/2016 19:54:55
#466306
Resposta escolhida
Tu precisaria de duas outras variáveis para guardar o tamanho do Form:
  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
ASHKATCHUP 30/08/2016 19:56:03
#466308
Aproveitei para corrigir o teu código. A linha pctPictureBox.Move 100 + x, y estava errada.
FABRICIOWEB 30/08/2016 21:09:24
#466319
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