powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / True DBGrid и вставка картинок.
10 сообщений из 10, страница 1 из 1
True DBGrid и вставка картинок.
    #33404796
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая ситуация, в гриде 2 колонки данных (1 - id, 2 - название документа с расширением).

1 проба.doc
2 текст.xls
3 презентация.ppt

Надо в зависимости от расширения документа ставить в 1 колонку значок док-та. делаю так:

Dim NS As New TrueOleDBGrid80.Style
If Right(TDBGrid1.Columns(2), 3) = "xls" Then NS.ForegroundPicture = frm_main.ImageList1.ListImages(7).Picture
If Right(TDBGrid1.Columns(2), 3) = "doc" Then NS.ForegroundPicture = frm_main.ImageList1.ListImages(8).Picture
If Right(TDBGrid1.Columns(2), 3) = "ppt" Then NS.ForegroundPicture = frm_main.ImageList1.ListImages(10).Picture
TDBGrid1.Columns(0).AddRegexCellStyle -1, NS, "[0-9]"

Это не работает, т.к. он применяет в зависимости от условия одну картинку на все строки. Мне надо, чтобы разные картинки. Подскажите, как это сделать?
...
Рейтинг: 0 / 0
True DBGrid и вставка картинок.
    #33407564
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых обработать событие FetchRowStyle, во вторых читать документацию по гриду, а так же смотреть примеры, которые идут в комплекте.
...
Рейтинг: 0 / 0
True DBGrid и вставка картинок.
    #33412686
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно конкретный пример по моему вопросу.
...
Рейтинг: 0 / 0
True DBGrid и вставка картинок.
    #33413080
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, плиз, приведите пример fetchrowstyle. очень нужно.
...
Рейтинг: 0 / 0
True DBGrid и вставка картинок.
    #33413261
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настенька, я взял Tutor10.vbp - учебный проект из справки по TDBGrid
Положил на форму ImageList, накидал в него картинок, и изменил код программы так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Form_Load()
   Dim vi As ValueItem
   Dim vis As ValueItems
   Dim img As ListImage
   Set vi = New ValueItem
   Set vis = TDBGrid1.Columns("How").ValueItems
   vis.Clear
   For Each img In ImageList1.ListImages
      vi.Value = vis.Count
      vi.DisplayValue = img.Picture
      vis.Add vi
   Next
   
    Adodc1.Refresh
    Set RSClone = Adodc1.Recordset.Clone()
End Sub
Теперь там отображаются картинки из ImageList
...
Рейтинг: 0 / 0
True DBGrid и вставка картинок.
    #33413355
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, этот код не катит. там картинки показываются в этой колонке. а мне надо, чтобы в другой колонке картинка отображалась в зависимости от значения в другой колонке.
...
Рейтинг: 0 / 0
True DBGrid и вставка картинок.
    #33413376
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает в обеих колонках держать одно и то же поле (с разными названиями)?
...
Рейтинг: 0 / 0
True DBGrid и вставка картинок.
    #33413407
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тот же пример. Добавил Unbound-колонку, она стоит под номером 2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
Private Sub Form_Load()
   Dim vi As ValueItem
   Dim vis As ValueItems
   Dim img As ListImage
   Set vi = New ValueItem
   Set vis = TDBGrid1.Columns( 2 ).ValueItems
   vis.Translate = True
   vis.CycleOnClick = True
   vis.Clear
   For Each img In ImageList1.ListImages
      vi.Value = vis.Count
      vi.DisplayValue = img.Picture
      vis.Add vi
   Next
    
    Adodc1.Refresh
    Set RSClone = Adodc1.Recordset.Clone()
End Sub

Private Sub TDBGrid1_UnboundColumnFetch(Bookmark As Variant, ByVal Col As Integer, Value As Variant)
    
    RSClone.Bookmark = Bookmark
   Select Case Col
      Case  0 
         Value = RSClone("FirstName") & " " & RSClone("LastName")
      Case  2 
         Value = RSClone("ContactType")
   End Select
End Sub
...
Рейтинг: 0 / 0
True DBGrid и вставка картинок.
    #33413421
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В вашем случае я бы каждой иконке в ImageList назначил Key совпадающий с расширением файла, а в UnboundColumnFetch записал следующее:
Код: plaintext
1.
2.
3.
4.
5.
6.
Private Sub TDBGrid1_UnboundColumnFetch(Bookmark As Variant, ByVal Col As Integer, Value As Variant)    
    RSClone.Bookmark = Bookmark
   Select Case Col
      Case cnstИконка
          Value = Right(TDBGrid1.Columns( 2 ),  3 )
   end select
end sub
...
Рейтинг: 0 / 0
True DBGrid и вставка картинок.
    #33413472
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, почти забыл,
Код: plaintext
1.
2.
3.
4.
   For Each img In ImageList1.ListImages
      vi.Value = img.Key
      vi.DisplayValue = img.Picture
      vis.Add vi
   Next
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / True DBGrid и вставка картинок.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]