SCROLL PARA OBJETOS CARREGADOS
é 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
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
Tá dificil
Vou dar uma olhada, nao tinha visto o seu tópico antes, vamos ver da para ajudar
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!
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!
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
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
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
[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
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
hummm ..... minha scrollbar tem valor LONG para os valores Max e Min ...
vou continuar tentando .....
vou continuar tentando .....
Talvez esse exemplo possa te ajudar
Valeu Irenko vou analizar ...
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.
Tópico encerrado , respostas não são mais permitidas