Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / True DBGrid и вставка картинок. / 10 сообщений из 10, страница 1 из 1
29.11.2005, 08:25:28
    #33404796
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
Есть такая ситуация, в гриде 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
30.11.2005, 09:54:53
    #33407564
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
Во-первых обработать событие FetchRowStyle, во вторых читать документацию по гриду, а так же смотреть примеры, которые идут в комплекте.
...
Рейтинг: 0 / 0
02.12.2005, 07:42:21
    #33412686
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
А можно конкретный пример по моему вопросу.
...
Рейтинг: 0 / 0
02.12.2005, 11:05:04
    #33413080
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
Люди, плиз, приведите пример fetchrowstyle. очень нужно.
...
Рейтинг: 0 / 0
02.12.2005, 11:59:21
    #33413261
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
Настенька, я взял 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
02.12.2005, 12:20:21
    #33413355
Настенька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
Нет, этот код не катит. там картинки показываются в этой колонке. а мне надо, чтобы в другой колонке картинка отображалась в зависимости от значения в другой колонке.
...
Рейтинг: 0 / 0
02.12.2005, 12:23:26
    #33413376
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
А что мешает в обеих колонках держать одно и то же поле (с разными названиями)?
...
Рейтинг: 0 / 0
02.12.2005, 12:33:26
    #33413407
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
Тот же пример. Добавил 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
02.12.2005, 12:37:40
    #33413421
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
В вашем случае я бы каждой иконке в 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
02.12.2005, 12:47:12
    #33413472
Worobjoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
True DBGrid и вставка картинок.
И, почти забыл,
Код: 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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / True DBGrid и вставка картинок. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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