Вывод графических файлов на компонент Image - VB (59944)
Формулировка задачи:
Вывод графических файлов на компонент Image. Файлы выбираются из списка. Список файлов формируется в диалоге открытия файлов (компонент CommonDialog). Картинка масштабируется по размеру компонента Image, который занимает всю форму и изменяет размеры при изменении размеров формы. Смена файлов происходит при щелчке по изображению в зависимости от выбора кнопки на панели инструментов (следующий, предыдущий).
Очень нужна помощь с написание этой программы.
Решение задачи: «Вывод графических файлов на компонент Image»
textual
Листинг программы
Option Explicit Dim WithEvents Img As Image Dim WithEvents Tbr As VBControlExtender Dim WithEvents Lst As ListBox Dim Cdlg As Object Dim a As Single Private Const tbrButtonGroup = 2, tbrDefault = 0, tbrPressed = 1 Private Sub Form_Load() Licenses.Add "MSComctlLib.ToolBar" Licenses.Add "MSComDlg.CommonDialog" Set Tbr = Me.Controls.Add("MSComctlLib.ToolBar", "tbr") Set Img = Me.Controls.Add("VB.Image", "img") Set Lst = Me.Controls.Add("VB.ListBox", "lst") Set Cdlg = Me.Controls.Add("MSComDlg.CommonDialog", "cdlg") Tbr.object.Buttons.Add(, , "Ïðåäûäóùèé", tbrButtonGroup).Value = tbrPressed Tbr.object.Buttons.Add , , "Cëåäóþùèé", tbrButtonGroup Tbr.object.Buttons.Add , , "ÄîáГ*ГўГЁГІГј", tbrDefault Tbr.object.BorderStyle = vbFixedSingle Img.Stretch = True Tbr.Visible = True: Img.Visible = True: Lst.Visible = True Cdlg.object.CancelError = True: Cdlg.object.DialogTitle = "ÄîáГ*ГўГЁГІГј èçîáðГ*æåГ*ГЁГҐ" Cdlg.object.Filter = "ÈçîáðГ*æåГ*ГЁГї|*.bmp;*.jpg;*.jpeg;*.gif" End Sub Private Sub Update() On Error GoTo ErrorImg If Lst.ListIndex < 0 Then Exit Sub Set Img.Picture = LoadPicture(Lst.List(Lst.ListIndex)) a = Img.Picture.Width / Img.Picture.Height Call Form_Resize Exit Sub ErrorImg: MsgBox "ГЋГёГЁГЎГЄГ* îòêðûòèÿ èçîáðГ*æåГ*ГЁГї", vbExclamation Lst.RemoveItem Lst.ListIndex End Sub Private Sub Form_Resize() Dim w As Long, h As Long If Me.ScaleWidth < 1000 Or (Me.ScaleHeight - Tbr.Height) < 1000 Then Exit Sub Lst.Move Me.ScaleWidth - Me.ScaleWidth / 4, Tbr.Height, Me.ScaleWidth / 4, Me.ScaleHeight - Tbr.Height If Not Img.Picture Is Nothing Then If a > 1 Then w = Me.ScaleWidth - Lst.Width: h = w / a Else h = Me.ScaleHeight - Tbr.Height: w = h * a Img.Move (Me.ScaleWidth - Lst.Width - w) \ 2, (Me.ScaleHeight - Tbr.Height - h) \ 2 + Tbr.Height, w, h End If End Sub Private Sub Img_Click() If Lst.ListCount Then If Tbr.object.Buttons(1).Value Then If Lst.ListIndex Then Lst.ListIndex = Lst.ListIndex - 1 Else If Lst.ListIndex < Lst.ListCount - 1 Then Lst.ListIndex = Lst.ListIndex + 1 End If End If End Sub Private Sub Lst_Click() Update End Sub Private Sub Tbr_ObjectEvent(Info As EventInfo) If Info.Name = "ButtonClick" Then If Info.EventParameters.Item(0).Value.Index = 3 Then On Error GoTo CancelDlg Cdlg.object.ShowOpen Lst.AddItem Cdlg.object.FileName If Lst.ListCount = 1 Then Lst.ListIndex = 0 CancelDlg: End If End If End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д