Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Ehlib

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Открыть новую тему     Написать ответ в эту тему

Rounder2000

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще раз доброго дня знатокам.
Может на этот раз кто-нить снизойдет и ответит на мой предыдущий вопрос:
 
Подскажите плиз как сделать та, чтобы на Title колонки не сробатывало popupMenu
Т.е. оно должно срабатывать в любой точке грида кроме title.
Или на крайний случай, как получить имя колонки, на title которой было нажато правой клавишей мыши.
Спасибо.

Всего записей: 81 | Зарегистр. 19-01-2007 | Отправлено: 15:13 12-02-2007
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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;
 

 
Здесь попап вызывается только при клике на строке грида.

Всего записей: 3716 | Зарегистр. 19-04-2005 | Отправлено: 15:58 12-02-2007
Solnake



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
relictus
Задай в событиях на изменение этого поля чтобы сразу правило в датасете/базе
 
ПС. Не думаю что это правильное решение давать юзеру менять сразу в базе. ИМХО проблем потом больше чем выгоды будет.

Всего записей: 826 | Зарегистр. 16-09-2004 | Отправлено: 11:28 13-02-2007
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
relictus
какая СУБД? способ доступа?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 11:39 13-02-2007
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Solnake
Если ты имеешь в виду подобное:
Код:
procedure TDM.tblOrderInfoWARChange(Sender: TField);
begin
  tblOrderInfo.Post;
end;
 

то это не срабатывает так, как хотелось бы - CheckBox становится серым...
 
СУБД - DBISAM, база локальная

Всего записей: 3716 | Зарегистр. 19-04-2005 | Отправлено: 12:02 13-02-2007
DroN_S

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

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

это что за СУБД такая? первый раз слышу о такой?
почему именно эта СУБД?

Всего записей: 1143 | Зарегистр. 09-04-2005 | Отправлено: 12:52 13-02-2007
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DroN_S

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

_http://www.elevatesoft.com/dbisam_prodinfo.htm , легкая, быстрая - но имхо это уже не в рамках данного топика....

Всего записей: 3716 | Зарегистр. 19-04-2005 | Отправлено: 13:06 13-02-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
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;

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 13:54 13-02-2007
relictus

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RostY А ведь работает! Спасибо!
Фишка была в том, чтобы сделать булеву колонку рид-онли, ибо эвент OnCellClick не срабатывает, когда ячейка в режиме редактирования......

Всего записей: 3716 | Зарегистр. 19-04-2005 | Отправлено: 14:08 13-02-2007 | Исправлено: relictus, 14:11 13-02-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
relictus
срабатывает. причем 2 раза то есть срабатывает один раз, а второй раз сам грид обрабатывает клик

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 14:22 13-02-2007 | Исправлено: RostY, 14:23 13-02-2007
Jack4

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток. Вопросик у меня есть.
Использую 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

Всего записей: 3 | Зарегистр. 09-12-2006 | Отправлено: 18:28 15-02-2007
RostY



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
С фибами не работал, но думаю, что можно так же как и в стандартных Датасетах - в FieldsEditor'е датасета New Field -- Field type = ftLookup, задать Keyfields, dataset, Lookup Keys, Result field и все должно получиться.

Всего записей: 387 | Зарегистр. 11-01-2006 | Отправлено: 13:50 19-02-2007
sarssokol1

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравстввуйте.
Кучу инфы перерыл, но так и не понял...
Скажите, пожалуйста, можно ли сделать в DBGridEh Stfilter как в эксэле примерно? то естль что-то подобавлять в выпадающий список ну и т.д.

Всего записей: 2 | Зарегистр. 28-02-2007 | Отправлено: 17:55 04-03-2007
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sarssokol1

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

Смотри Demo1

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 10:30 05-03-2007
NTDim

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго всем дня.
Использую версию 4.0
При использовании такого кода
DBGridEh.Columns[2].FieldName := 'Description';
если изменить регистр букв имени поля, то поле соответсвенно не ищется.
А если скажем я не знаю заранее в каком регистре возвращается имя поля ?
Можно как то это обойти ?
По идее клиент не должен зависеть от регистра символов поля БД. Как это обойти ?

Всего записей: 16 | Зарегистр. 10-01-2006 | Отправлено: 13:14 12-03-2007
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Jack4
Или используй pFIBDataSet1.CreateLookUpField.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 13:23 12-03-2007
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго здравия!
Народ подскажите как можно опеределить что щелкнули/нажали на ячейке, воторая объединяет два или более столбца в режиме MultiTitle?

Код:
 
| Общий заголовок|
| поле 1  | поле 2  |
 

хотелось бы узнать что нажали мышкой на ячейку с текстом Общий заголовок.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 17:15 04-04-2007
Alkazar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Объясните пожалуйста по подробнее как сделать многостолбцовый Dropdown box в GridEh.  Демку смотрел, но сделать так же не получается...

Всего записей: 10 | Зарегистр. 17-12-2005 | Отправлено: 19:48 05-04-2007
Hazard



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

Всего записей: 749 | Зарегистр. 03-10-2001 | Отправлено: 15:06 17-04-2007
miracle8

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2 Hazard !
 
Используй OnCellClick:
1. проверяеш по какому полю идет клик
2. смотриш в набор данных на значение поля
3. если поле = 0 (нет галочки в ч.б.) то выдаеш МессагеБокс
4. если в МессагеБокс результат "Да" то:
4.1 изменяешь значения в наборе данных
4.2 запоминаешь позицию (по примари кею)
4.3 locate
Все хорошо работает

Всего записей: 4 | Зарегистр. 22-07-2006 | Отправлено: 11:20 18-04-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Ehlib


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru