Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вопрос про DBGrid 
V
    Опции темы
Palladin
Дата 14.4.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



Всем здравствуйте. Возникла проблемма, пока велосипед не изобретал, ибо надеюсь, что есть какоенить стандартное решение моей проблемы...
И так задача в данном случае такова: Есть DBGrid соединенный через ADO к таблице базы данных. Хочу избавиться от функции DBGrid.
Вообщем когда находимся в dbgride, к примеру кликнули по нему, при нажатии Tab или "стрелки вниз" создается новое пустое поле, вот именно от этого надо избавиться, ReadOnly ставить нельзя, т.к. идет обработка, отловить и заблочить так же нельзя, т.к. эти кнопки используются. Нужно отучить DBGrid от возможности создавать пустую строку...

Если кто сталкивался и решал подругому отпишите, если кто лазил в компонент и убирал это, тк же отпишите свои идеи, заранее спс, надеюсь на скорую помощь
С уважением Palladin



--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Akella
Дата 14.4.2009, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Palladin, уже раз 100 говорили, что работать желательно с набором данных (с датасетом), а не с гридом. Т.к. грид всего лишь отображает данные.

Добавлено через 31 секунду
Цитата(Palladin @  14.4.2009,  13:55 Найти цитируемый пост)
через ADO

а конкретнее
PM MAIL   Вверх
Palladin
Дата 14.4.2009, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



простой конект таблицы аксес, во всем этом деле используется ADOConnection, ADOTable, DataSource, отображаю таблицу в DBGrid

Добавлено через 4 минуты и 30 секунд
Датасет, дак датасет, чего кричать-то я в делфи ~2 не открывал
Ну дак Акелла, там есть чтонить что можно выставить в false или еще как, чтобы пустая строка не создавалась автоматом?

Добавлено через 10 минут и 2 секунды
Мне код не надо, в крайнем случае "велосипед" сделаю, уже пару идей есть, но хочу так сказать по "человечески"


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Данкинг
Дата 14.4.2009, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Palladin @  14.4.2009,  14:55 Найти цитируемый пост)
Вообщем когда находимся в dbgride, к примеру кликнули по нему, при нажатии Tab или "стрелки вниз" создается новое пустое поле, вот именно от этого надо избавиться,

Избавляйся. ДРКБ в помощь. smile Или "Delphi World" - в общем, где-то было.

Код

procedure TForm1.DBGrid2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 if (Key = VK_DOWN) then
begin
  adotable.DisableControls;
adotable.Next;
if adotable.EOF then
 Key := 0
else
adotable.Prior;
adotable.EnableControls;
end;
end;




Это сообщение отредактировал(а) Данкинг - 14.4.2009, 14:43


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Palladin
Дата 14.4.2009, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



2Данкинг как и всегда говорит кратко и понятно smile  Ок, пойду искать, найду если, то тут отпостирую


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Данкинг
Дата 14.4.2009, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Palladin, я нашёл уже. smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Palladin
Дата 14.4.2009, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 1
Всего: 17



Вот что удалось найти
Код

procedure TForm1.Tbable1BeforeInsert(DataSet: TDataSet);
 begin
   Abort; 
 end;

или

 procedure TForm8.DBGrid1KeyDown(Sender: TObject; var Key: Word;
   Shift: TShiftState);
 begin
   if (Key = VK_DOWN) then
   begin
     TTable1.DisableControls;
     TTable1Next;
     if TTable1.EOF then
       Key := 0
     else
       TTable1.Prior;
     TTable1.EnableControls;
   end;
 end;

Сейчас пойду опробую, заодно прикручу VK_TAB

Добавлено @ 14:53
2Данкинг покажи свой пример

Добавлено через 13 минут и 1 секунду
всем ищущим http://www.delphiworld.narod.ru/_comps_.html

Это сообщение отредактировал(а) Palladin - 14.4.2009, 15:02


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Kbl4AH
Дата 14.4.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Код

procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if ((Key = VK_DOWN) or ((Key = VK_TAB) and (DBGrid1.SelectedIndex = DBGrid1.Columns.Count - 1))) and 
    (ADODataSet1.RecNo = ADODataSet1.RecordCount) then
    Key := 0;
end;

Сорри, не заметил, что ADOTable используется...
Тогда нужно заменить ADODataSet1 на ADOTable1...

Это сообщение отредактировал(а) Kbl4AH - 14.4.2009, 15:40
PM MAIL ICQ   Вверх
Данкинг
Дата 14.4.2009, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Цитата(Palladin @  14.4.2009,  15:51 Найти цитируемый пост)
2Данкинг покажи свой пример

В смысле? Смотри мой пост отредактированный. Но там примерно то же. smile 



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0935 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.