COLOCAR BARRA ROLAGEM EM OBJETO PICTURE

COMENDADOR 11/11/2010 11:40:13
#357202
Fala feras ai, como faço para colocar uma barra de rolagem no objeto PICTURE, pois criei um boleto com o PICTURE, só que quando os registros são muitos eles não apareçem na impressão, nisso que entra a necessidade de uma SCROLLBAR, no boleto!







Alterado de : DESAFIO EM VB 6.0 para COLOCAR BARRA ROLAGEM EM OBJETO PICTURE
Moderação
ERINALDO 11/11/2010 12:46:58
#357205
Ao invés do Picture porque vc não usa um ListBox e usei o código conforme abaixo:

CODEPrivate Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1 [ô]----------------------------------------------------------------------------------> INICIA CUPOM FISCAL
a = 1
Total = 0
List1.Font = [Ô]Courier New[Ô]
List1.Width = 6195
List1.Height = 3570
List1.AddItem Date & [Ô] [Ô] & Time & [Ô] CCF:000000 COO:000000[Ô]
List1.AddItem [Ô] CUPOM FISCAL[Ô]
List1.AddItem [Ô] ITEM CÓDIGO DESCRIÇÃO[Ô]
List1.AddItem [Ô] QNT. VL.UNIT( R$) ST VL.ITEM( R$)[Ô]
List1.AddItem [Ô]---------------------------------------------------[Ô]
List1.ListIndex = List1.ListCount - 1
frmpro.Enabled = True
Toolbar1.Buttons(1).Enabled = False
Case 2 [ô]------------------------------------------------------------------------------------------> INSERE ITEM
List1.AddItem [Ô] [Ô] & Format(a, [Ô]#000[Ô]) & [Ô] [Ô] & Format(codpro.Text, [Ô]#0000[Ô]) & [Ô] [Ô] & despro.Text
List1.AddItem [Ô] [Ô] & Format(qntpro.Text, [Ô]#000[Ô]) & [Ô] Un x [Ô] & Format(valpro.Text, [Ô]#,##0.00;(#,##0.00)[Ô]) _
& [Ô] = [Ô] & Format(SubTotal, [Ô]#,##0.00;(#,##0.00)[Ô]) & Format(Total, [Ô]#,##0.00;(#,##0.00)[Ô])
SubTotal = Total + (valpro.Text * qntpro.Text)
Total = Total + SubTotal
codpro.Text = [Ô][Ô]
despro.Text = [Ô][Ô]
valpro.Text = [Ô][Ô]
qntpro.Text = [Ô]1[Ô]
a = a + 1
Toolbar1.Buttons(2).Enabled = False
Toolbar1.Buttons(3).Enabled = True
Case 3 [ô]-------------------------------------------------------------------------------> IMPRIME O CUPOM FISCAL
[ô] em construção
Toolbar1.Buttons(1).Enabled = True
Case 4
Unload Me
End Select
End Sub
ERINALDO 11/11/2010 12:50:08
#357206
Os controles ImageBox e PictureBox do VB não fornecem nenhum tipo de barra de rolagem quando a imagem excede as dimensões dos controles e, em muitos casos torna se difícil a aplicação de imagens em formulários...
A melhor maneira de contornar essa situação é projetar um contole ActiveX que faça o mesmo que um controle PictureBox, mas com barras de rolagem para sua imagem... OU...
Coloque um formulário MDI com sua imagem no formulário filho e faça com que o mesmo seja alinhado ao campo superior esquerdo do formulário pai e remova sua barra de título, para que não possa ser movido pelo usuário...
Antes de mais nada, configure a propriedade Caption do formulário-filho como uma String em branco e sua propriedade ControlBox como False. Configure também sua propriedade BorderStyle como Fixed Single.
Olhe isso

Private Sub Form_Load()
PictWidth = Me.ScaleX(Me.Picture.Width, vbHimetric, vbTwips)
PictHeight = Me.ScaleX(Me.Picture.Height, vbHimetric, vbTwips)
Me.Move 0, 0, PictWidth, PictHeight
End Sub

--> Note que as dimensões da imagem são retornadas pelas propriedades Height e Width do objeto em unidades HiMetric, e elas precisam ser convertidas em twips. Essa conversão é feita pelos métodos ScaleX e ScaleY do formulário. Se tiver configurado a propriedade ScaleMode do formulário-filho com algum outro valor (pixels, por exemplo), deverá alterar o segundo argumento do método de acordo.

Private Sub LoadImage_Click()
CommonDialog1.Filter = [Ô]Images|*.bmp;*.gif;*.jpg[Ô]
CommonDialog1.DialogTitle = [Ô]Select Image[Ô]
CommonDialog1.InitDir = App.Path
CommonDialog1.FileName = [Ô][Ô]
CommonDialog1.ShowOpen
If CommonDialog1.FileName = [Ô][Ô] Then Exit Sub
Me.Picture = LoadPicture(CommonDialog1.FileName)
Call Form_Load
End Sub

--> Essa rotina acima pode ser atribuída à um comando de menu no formulário-filho (filho mesmo)...
As Primeiras 7 linhas configuram o controle Windows Common Dialogs e as duas últimas carregam a imagem do formulário-filho e chamam o manipulador do evento Load do formulário que redimensiona o formulário-filho de acordo com as dimensões da nova imagem...


é... Tem razão, é um [Ô]pouquinho[Ô] extenso mas espero que tenha clareado suas idéias...

Fontes: Internet

Abraços
WEBIER 11/11/2010 13:05:00
#357207
eu acho que os titulos dos topicos tem q ser algo relacionado com o assunto do conteudo... acho esses tipos de titulos apelativos e contra as regras do forum
MARCELO.TREZE 11/11/2010 13:41:06
#357209
Concordo com o WEBIER sugiro que um dos moderadores altere este titulo
FFCOUTO 11/11/2010 14:30:46
#357214
Resposta escolhida
Para fazer o que você quer é necessário 2 picturebox e 1 vscrollbar

1º. Crie a primeira picturebox no form.

2º. Crie a segunda picturebox, agora dentro da primeira.

3º Set as propriedades BorderStyle = None, AutoRedraw = True

4º Adicione a VScrollBar dentro da primeira picturebox

5º Acrescente o código abaixo no form

Private Form_Load()
VScrollBar1.Move Picture1.ScaleWidth - 240, 0, 240, Picture1.ScaleHeight
End Sub

Private Sub VScrollBar1_Change()
Picture2.Top = -(VScrollBar1.Value * 360)
End Sub

Private Sub VScrollBar1_Scroll()
Picture2.Top = -(VScrollBar1.Value * 360)
End Sub


6º. Insira qualquer foto na picturebox2 e execute.

OBS: Este exemplo vai funcionar apenas para mover na vertical, na horizonta basta mudar para Picture2.Left


Espero ter ajudado.
LLAIA 12/11/2010 09:16:38
#357271
curiosidade:

porque mostrar todos os boletos? o boleto só interessa depois de impresso, não é mesmo?
Tópico encerrado , respostas não são mais permitidas