Появление картинки при нажатии в листбоксе

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
bosscs
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 28.02.2010 (Вс) 21:27

Появление картинки при нажатии в листбоксе

Сообщение bosscs » 28.02.2010 (Вс) 21:30

Вот есть программа такого типа:
http://img22.*** imageshack.us — идиотская служба, не пользуйтесь ею ***/img22/5786/56025916.jpg
Нужно сделать, что бы при нажатии на запись в листбоксе появлялась картинка. Как это сделать?
Я не знаю как написать, что бы при клике на надпись1 выводилась картинка1 и т.д

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Появление картинки при нажатии в листбоксе

Сообщение Viper » 28.02.2010 (Вс) 23:31

Неужели даже идеи нет? Это же элементарно.
Весь мир матрица, а мы в нем потоки байтов!

ExiliM
Новичок
Новичок
Аватара пользователя
 
Сообщения: 47
Зарегистрирован: 22.02.2010 (Пн) 4:41

Re: Появление картинки при нажатии в листбоксе

Сообщение ExiliM » 01.03.2010 (Пн) 4:18

на форме листбокс и текстбокс

код:


Код: Выделить всё
Private Sub Form_Load()
List1.AddItem ("123")
List1.AddItem ("1234")
List1.AddItem ("12345")
End Sub

Private Sub List1_Click()

Select Case List1.Text
   
    Case "123": Text1.Text = "321"
    Case "1234": Text1.Text = "4321"
    Case "12345": Text1.Text = "54321"
 
End Select

End Sub


надеюсь с картинкой сам догадаешься.)

ладно. вот.
на форме вместо текста пикчербокс

Код: Выделить всё
Picture1.Picture = LoadPicture("c:\tratata.jpg")

Dmitriy2003
Постоялец
Постоялец
 
Сообщения: 690
Зарегистрирован: 27.05.2003 (Вт) 22:47
Откуда: Deutschland

Re: Появление картинки при нажатии в листбоксе

Сообщение Dmitriy2003 » 01.03.2010 (Пн) 5:03

ExiliM писал(а):
Код: Выделить всё
Select Case List1.Text
   
    Case "123": Text1.Text = "321"
    Case "1234": Text1.Text = "4321"
    Case "12345": Text1.Text = "54321"

End Select

Код: Выделить всё
01 Acura
02 Alfa Romeo
03 Alpina
04 Asia Motors
05 Aston Martin
06 Audi
07 Austin
08 Austin Healey
09 Bentley
10 BMW
11 Borgward
12 Brilliance
13 Bugatti
14 Buick
15 Cadillac
16 Caterham
17 Chevrolet
18 Chrysler
19 Citroën
20 Cobra
21 Corvette
22 Dacia
23 Daewoo
24 Daihatsu
25 DeTomaso
26 Dodge
27 Ferrari
28 Fiat
29 Ford
30 GMC
31 Holden
32 Honda
33 Hummer
34 Hyundai
35 Infiniti
36 Isuzu
37 Jaguar
38 Jeep
39 Kia
40 Königsegg
41 Lada
42 Lamborghini
43 Lancia
44 Land Rover
45 Landwind
46 Lexus
47 Ligier
48 Lincoln
49 Lotus
50 Mahindra
51 Maserati
52 Maybach
53 Mazda
54 Mercedes-Benz
55 MG
56 MINI
57 Mitsubishi
58 Morgan
59 Nissan
60 NSU
61 Oldsmobile
62 Opel
63 Peugeot
64 Piaggio
65 Plymouth
66 Pontiac
67 Porsche
68 Proton
69 Renault
70 Rolls Royce
71 Rover
72 Saab
73 Santana
74 Seat
75 Škoda
76 Smart
77 Spyker
78 Ssangyong
79 Subaru
80 Suzuki
81 Talbot
82 Tata
83 Toyota
84 Trabant
85 Triumph
86 TVR
87 Volvo
88 VW
89 Wartburg
90 Wiesmann

предположим что это еще не полный список. Желаю удачи с Select Case :evil:

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Появление картинки при нажатии в листбоксе

Сообщение Денис » 01.03.2010 (Пн) 10:35

  • Сначала надо унифицировать список файлов, например: 1.jpg 2.jpg ... 127.jpg (хотя не факт, можно и с помощью функции Dir по маске вытягивать)
  • Затем нужно позаботиться о соответствии индексов в ЛистБоксе и номеров файлов.
  • Наконец, используем такой код: X.Picture = LoadPicture( "C:\Temp\" & CStr(ListIndex) & ".jpg")

Все эти шаманства используются если не используется БД. А БД наверное придется использовать, если список такой внушительный.

В сухом остатке получим примерно такой код (чтоб работало, нужны битмапы по указанному пути):
Код: Выделить всё
Option Explicit

Private Const MyPath As String = "d:\Temp\Bitmaps\Bitmap_"
Private WithEvents lstMaster As ListBox
Private WithEvents pbDetail As PictureBox

Private Sub Form_Load()

Set lstMaster = Me.Controls.Add("vb.listbox", "lstMaster")
Set pbDetail = Me.Controls.Add("vb.picturebox", "pbDetail")

With lstMaster
   .Top = 100
   .Left = 100
   .Width = 1500
   .Height = 2010
   .Visible = True
End With

With pbDetail
   .Top = 100
   .Left = 1700
   .Width = 1500
   .Height = 2010
   .Visible = True
End With

Dim i As Integer

   For i = 0 To 52
      lstMaster.AddItem ("Элемент " & CStr(i)), i
   Next

End Sub

Private Sub lstMaster_Click()

   Set pbDetail.Picture = LoadPicture(MyPath & CStr(lstMaster.ListIndex) & ".bmp")

End Sub
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Появление картинки при нажатии в листбоксе

Сообщение Saturn.65 » 17.04.2010 (Сб) 10:07

Картинки добавить в ресурсы. Конечно с обновлением ассортимента товаров надо будет переписывать код.
Зато никакой мороки с именем картинок не происходит. На выходе из ресурсов имя одинаковое -Рисунок.
Код: Выделить всё
Private Sub Command1_Click()
Dim B1() As Byte
      B1 = LoadResData(101, "CUSTOM")
      Dim FF1 As Integer
      FF1 = FreeFile
      Open App.Path & "\Рисунок.gif" For Binary As #FF1
         Put #FF1, , B1()
      Close #FF1
Picture1.Picture = LoadPicture(App.Path & "\Рисунок.gif")
End Sub

Private Sub Command2_Click()
Dim B11() As Byte
      B11 = LoadResData(102, "CUSTOM")
      Dim FF1 As Integer
      FF11 = FreeFile
      Open App.Path & "\Рисунок.gif" For Binary As #FF11
         Put #FF11, , B11()
      Close #FF11
Picture1.Picture = LoadPicture(App.Path & "\Рисунок.gif")
End Sub

Private Sub Form_Load()
List1.AddItem "Первый рисунок"
List1.AddItem "Второй рисунок"

End Sub

Private Sub List1_Click()
Select Case List1.Text
   
    Case "Первый рисунок": Text1.Text = "Хороший компьютер": Text2.Text = FormatCurrency("10000"): Command1_Click
    Case "Второй рисунок": Text1.Text = "Отличный комп": Text2.Text = FormatCurrency("20000"): Command2_Click
 
End Select
End Sub


Что хочу добавить...Программа для торговли должна быть удобной в смысле замены названий товаров, цен и т.д.
Значит, чтобы постоянно не менять код в exe файле нужно список товаров и цен писать в блокноте, что очень удобно. Картинки тоже придется хранить в папке с программой. Ведь не будешь же при поступлении нового товара постоянно добавлять изображение в ресурсы. Набросал другую программку с ini файлами.
Вложения
Появление картинки.rar
Пример
(18.81 Кб) Скачиваний: 138
Цены.rar
Небольшой пример
(20.9 Кб) Скачиваний: 126
Главное, ребята, сердцем не стареть...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 31

    TopList