На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Обязательно указание:
1) типа базы данных (Paradox/Oracle/Interbase и т.п.)
2) способа доступа к базе данных (ODBC/ADO/DAO/BDE и т.п.)
Например: Paradox/BDE, MS Access/ADO

Наиболее часто задаваемые вопросы:
Базы даных для начинающих. Первые шаги. Понятие о BDE.
Переход на клиент-сервер и начала ADO
Приёмы работы с BLOB (OLE/Memo) полями
Запросы и параметры или как избавиться от многих проблем. Проблемы с датами в запросах.
Нужели мне нужно устанавливать BDE? (или почему не работает программа на другом компьютере)
Модераторы: Bas, Rouse_
  
> Отображение логического поля
    В таблице Access имеется поле - тип которого "логический" (Да/Нет). Ну так вот, после связи, содержимое поля отображается в DBGrid, как True или False.
    Access:
    Поле
    Да
    Да
    Нет
    Да
    Delphi:
    True
    True
    False
    True

    Как сделать, что бы содержимое отображалось: в место True - Да, а в место False - Нет. А еще лучше будет, если поле будет иметь вид как в Accesse, вместо True/False и Да/Нет, поле с галочкой если (Да/True) и без галочки если (Нет/False).
    Сообщение отредактировано: ~WARlock~ -
      в компоненте TADOTable (или TADOQuery) в нужной колонке делаешь настройки DisplayValues = 'Да;Нет'
        DBGridEh умеет казать галки на логические поля :)
          Цитата Игорь Акопян @
          DBGridEh умеет казать галки на логические поля :)

          ага только если мне не изменяет память, то если = null он пишет знак вопроса... Или я его с кем то путаю?
            Читать на Королевстве, Разноцветный DBGrid для начала. http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168

            Добавлено
            В дополнение это
            http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1193
            http://www.delphikingdom.com/asp/viewitem.asp?catalogid=667
                Paul_K - благодарю за инфу.

                Не запускается из-за ошибки.

                Выделяю DBGrid, перехожу на поле "Событие", затем в OnDrawColumnCell прописываю код, который показан в примере:э
                ExpandedWrap disabled
                  Var
                  Style:Integer;
                  begin
                      if Column.FieldName = 'Кол-во' then
                      if Column.Field.AsInteger > 0 then
                      Style := DFCS_CHECKED
                      else
                      Style := DFCS_BUTTONCHECK;
                      end;
                      DrawFrameControl(TDBGrid(Sender).Canvas.Handle, Rect, DFC_BUTTON, Style); // в этой строке ошибка
                  end;


                Ошибка - Declaration expected but identifier 'DrawFrameControl' found
                  Обратите внимание что пример в статье писан, если мне не изменяет память в пятой версии Delphi. Надо смотриеть что в Вашей версии соответствует этой функции. Опяить же надо обратить внимание на текс чуть ниже примера:

                  Цитата
                  Функция DrawFrameControl рисует на канве в определенном прямоугольнике стандартный windows-control, тип и состояние которого определяется передаваемыми параметрами.
                  ExpandedWrap disabled
                    BOOL DrawFrameControl(
                     
                        HDC hdc,    // handle to device context
                        LPRECT lprc,    // pointer to bounding rectangle
                        UINT uType, // frame-control type
                        UINT uState // frame-control state
                       );
                  Подробнее о том, что еще может рисовать эта функция, смотрите help по Windows API (или MSDN или win32.hlp в поставке Delphi) .


                  Добавлено
                  Вполне возможно, что данная функция устарела и есть ее аналог.
                  Сообщение отредактировано: Paul_K -
                    У меня Delphi 7.
                    Как быть в этой ситуации?
                      Почитать что написано в win32.hlp
                      Наверняка надо в USES подключить соответствующий модуль.
                      Может быть этот модуль даже название WinAPI имеет, а может и нет. сам посмотреть сейчас не имею возможности.
                      Сообщение отредактировано: Paul_K -
                        А без подключения модулей можно сделать, поле с галочками?
                          это зависит от компонента, если создатель его подумал за тебя то можно...
                          как уже сказали...
                          Цитата Игорь Акопян @
                          DBGridEh умеет казать галки на логические поля :)
                            Цитата vladimir74 @
                            если = null он пишет знак вопроса

                            врядли, скорее серый чекбокс состояние unknown. Что, кстати, логично ;)
                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0323 ]   [ 16 queries used ]   [ Generated: 19.09.24, 22:39 GMT ]