Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Ehlib

Автор: Rounder2000
Дата сообщения: 12.02.2007 14:13
Еще раз доброго дня знатокам.
Может на этот раз кто-нить снизойдет и ответит на мой предыдущий вопрос:

Подскажите плиз как сделать та, чтобы на Title колонки не сробатывало popupMenu
Т.е. оно должно срабатывать в любой точке грида кроме title.
Или на крайний случай, как получить имя колонки, на title которой было нажато правой клавишей мыши.
Спасибо.
Автор: relictus
Дата сообщения: 12.02.2007 14:58
Rounder2000
Вот тебе ответ
Ставишь св-во AutoPopup своего меню в FALSE. Затем пишешь такой обработчик события MouseUp своего грида:


Код: procedure TForm1.DBGridEhOrderInfoMouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Var Coord: GridsEh.TGridCoord;
ACol, ARow: Integer;
APoint : TPoint;
Grid: TDBGridEh;
Begin
Grid:=TDBGridEh(Sender);
Coord := Grid.MouseCoord(X, Y);
ACol := Coord.X;
ARow := Coord.Y;

if Button = mbRight
then
if (ACol >= 0) and (ARow >=0 ) then
if ARow = 0 then Exit
else
begin
APoint := Grid.ClientToScreen(Point(X,Y));
Grid.PopUpMenu.Popup(APoint.X,APoint.Y);
end;
end;
Автор: Solnake
Дата сообщения: 13.02.2007 10:28
relictus
Задай в событиях на изменение этого поля чтобы сразу правило в датасете/базе

ПС. Не думаю что это правильное решение давать юзеру менять сразу в базе. ИМХО проблем потом больше чем выгоды будет.
Автор: DroN_S
Дата сообщения: 13.02.2007 10:39
relictus
какая СУБД? способ доступа?
Автор: relictus
Дата сообщения: 13.02.2007 11:02
Solnake
Если ты имеешь в виду подобное:
Код: procedure TDM.tblOrderInfoWARChange(Sender: TField);
begin
tblOrderInfo.Post;
end;
Автор: DroN_S
Дата сообщения: 13.02.2007 11:52

Цитата:
СУБД - DBISAM, база локальная

это что за СУБД такая? первый раз слышу о такой?
почему именно эта СУБД?
Автор: relictus
Дата сообщения: 13.02.2007 12:06
DroN_S

Цитата:
это что за СУБД такая?

_http://www.elevatesoft.com/dbisam_prodinfo.htm , легкая, быстрая - но имхо это уже не в рамках данного топика....
Автор: RostY
Дата сообщения: 13.02.2007 12:54
relictus
попробуй сделай булевую колонку ReadOnly и в гриде на OnCellClick:

procedure TForm1.DBGridEh1CellClick(Column: TColumnEh);
begin
if Column.fieldname<>'F2' then exit; //F2 - имя булевого поля
Table1.Edit;
if Table1.FieldByName('F2').IsNull then
Table1.FieldByName('F2').AsBoolean:=True
else
Table1.FieldByName('F2').AsBoolean:=not Table1.FieldByName('F2').AsBoolean;
Table1.Post;
end;
Автор: relictus
Дата сообщения: 13.02.2007 13:08
RostY А ведь работает! Спасибо!
Фишка была в том, чтобы сделать булеву колонку рид-онли, ибо эвент OnCellClick не срабатывает, когда ячейка в режиме редактирования......
Автор: RostY
Дата сообщения: 13.02.2007 13:22
relictus
срабатывает. причем 2 раза то есть срабатывает один раз, а второй раз сам грид обрабатывает клик
Автор: Jack4
Дата сообщения: 15.02.2007 17:28
Доброго времени суток. Вопросик у меня есть.
Использую FIBPlus v.6.45 и DBGridEh v.4.1, Interbase v.7.5
Так вот есть, две таблицы связанные ключевым полем.
Хочу сделать lookup-поле в DBGridEh.
Работает только когда вставляю MemTableEh и DataSetDriverEh, а без них ни в какую.
Так и должно быть или нет.
Можно ли, лишь способами FIBPLus создавать lookup поля через два pFIBDataSet
Бьюсь уже целый день, и никак!!!

Помогите плиз!!!


Добавлено:
Т.е. РАБОТАЮЩАЯ СХЕМА ТАКАЯ:
1) pFIBDatabase1 -> pFIBTransaction1 -> pFIBDataSet1 -> DataSetDriverEh1 ->
MemTableEh1 -> DataSource1 -> DBGridEh1
+
pFIBDatabase1 -> pFIBTransaction1 -> pFIBDataSet2 -> DataSource2



А ХОТЕЛОСЬ БЫ, ЧТОБЫ ТАК:

2) pFIBDatabase1 -> pFIBTransaction1 -> pFIBDataSet1 -> DataSource1 -> DBGridEh1
+
pFIBDatabase1 -> pFIBTransaction1 -> pFIBDataSet2 -> DataSource2
Автор: RostY
Дата сообщения: 19.02.2007 12:50
С фибами не работал, но думаю, что можно так же как и в стандартных Датасетах - в FieldsEditor'е датасета New Field -- Field type = ftLookup, задать Keyfields, dataset, Lookup Keys, Result field и все должно получиться.
Автор: sarssokol1
Дата сообщения: 04.03.2007 16:55
Здравстввуйте.
Кучу инфы перерыл, но так и не понял...
Скажите, пожалуйста, можно ли сделать в DBGridEh Stfilter как в эксэле примерно? то естль что-то подобавлять в выпадающий список ну и т.д.
Автор: vserd
Дата сообщения: 05.03.2007 09:30
sarssokol1

Цитата:
Скажите, пожалуйста, можно ли сделать в DBGridEh Stfilter как в эксэле примерно

Смотри Demo1
Автор: NTDim
Дата сообщения: 12.03.2007 13:14
Доброго всем дня.
Использую версию 4.0
При использовании такого кода
DBGridEh.Columns[2].FieldName := 'Description';
если изменить регистр букв имени поля, то поле соответсвенно не ищется.
А если скажем я не знаю заранее в каком регистре возвращается имя поля ?
Можно как то это обойти ?
По идее клиент не должен зависеть от регистра символов поля БД. Как это обойти ?
Автор: OXDBA
Дата сообщения: 12.03.2007 13:23
Jack4
Или используй pFIBDataSet1.CreateLookUpField.
Автор: vserd
Дата сообщения: 04.04.2007 16:15
Доброго здравия!
Народ подскажите как можно опеределить что щелкнули/нажали на ячейке, воторая объединяет два или более столбца в режиме MultiTitle?

Код:
| Общий заголовок|
| поле 1 | поле 2 |
Автор: Alkazar
Дата сообщения: 05.04.2007 18:48
Всем привет!
Объясните пожалуйста по подробнее как сделать многостолбцовый Dropdown box в GridEh. Демку смотрел, но сделать так же не получается...
Автор: Hazard
Дата сообщения: 17.04.2007 14:06
Ребята, туплю страшно, выручайте !!!

Имеем DBGridEh с Checkbox все хорошо нажимается/отрабатывает. Задача такова. Хочу ч.б. по щелчку на Unchecked Checkbox выводился тупой вопрос типа "Ты реально хочешь поставить тут флаг активности ?" Беру событие UpdateData проверяю Value вывожу MessageDlg считываю ответ кнопки, все чудно, НО КАК сдеалать ч.б., если пользователь нажал не на кнопку "Реально хочу" а на "Нет я дико туплю, не хочу я этот флаг ставить !" то Checkbox так и остался бы НЕАКТИВНЫМ, т.е. как был до срабатывания события ? CheckboxState := cbUnchecked; не прокатывает
Автор: miracle8
Дата сообщения: 18.04.2007 10:20
2 Hazard !

Используй OnCellClick:
1. проверяеш по какому полю идет клик
2. смотриш в набор данных на значение поля
3. если поле = 0 (нет галочки в ч.б.) то выдаеш МессагеБокс
4. если в МессагеБокс результат "Да" то:
4.1 изменяешь значения в наборе данных
4.2 запоминаешь позицию (по примари кею)
4.3 locate
Все хорошо работает
Автор: Hazard
Дата сообщения: 18.04.2007 10:53
miracle8
Все понял кроме 4.3 - что при locate checkbox сам перерисуется ?
Автор: Ruslang
Дата сообщения: 19.04.2007 14:58
Есть ли у Ehlib-а поддержка юникода?
Автор: RostY
Дата сообщения: 19.04.2007 16:19
нет пока
Автор: DanMadNomad777
Дата сообщения: 24.04.2007 10:57
народ как выловить момент начала инкрементного поиска и его конец.
Автор: RostY
Дата сообщения: 26.04.2007 16:50
Кто-то пробовал ставить Ehlib 4.2 на Delhi-5 ? У меня не получается.
Автор: RostY
Дата сообщения: 27.04.2007 10:46
и поиск по Ctrl+F не работает
Автор: PowerChute
Дата сообщения: 27.04.2007 11:16
RostY

Цитата:
и поиск по Ctrl+F не работает

Всё работает. Просто если у тебя включен инкрементный поиск, то для вызова формы поиска нужно дважды нажать Ctrl+F.
Автор: RostY
Дата сообщения: 27.04.2007 12:12
PowerChute
Хорошо тебе. у меня не работает -- вылазяет AV-шка. Что-то типа обращения к несушествующему объекту. тот же проект перекомпиленный с Ехлибом 3.6 нормально работает.

Добавлено:
на 4.1.4 работало, кажется, а на 4.2.28 дули
Автор: PowerChute
Дата сообщения: 28.04.2007 04:53
RostY
До вчерашнего дня у меня стояла версия 4.2.9, вчера поставил 4.2.12. Эффект один и тот же. Всё работает. Скинь мне, если не трудно, версию 4.2.20. Проверю в чем причина.
Автор: RostY
Дата сообщения: 28.04.2007 08:28
PowerChute
кажется понял почему не работало: поставил Ukrainian LangResources, а там карявые дфм-ки

Страницы: 1234567891011121314151617181920212223

Предыдущая тема: Конвертация char в ASCII код; c


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.