C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
ButtonStyle в DBGridEh
laifik
  Отправлено: 24.11.2004, 11:47


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Методом долгих поисков накопала.

DBGridEh1->Columns->Items[1]->ButtonStyle=Dbgrids::cbsAuto;


Всплывает предупреждение:"Assigning TColumnButtonStyle to TColumnButtonStyleEh". А как от этого избавиться? ohmy.gif
Guest
Отправлено: 24.11.2004, 12:09


Не зарегистрирован







Преобразовать тип / заблокировать сообщение / забыть smile.gif
laifik
Отправлено: 24.11.2004, 13:44


Дежурный стрелочник

Группа: Участник
Сообщений: 70



А как это сделать? Я с таким сталкиваюсь впервые. cool.gif
Konstantine
Отправлено: 24.11.2004, 14:12


Мастер участка

Группа: Модератор
Сообщений: 545



преобразовывать тип не нада... а нада в хелпе порыться и узнать что такое первое, а что такое второе..
laifik
Отправлено: 24.11.2004, 14:25


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Уж где я только не рылась. Поверьте, по всему Интернету практически по этому вопросу нет никакой информации. Впору кричать "SOS"!
Я уже столько намучилась, что мечтаю о конкретном ответе, а не приблизительном. smile.gif
Работая с навигатором, фигурировала такая фраза:
CODE

Navigator_Calc->VisibleButtons=(Dbctrls::TButtonSet)btnShow;


Я попробовала по аналогии:
CODE

DBGridEh1->Columns->Items[6]->ButtonStyle=(Dbgrids::TColumnButtonStyleEh)cbsAuto;

И не проходит. Но может, кого-нибудь на какие-то мысли натолкнет? Ошибка такая, что TColumnButtonStyleEh не член Dbgrids.


Отредактировано laifik — 24/11/2004, 16:11
Konstantine
Отправлено: 24.11.2004, 15:28


Мастер участка

Группа: Модератор
Сообщений: 545



Эх, ладна, дома посмотрю, и если до завтра никто ни ответит — напишу....
laifik
Отправлено: 24.11.2004, 15:39


Дежурный стрелочник

Группа: Участник
Сообщений: 70



А я уже сама догадалась! Видимо, от безисходности...

Grid_Crew->Columns->Items[6]->ButtonStyle=TColumnButtonStyleEh(Dbgrids::cbsAuto);

Да, а форум, действительно, вяло работает. Или всем все понятно?
Все равно, спасибо за помощь. Если не трудно, посмотрите мой второй вопрос по Footer.
smile.gif
Gedeon
Отправлено: 24.11.2004, 16:49


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (laifik @ 24/11/2004, 16:41)
Grid_Crew->Columns->Items[6]->ButtonStyle=TColumnButtonStyleEh(Dbgrids::cbsAuto);

Да, а форум, действительно, вяло работает. Или всем все понятно?

Ну и что? Вы привели тип к TColumnButtonStyleEh, что вам и посоветовали в первом же ответе, а раз уж тип преобразовываете, то уж тогда так пишите:
CODE

DBGridEh1->Columns->Items[1]->ButtonStyle = (TColumnButtonStyleEh)Dbgrids::cbsAuto;

При этом Вы добились того, что компилятор просто перестал выдавать предупреждение, с таким же успехом можно его либо просто игнорировать, либо подавить Warning.
Работать будет все правильно, только такие вещи могут привести к очень неожиданным результатам, кто знает кому как нравится называть значения своих свойств и у кого какую смысловую нагрузку они несут и как это реализовано.

ЗЫ значение cbsAuto является для колонок EhLib используемым по умолчанию — это 1, а 2 — мне что-то с трудом представляется необходимость менять стиль кнопок в рантайм, что мешает их выставить в дизайне?

Отредактировано Gedeon — 24/11/2004, 17:58
Konstantine
Отправлено: 24.11.2004, 17:56


Мастер участка

Группа: Модератор
Сообщений: 545



в рантайме нада если колонки нада добавлять в рантайме...
Konstantine
Отправлено: 25.11.2004, 09:21


Мастер участка

Группа: Модератор
Сообщений: 545



дома пробовал и прошло
CODE
DBGridEh1->Columns->Items[1]->ButtonStyle=cbsAuto;
без проблем...
laifik
Отправлено: 25.11.2004, 09:34


Дежурный стрелочник

Группа: Участник
Сообщений: 70



QUOTE (Gedeon @ 24/11/2004, 17:51)
ЗЫ значение cbsAuto является для колонок EhLib используемым по умолчанию — это 1, а 2 — мне что-то с трудом представляется необходимость менять стиль кнопок в рантайм, что мешает их выставить в дизайне?

Тут Вы совершенно правы. И в данном куске программы я исключила строку на задание ButtonStyle. Но мне, как всегда, хочется докопаться до истины. Наверное, с такой ситуацией не раз еще придется столкнуться. Это и Ворда касается. Там тоже часто встречается двусмысленность.
Поэтому, буду очень благодарна, если вопрос доведем до конца.
QUOTE

DBGridEh1->Columns->Items[1]->ButtonStyle=cbsAuto;

Что касается этого кода, то у меня он не идет. Конечно, трудно понять, не имея перед собою программу. Есть тонкости, в которых можно разобраться, только видя весь код. Но программа огромная, нет смысла в нее посвящать участников форума. Чисто судостроительный расчет. Лучше изобрести универсальный код, который при абгрейте библиотеки не пострадает. smile.gif
Konstantine
Отправлено: 25.11.2004, 12:11


Мастер участка

Группа: Модератор
Сообщений: 545



стоп... не такая строка...
CODE
DBGrid1->Columns->Items[1]->ButtonStyle=cbsAuto;
sad.gif ну перепутал немного... *мило шаркает ножкой* smile.gif
laifik
Отправлено: 25.11.2004, 13:22


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Вот именно. Наверное, для простого грида нет проблем. Свойство родное. А вот хотелось бы с библиотекой разобраться.
Излазала вдоль и поперек справку по Ehlib. Хоть бы один код был для примера. Сплошной текст. А пример, который2 поставляется с библиотекой — сам черт ногу сломит. Супер профессиональный, не для простых ламеров.
AVC
Отправлено: 25.11.2004, 13:57


Ветеран

Группа: Модератор
Сообщений: 1583



А по H файлам? Там много чего полезного можно найти smile.gif
Konstantine
Отправлено: 25.11.2004, 14:14


Мастер участка

Группа: Модератор
Сообщений: 545



если ТЫ возле компилятора, то попробуй найти в h-никах тип TColumnButtonStyleEh (скорее всего это enum) и посмотри, какие константы входят в него...

Отредактировано Konstantine — 25/11/2004, 15:18
Gedeon
Отправлено: 25.11.2004, 14:30


Ветеран

Группа: Модератор
Сообщений: 1742



Вот решение проблемы, явно указываем пространство имен EhLib

CODE

DBGridEh1->Columns->Items[1]->ButtonStyle=Dbgrideh::cbsAuto;


И компилятор возьмет именно то, что мы подразумевали без всякого приведения.

Только не понятно почему компилятор выдал такое сообщение об ошибке:
QUOTE

[C++ Error] U_MainForm.cpp(16): E2015 Ambiguity between 'cbsAuto' and 'Dbgrids::cbsAuto'

а не
QUOTE

[C++ Error] U_MainForm.cpp(16): E2015 Ambiguity between 'Dbgrideh::cbsAuto' and 'Dbgrids::cbsAuto'
laifik
Отправлено: 25.11.2004, 15:39


Дежурный стрелочник

Группа: Участник
Сообщений: 70



QUOTE (Konstantine @ 25/11/2004, 15:16)
если ТЫ возле компилятора, то попробуй найти в h-никах тип TColumnButtonStyleEh (скорее всего это enum) и посмотри, какие константы входят в него...

enum TColumnButtonStyleEh { cbsAuto, cbsEllipsis, cbsNone, cbsUpDown, cbsDropDown };
laifik
Отправлено: 25.11.2004, 15:45


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Gedeon, Вы волей-неволей подсказали решение.
CODE

Grid_Crew->Columns->Items[6]->ButtonStyle=Dbgrideh::cbsAuto;

Dbgrideh, а не Dbgrids.[COLOR=red]
Прошло без всяких предупреждений.
Надеюсь, сейчас все правильно? Огромное спасибо за помощь! smile.gif
AVC
Отправлено: 25.11.2004, 16:21


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE (laifik @ писала)

Gedeon, Вы волей-неволей подсказали решение.
CODE
Grid_Crew->Columns->Items[6]->ButtonStyle=Dbgrideh::cbsAuto;

Dbgrideh, а не Dbgrids.[COLOR=red]
Прошло без всяких предупреждений.

За незнание способа разрешения конфликта имен вы поплатились долгим "излазанием вдоль и поперек справки по Ehlib" smile.gif . Теперь понятно что вы написали и как поступать в подобных случаях ?
laifik
Отправлено: 25.11.2004, 16:56


Дежурный стрелочник

Группа: Участник
Сообщений: 70



Да, это для меня хороший урок. Но у меня ранее конфликтов имен не было. Пока не стала создавать компоненты "ручками".
AVC
Отправлено: 25.11.2004, 17:22


Ветеран

Группа: Модератор
Сообщений: 1583



Удачи smile.gif smile.gif smile.gif

Вернуться в Вопросы программирования в C++Builder