powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ComponentOne
17 сообщений из 17, страница 1 из 1
ComponentOne
    #33540361
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь знает как обратится непосредственно к определенной строке TDBGrid'а. Необходимо, при условие содержания одной из ячеек строки менять цвет шрифта всей строки.
Заранее спасибо.
...
Рейтинг: 0 / 0
ComponentOne
    #33540934
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде в Туториал часть 11 описывается "колорирование"
...
Рейтинг: 0 / 0
ComponentOne
    #33540959
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для того чтобы окрашивать строки служит событие FetchRowStyle
К определенной строке грида лучше не обращаться т.к. это будет строка относительно верхней (нулевой) строки.
Надо еще одно знать: привязанный к рекордсету TDBGrid держит не все данные, а только буфер из числа строк кратных 20-ти.
Поэтому для окраски FetchRosStyle надо пользоваться рекордсетом (или другим его источником данных).

См.
Tutorial 11 - Using Styles to Highlight Related Data
...
Рейтинг: 0 / 0
ComponentOne
    #33541441
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
а не у кого примеров нет других, а то конкретно этот пример не рботает у меня, но разбираюсь потихоньку.
...
Рейтинг: 0 / 0
ComponentOne
    #33541520
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторPrivate Sub GridIn_FetchRowStyle(ByVal Split As Integer, Bookmark As Variant, ByVal RowStyle As TrueOleDBGrid80.StyleDisp)

End Sub


при вызове события FetchRowStyle у меня по умолчанию прописоваются отличные от примера в туториале параметры.

авторPrivate Sub C1TrueDBGrid1_FetchRowStyle(ByVal sender As Object, ByVal e As C1.Win.C1TrueDBGrid.FetchRowStyleEventArgs) Handles C1TrueDBGrid1.FetchRowStyle

когда я их меняю на те, то у меня выскакивает ошибка: "user-defined type not defined"

может нужно еще подключить какие-нить библиотеки?
...
Рейтинг: 0 / 0
ComponentOne
    #33543056
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишете на VB.NET ?
Вам надо этот вопрос задать в форуме VB.NET.
Я, к сожалению, не могу ответить на этот вопрос. Т.к. студию2003 снес вместе с C1. А для студии2005 у меня нет С1. И открыть старый проект (где есть пример окраски строк и ячеек) не могу.
А что в хелпе п С1 нет соответствующего примера?
...
Рейтинг: 0 / 0
ComponentOne
    #33544379
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет просто, VB, а там похоже пример всее-таки для vb.net :(
...
Рейтинг: 0 / 0
ComponentOne
    #33547258
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще один вопросик возник:

когда настраиваю колонки(columns(00) и т. д.), ставлю там Caption - Имя, которое хочу видеть, а в DataField, ставлю название этой колонки в базе, но при запуске все равно показываются названия из базы. Подскажите, плз, может там еще чего нада поставить.
...
Рейтинг: 0 / 0
ComponentOne
    #33547962
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такое случается после выполнения команды ClearFields.
Иначе колонки даже не добавятся (недостающие)
...
Рейтинг: 0 / 0
ComponentOne
    #33548546
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff

Спасибо огромное, я б сам не додумался. А как тогда очищать поля, если не ClearFields?
...
Рейтинг: 0 / 0
ComponentOne
    #33548839
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо делать одно из двух:
- В дизайнере создать все нужные колонки.
- В коде программы, после присвоения рекордсета гриду, всем колонкам дать кэпшены.

Можно автоматизировать второй вариант, но принцип останется.
...
Рейтинг: 0 / 0
ComponentOne
    #33549282
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если ставить в ячейку CheckBox, то он только отображает значение(0 или 1), соответсвующей ей ячейки в базе. А как заставить его динамично изменять значения в БД? Или нельзя?
...
Рейтинг: 0 / 0
ComponentOne
    #33549343
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizzzА как заставить его динамично изменять значения в БД? Или нельзя?О чем речь?
Если надо в качестве Boolean-поля использовать Int, то комбинируем два свойства объекта ValueItems колонки:
Presentatioan и Translate
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   Dim vi As TrueOleDBGrid80.ValueItem
   With Grid1.Columns("хххх").ValueItems
      .Presentation = dbgCheckBox
      .Translate = True
      Set vi = New TrueOleDBGrid80.ValueItem
      vi.DisplayValue = True
      vi.Value =  1 
      .Add vi
      vi.DisplayValue = False
      vi.Value =  2 
      .Add vi
   End With
...
Рейтинг: 0 / 0
ComponentOne
    #33549358
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ps
На всякий случай:
Вместо двойки надо ноль поставить.
...
Рейтинг: 0 / 0
ComponentOne
    #33549841
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне нужно сделать так, чтобы когда я ставлю чекбокс, то сразу же в ЭТОТ МОМЕНТ значение в базе менялось на 1, и на 0, соответственно, когда снимаю галочку.
Спасибо еще раз, теперь все более менее понятно, но в БД значение все равно пока не меняется.
...
Рейтинг: 0 / 0
ComponentOne
    #33550166
strizzz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
даже нет, значение всё таки меняется, только после закрытия приложения. вообщем проблема остается в том, как заставить меня значение именно в момент переключения чекбокса
...
Рейтинг: 0 / 0
ComponentOne
    #33550868
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грид возвращает знаечения в источник данных (recordset) после перехода на другую строку.
Чтобы не ждать перехода на другую строку надо выполнить Update
Чтобы так реагировать лишь на одно поле надо так сделать:
Private Sub Grid1_AfterColEdit(ByVal ColIndex As Integer)
If ColIndex = 0 Then Grid1.Update
End Sub
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ComponentOne
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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