С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/48: Рейтинг темы: голосов - 48, средняя оценка - 4.54
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
1

dgRowSelect

18.09.2008, 10:06. Показов 8875. Ответов 40
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброе утро!!!

Ребята, помогите, пожалуйста.

Написал такую строку...

DBGrid1->Options->dgMultiSelect=true;

А он мне пишет ошибку, вот какую...

[C++ Error] Unit3.cpp(120): E2288 Pointer to structure required on left side of -> or ->*.

В чём может быть причина и как правильно????????????

Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.09.2008, 10:06
Ответы с готовыми решениями:

для DBGrid1 Options->dgRowSelect что это за опция??? Объясните пожалуйста!!!
для DBGrid1 Options->dgRowSelect что это за опция??? Объясните пожалуйста!!!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
23.09.2008, 10:11 21
Author24 — интернет-сервис помощи студентам
ставлю галочку - всю строку выделяет, убираю - одно поле... просто ты не забывай еще и про начальную установку, когда окно только создается... а еще я встречал некоторые виды ДБГридов, где run-time настройки вообще игнорируются (TCRDBGrid например)
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
23.09.2008, 10:15  [ТС] 22
Не, нупрям мистика какая-то, 2 недели мучаюсь и не могу понять в чём причина.
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
23.09.2008, 10:16 23
объясни ты толком, у тебя такой код, как я привел - не работает? что-то я не понимаю никак...
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.09.2008, 09:12  [ТС] 24
Код
if (CheckBox2->Checked)

         {
                DBGrid1->Options=DBGrid1->Options<<dgRowSelect;
       else 
         {
               DBGrid1->Options=DBGrid1->Options>>dgRowSelect;
         }
}
Ошибка в синтаксисе:

[C++ Error] Unit3.cpp(128): E2054 Misplaced else

Помоему здесь и так понятно, что последняя скобка закрывающаяся, она должна стоять перед else. Как у Вас этот код мог вообще работать??????????? Сам не знаю.

Но даже когда я ставлю правильно скобку, то выделяется всё равно колонка, а не вся строка.

Не знаю как оно там у Вас работает....

Даю полностью код из DBGrida........
Код
//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm3::DBGrid1DrawColumnCell(TObject *Sender,
      const TRect &Rect, int DataCol, TColumn *Column,
      TGridDrawState State)
{
        int i = DBGrid1->DataSource->DataSet->RecNo;//Присвоение порядкового номера строке.

        if (CheckBox1->Checked==true)
{


                if (i % 2 == 1)//Красим не чётные строки
{

                DBGrid1->Canvas->Brush->Color=clSkyBlue;
                DBGrid1->Canvas->Font->Color=clBlack;
                DBGrid1->Canvas->FillRect(Rect);



                        if (Column->Alignment==taCenter)
{
                           DBGrid1->Canvas->TextOut(Rect.Right-18-
                           DBGrid1->Canvas->TextWidth(Column->Field->Text),
                           Rect.Top+2,Column->Field->Text); }

                                 else

                                 DBGrid1->Canvas->TextOut(Rect.Left+2,Rect.Top+2,Column->Field->Text);
}


                         if (CheckBox1->Checked==false)
{
                            DBGrid1->Canvas->Brush->Color=clWhite;
                            DBGrid1->Canvas->Font->Color=clBlack;
                            DBGrid1->Canvas->FillRect(Rect);}

}

//-------------------------------------------------------------------------//
//Выделение конкретной строки
                         if (DBGrid1->DataSource->DataSet->RecNo == 10)
{
                        DBGrid1->Canvas->Brush->Color=clGreen;
                        DBGrid1->Canvas->Font->Color=clWhite;
                        DBGrid1->Canvas->FillRect(Rect);

                         if (Column->Alignment==taCenter)
{
                         DBGrid1->Canvas->TextOut(Rect.Left+23-
                         DBGrid1->Canvas->TextWidth(Column->Field->Text),
                         Rect.Top+2,Column->Field->Text);
}

                                 else

                                        DBGrid1->Canvas->TextOut(Rect.Left+2,Rect.Top+2,Column->Field->Text);
}




}
//---------------------------------------------------------------------------
void __fastcall TForm3::CheckBox1Click(TObject *Sender)

{


    if (CheckBox1->State==cbChecked)

{
        DBGrid1->DataSource->DataSet->First();

           {  { keybd_event(VK_TAB, 0, 0 ,0);
                   keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP,0);}

                 {  keybd_event(VK_TAB, 0, 0 ,0);
                      keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP,0);}}}



           else if (CheckBox1->State==cbUnchecked)

{
              DBGrid1->DataSource->DataSet->Refresh();

              {  { keybd_event(VK_TAB, 0, 0 ,0);
                   keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP,0);}

                 {  keybd_event(VK_TAB, 0, 0 ,0);
                      keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP,0);}}}


            


}
//---------------------------------------------------------------------------

void __fastcall TForm3::CheckBox2Click(TObject *Sender)
{

  if (CheckBox2->Checked)

         {
                DBGrid1->Options=DBGrid1->Options<<dgRowSelect; }
       else
         {
                DBGrid1->Options=DBGrid1->Options>>dgRowSelect; }
















      /* if (CheckBox2->State==cbChecked)

         {
             DBGrid1->DataSource->DataSet->First();
                DBGrid1->Options=DBGrid1->Options<<dgRowSelect;
         {        keybd_event(VK_TAB, 0, 0 ,0);
                   keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP,0);}}


       else if (CheckBox2->State==cbUnchecked)

         {
             DBGrid1->DataSource->DataSet->Refresh();
               DBGrid1->Options=DBGrid1->Options>>dgRowSelect;
         {       keybd_event(VK_TAB, 0, 0 ,0);
                   keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP,0);}} */
}
//---------------------------------------------------------------------------
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.09.2008, 09:29 25
Цитата Сообщение от Sasha Посмотреть сообщение
Код
 
if (CheckBox2->Checked)
 
         {
                DBGrid1->Options=DBGrid1->Options<<dgRowSelect;
       else 
         {
               DBGrid1->Options=DBGrid1->Options>>dgRowSelect;
         }
}
Ошибка в синтаксисе:

[C++ Error] Unit3.cpp(128): E2054 Misplaced else
закрывающей скобки перед else не хватает...
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.09.2008, 09:35  [ТС] 26
Да, не хватает, это и так понятно.
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.09.2008, 09:56 27
я писал по памяти, а не копировал, вот и забыл ту скобку, я лично в проекте прилдепливал этот код и все отлично работает... не могу понять, почему у тебя не работает... слушай, закоментируй на время код прорисовки... просто чтобы только этот код с выделением остался, как тогда будет работать... что-то у меня подозрения возникают, но пока неясные
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.09.2008, 10:53  [ТС] 28
Ладно, с кем небывает!!!!!!!!!!!! Не вижу разницы в комментариях в выделениях строк цветом потому-что, цвета выделяются в CheckBox1, а dgRowSelect в CheckBox2 работает отдельно. Так вот проблемы в CheckBox2..............
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.09.2008, 10:58 29
ты не понял, просто закоментируй DBGrid1DrawColumnCell, мне кажется, что из-за постоянных перерисовок у тебя и настройки не переключается
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
24.09.2008, 11:18  [ТС] 30
Не-не, убирал я все прорисовки, оставлял я только один CheckBox2, ничего не получается - это уже пройденный этап.
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
24.09.2008, 11:44 31
я в замешательстве, ладно бы и у меня такое не выходило, но ведь работает... там вообще написано, что опции эти работаю в design-time, но ведь свойства от редактирования не закрыты, значит и в run-time должно было
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.09.2008, 09:16  [ТС] 32
Даже я сделал с новым DBGrid, для проверки я добавил там 1 checkbox и вписал туда Ваш код и всё равно выделяется только одна колонка, а не вся строка..................

Ну, прям нонсенс какой-то...............!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.09.2008, 09:18 33
это компонент глючит... у меня есть куча вариантов дбгридов и у каждого есть свои заморочки... но я впервые встречаю такую ситуацию...
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.09.2008, 09:21  [ТС] 34
ЧТО ДЕЛАТЬ???????????? Менять кампилятор?????
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.09.2008, 09:24 35
попробуй переставить билдер, может его попустит...
0
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
25.09.2008, 09:26  [ТС] 36
Делал это 3 раза!!!!!!!!!!!
0
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
25.09.2008, 14:21 37
ты знаешь, у меня уже моск кипит, в дельфи работает, а вот в билдере я не могу никак повторить вчерашний успех, тоже не устанавливается ничего теперь, слушай, может тебе не сушить мозг, а взять rx компоненты, там есть дбгрид, в котором это все точно работает, в проекте у меня одном я именно его использую...
0
1 / 1 / 0
Регистрация: 03.05.2015
Сообщений: 2
04.02.2019, 02:29 38
Надо так:
C++
1
DBGrid1->Options = TDBGridOptions(DBGrid1->Options) << dgEditing;
0
Модератор
9646 / 6253 / 2426
Регистрация: 21.01.2014
Сообщений: 26,674
Записей в блоге: 3
04.02.2019, 03:08 39
MaksimusCorvus, Вы знаете, я думаю, они за 10 прошедших лет уже разобрались...
Тем более, что это не так делается:
C++
1
DBGrid1->Options = TDBGridOptions() << dgRowSelect;
0
1 / 1 / 0
Регистрация: 03.05.2015
Сообщений: 2
04.02.2019, 23:31 40
Я видел, что это было давно, случайно столкнулся пока сам делал. Вдруг кто будет читать как я, вот и решил оставить. Не злись. Но по твоему коду, пропадает сетка в DBGrid.
1
04.02.2019, 23:31
Ответ Создать тему
Новые блоги и статьи
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта Gowin Eda и снимок. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
Как на Python создать нейросеть для решения задач
InfoMaster 12.01.2025
В контексте стремительного развития современных технологий особое внимание уделяется таким инструментам, как нейросети. Эти структуры, вдохновленные биологическими нейронными сетями, используются для. . .
Как создать нейросеть для генерации картинок на Python
InfoMaster 12.01.2025
Генерация изображений с помощью искусственных нейронных сетей стала одним из наиболее захватывающих направлений в области компьютерного зрения и машинного обучения. В этой статье мы рассмотрим. . .
Создание нейросети для генерации текста на Python
InfoMaster 12.01.2025
Нейросети, или искусственные нейронные сети, представляют собой модели машинного обучения, вдохновленные работой человеческого мозга. Они состоят из множества взаимосвязанных узлов, или "нейронов",. . .
Как создать нейросеть распознавания изображений на Python
InfoMaster 12.01.2025
Введение в распознавание изображений с помощью нейросетей Распознавание изображений с помощью нейронных сетей стало одним из самых впечатляющих достижений в области искусственного интеллекта. Эта. . .
Основы искуственного интеллекта
InfoMaster 12.01.2025
Искусственный интеллект (ИИ) представляет собой одну из наиболее динамично развивающихся областей современной науки и технологий. В широком смысле под искусственным интеллектом понимается способность. . .
Python и нейросети
InfoMaster 12.01.2025
Искусственные нейронные сети стали неотъемлемой частью современных технологий, революционизировав множество областей - от медицинской диагностики до автономных транспортных средств. Python, благодаря. . .
Python в машинном обучении
InfoMaster 12.01.2025
Python стал неотъемлемой частью современного машинного обучения, завоевав позицию ведущего языка программирования в этой области. Его популярность обусловлена несколькими ключевыми факторами, которые. . .
Создание UI на Python с TKinter
InfoMaster 12.01.2025
TKinter — это одна из наиболее популярных библиотек для создания графических интерфейсов пользователей (GUI) в языке программирования Python. TKinter входит в стандартную библиотеку Python, что. . .
HTML5 в разработке мобильных приложений
InfoMaster 12.01.2025
Введение: Обзор роли HTML5 в мобильной разработке В современном мире мобильных технологий HTML5 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru