SCROLL PARA OBJETOS CARREGADOS

EPISCOPAL 10/10/2016 13:36:11
#467979
é o seguinte: Criei um container onde vai ser carregado várias pictures que são carregados via runtimer.

coloquei um algorítimo que rola com o scrollbar .... até ai blz ...

o problema é que ele funciona somente até 187 controles carregados. A partir desse numero o algoritimo simplesmente não funciona e deveria ...


Alguem ja viu isso? Exemplo em anexo
EPISCOPAL 18/10/2016 17:37:25
#468182
Tá dificil
ALVAROVB2009 18/10/2016 19:47:06
#468184
Vou dar uma olhada, nao tinha visto o seu tópico antes, vamos ver da para ajudar
DS2T 19/10/2016 08:31:17
#468189
Olá!
To sem o VB aqui, mas dei uma olhadinha no código.

Não sei se criar controles em tempo de execução é o melhor para o seu caso.
Já pensou em carregar as imagens com LoadPicture? Aí bastaria você carregar as imagens de acordo com o valor do VScroll... Se você precisar controlar o evento Click, por exemplo... Bastaria você usar o MouseDown, capturar a posição do click e comparar com que imagem ele está, de acordo com o tamanho de cada imagem.

Além do mais, você não vai precisar ficar criando vários controles na memória a toa...

Acredito que seja mais eficaz.
Abraços!
ALVAROVB2009 19/10/2016 19:29:04
#468221
Estava vendo e testando os códigos e vi que tem um limite do picture e da barra para exibir
Eu consegui colocar até 200 imagens, más diminui o espaço entre elas e coloquei o limite da barra como o top da última imagem, ficou assim

Option Explicit

Private Sub cmdLOAD_Click()
Dim I As Integer
For I = 2 To 200
Load PIC(I)
PIC(I).Top = PIC(I - 1).Top + PIC(I - 1).Height + 4
PIC(I).Visible = True
Next
VBAR.Min = 0 [ô] -7
[ô] VBAR.Max = (PIC(PIC.UBound).Top + PIC(PIC.UBound).Height - PIC(1).Top - VBAR.Min) - Picture1.Height
VBAR.Max = PIC(PIC.UBound).Top
End Sub

Private Sub PIC_Click(Index As Integer)
MsgBox Index
End Sub

Private Sub VBAR_Change()
Dim I As Integer
PIC(1).Top = -VBAR.Value
For I = 2 To 200
PIC(I).Top = PIC(I - 1).Top + PIC(I - 1).Height + 4
Label1 = I
Next
End Sub
EPISCOPAL 21/10/2016 10:38:53
#468277
Citação:

más diminui o espaço entre elas



já é uma saída .... mas o limite não tá no picture, pois se vc aumentar exageradamente o valor do vBar.Max ele funciona, porem não fica certinho


Citação:

Não sei se criar controles em tempo de execução é o melhor para o seu caso



Na verdade, é caso!!! preciso de todas as pictures, infinitamente .... rsrsrs
ALVAROVB2009 21/10/2016 18:09:13
#468285
[quote]:
más diminui o espaço entre elas

já é uma saída .... mas o limite não tá no picture, pois se vc aumentar exageradamente o valor do vBar.Max ele funciona, porem não fica certinho


Acredito que seja mesmo o limite de exibição do picture, porque eu cheguei a colocar o limite máx no VBar 32767 e mesmo assim continuou exibindo apenas os 200 pictures , e como vc falou, não fica certinho, por isso que ACHO que o limite é do picture

EPISCOPAL 24/10/2016 18:08:12
#468377
hummm ..... minha scrollbar tem valor LONG para os valores Max e Min ...

vou continuar tentando .....
IRENKO 25/10/2016 21:51:30
#468416
Talvez esse exemplo possa te ajudar
EPISCOPAL 26/10/2016 10:58:38
#468430
Valeu Irenko vou analizar ...
DS2T 26/10/2016 12:32:02
#468437
Ainda não vi a necessidade de criar os objetos ActiveX. Você consegue simular a mesma coisa ilimitadamente usando LoadPicture e um pouco de matemática.
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas