1 | |
dgRowSelect18.09.2008, 10:06. Показов 8875. Ответов 40
Метки нет (Все метки)
Доброе утро!!!
Ребята, помогите, пожалуйста. Написал такую строку... DBGrid1->Options->dgMultiSelect=true; А он мне пишет ошибку, вот какую... [C++ Error] Unit3.cpp(120): E2288 Pointer to structure required on left side of -> or ->*. В чём может быть причина и как правильно???????????? Заранее спасибо.
0
|
18.09.2008, 10:06 | |
Ответы с готовыми решениями:
40
для DBGrid1 Options->dgRowSelect что это за опция??? Объясните пожалуйста!!! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
23.09.2008, 10:11 | 21 |
ставлю галочку - всю строку выделяет, убираю - одно поле... просто ты не забывай еще и про начальную установку, когда окно только создается... а еще я встречал некоторые виды ДБГридов, где run-time настройки вообще игнорируются (TCRDBGrid например)
0
|
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
23.09.2008, 10:16 | 23 |
объясни ты толком, у тебя такой код, как я привел - не работает? что-то я не понимаю никак...
0
|
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 |
0
|
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
24.09.2008, 09:56 | 27 |
я писал по памяти, а не копировал, вот и забыл ту скобку, я лично в проекте прилдепливал этот код и все отлично работает... не могу понять, почему у тебя не работает... слушай, закоментируй на время код прорисовки... просто чтобы только этот код с выделением остался, как тогда будет работать... что-то у меня подозрения возникают, но пока неясные
0
|
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
|
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
24.09.2008, 11:44 | 31 |
я в замешательстве, ладно бы и у меня такое не выходило, но ведь работает... там вообще написано, что опции эти работаю в design-time, но ведь свойства от редактирования не закрыты, значит и в run-time должно было
0
|
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
|
Почетный модератор
8784 / 2537 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
|
|
25.09.2008, 09:24 | 35 |
попробуй переставить билдер, может его попустит...
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 | |||||
Надо так:
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 стал ключевым инструментом для разработки кроссплатформенных приложений. Эта технология произвела. . .
|