Вывод графических файлов на компонент Image - VB (59944)

Узнай цену своей работы

Формулировка задачи:

Вывод графических файлов на компонент Image. Файлы выбираются из списка. Список файлов формируется в диалоге открытия файлов (компонент CommonDialog). Картинка масштабируется по размеру компонента Image, который занимает всю форму и изменяет размеры при изменении размеров формы. Смена файлов происходит при щелчке по изображению в зависимости от выбора кнопки на панели инструментов (следующий, предыдущий). Очень нужна помощь с написание этой программы.

Решение задачи: «Вывод графических файлов на компонент Image»

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Dim WithEvents Img As Image
  4. Dim WithEvents Tbr As VBControlExtender
  5. Dim WithEvents Lst As ListBox
  6. Dim Cdlg As Object
  7. Dim a As Single
  8. Private Const tbrButtonGroup = 2, tbrDefault = 0, tbrPressed = 1
  9.  
  10. Private Sub Form_Load()
  11.     Licenses.Add "MSComctlLib.ToolBar"
  12.     Licenses.Add "MSComDlg.CommonDialog"
  13.     Set Tbr = Me.Controls.Add("MSComctlLib.ToolBar", "tbr")
  14.     Set Img = Me.Controls.Add("VB.Image", "img")
  15.     Set Lst = Me.Controls.Add("VB.ListBox", "lst")
  16.     Set Cdlg = Me.Controls.Add("MSComDlg.CommonDialog", "cdlg")
  17.     Tbr.object.Buttons.Add(, , "Ïðåäûäóùèé", tbrButtonGroup).Value = tbrPressed
  18.     Tbr.object.Buttons.Add , , "Cëåäóþùèé", tbrButtonGroup
  19.     Tbr.object.Buttons.Add , , "ÄîáГ*ГўГЁГІГј", tbrDefault
  20.     Tbr.object.BorderStyle = vbFixedSingle
  21.     Img.Stretch = True
  22.     Tbr.Visible = True: Img.Visible = True: Lst.Visible = True
  23.     Cdlg.object.CancelError = True: Cdlg.object.DialogTitle = "ÄîáГ*ГўГЁГІГј èçîáðГ*æåГ*ГЁГҐ"
  24.     Cdlg.object.Filter = "ÈçîáðГ*æåГ*ГЁГї|*.bmp;*.jpg;*.jpeg;*.gif"
  25. End Sub
  26. Private Sub Update()
  27.     On Error GoTo ErrorImg
  28.     If Lst.ListIndex < 0 Then Exit Sub
  29.     Set Img.Picture = LoadPicture(Lst.List(Lst.ListIndex))
  30.     a = Img.Picture.Width / Img.Picture.Height
  31.     Call Form_Resize
  32.     Exit Sub
  33. ErrorImg:
  34.     MsgBox "ГЋГёГЁГЎГЄГ* îòêðûòèÿ èçîáðГ*æåГ*ГЁГї", vbExclamation
  35.     Lst.RemoveItem Lst.ListIndex
  36. End Sub
  37. Private Sub Form_Resize()
  38.     Dim w As Long, h As Long
  39.     If Me.ScaleWidth < 1000 Or (Me.ScaleHeight - Tbr.Height) < 1000 Then Exit Sub
  40.     Lst.Move Me.ScaleWidth - Me.ScaleWidth / 4, Tbr.Height, Me.ScaleWidth / 4, Me.ScaleHeight - Tbr.Height
  41.     If Not Img.Picture Is Nothing Then
  42.         If a > 1 Then w = Me.ScaleWidth - Lst.Width: h = w / a Else h = Me.ScaleHeight - Tbr.Height: w = h * a
  43.         Img.Move (Me.ScaleWidth - Lst.Width - w) \ 2, (Me.ScaleHeight - Tbr.Height - h) \ 2 + Tbr.Height, w, h
  44.     End If
  45. End Sub
  46. Private Sub Img_Click()
  47.     If Lst.ListCount Then
  48.         If Tbr.object.Buttons(1).Value Then
  49.             If Lst.ListIndex Then Lst.ListIndex = Lst.ListIndex - 1
  50.         Else
  51.             If Lst.ListIndex < Lst.ListCount - 1 Then Lst.ListIndex = Lst.ListIndex + 1
  52.         End If
  53.     End If
  54. End Sub
  55. Private Sub Lst_Click()
  56.     Update
  57. End Sub
  58. Private Sub Tbr_ObjectEvent(Info As EventInfo)
  59.     If Info.Name = "ButtonClick" Then
  60.         If Info.EventParameters.Item(0).Value.Index = 3 Then
  61.             On Error GoTo CancelDlg
  62.             Cdlg.object.ShowOpen
  63.             Lst.AddItem Cdlg.object.FileName
  64.             If Lst.ListCount = 1 Then Lst.ListIndex = 0
  65. CancelDlg:
  66.         End If
  67.     End If
  68. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы