Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2009, 15:19   #1
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию Вызов DBEdit при двойёном щелчке мышью

Ещё раз доброго времени суток.
Необходимо чтобы при двойном щелчке мыши выходил/появлялся компонент DBEdit.После того, как я введу в него данные, нужно чтобы эти данные вводились именно в ту ячейку DBGrid1, по которой я дважды щелкал, чтобы появился DBEdit. Какую процедуру/свойство стоит использовать?
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 25.09.2009, 15:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
выходил/появлялся
Где? В каком месте?
И почему не воспользоваться стандартным набором редактирования ячейки в DBGrid?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.09.2009, 16:07   #3
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Ну если строго по тексту, то примерно так:
Код:
...
   ed: TDBField;
...........
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  ed := TDBEdit.Create(Self);
  ed.Left := 20;
  ed.Top := 10;
  ed.Parent := Form1;
  ed.DataSource := DataSource1;
  ed.DataField := DBGrid1.Columns[dbGrid1.SelectedIndex].Field.FieldName;
end;
EDIT: C Create я пожалуй погорячился. Если DBEdit уже есть на форме, то наверно и создавать-то его уже не нужно

Последний раз редактировалось Баламут; 25.09.2009 в 16:19.
Баламут вне форума Ответить с цитированием
Старый 25.09.2009, 16:32   #4
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Цитата:
Где? В каком месте?
И почему не воспользоваться стандартным набором редактирования ячейки в DBGrid?
Как раз таки пользовался стандартным редактированием. Но хочу улучшить визуально свою программу - вот и решил в ход пустить DBEdit.
Спасибо за код.
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 25.09.2009, 16:53   #5
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Кста, а какое событие нужно опрелелить чтобы при нажатии Enter DBEdit1 сразу сама по себе исчезала после того, как я введу и обновлю данные?
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 25.09.2009, 17:00   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от Баламут Посмотреть сообщение
EDIT: C Create я пожалуй погорячился. Если DBEdit уже есть на форме, то наверно и создавать-то его уже не нужно
Код:
  if not Assigned(ed) then 
    ed := TDBEdit.Create(Self);
soleil@mmc вне форума Ответить с цитированием
Старый 25.09.2009, 17:10   #7
.Phoenix
Форумчанин
 
Регистрация: 02.04.2009
Сообщений: 235
По умолчанию

Цитата:
Цитата:Сообщение от Баламут
EDIT: C Create я пожалуй погорячился. Если DBEdit уже есть на форме, то наверно и создавать-то его уже не нужно

Код:

if not Assigned(ed) then
ed := TDBEdit.Create(Self);
С этим я разобрался, мне теперь необходимо чтобы DBEdit1 исчезал после того, как я уже введу новые данные и он мне на время не понадобиться.
Всё гениальное - просто!
.Phoenix вне форума Ответить с цитированием
Старый 25.09.2009, 18:39   #8
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=VK_RETURN then // нажатие кнопки Enter
ed.Free;
end;
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 26.09.2009, 04:35   #9
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Yurk@, не лучшее решение. Событие может произойти в самый неподходящий момент. Лучше уж так
Код:
private
   procedure edExit(Sender: TObject);
.....................

procedure TForm1.edExit(Sender: TObject);
begin
  Sender.Free;
end;

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  ed := TDBEdit.Create(Self);
  ed.OnExit := edExit;
end;
Баламут вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка при вводе в DBEdit Evgenii БД в Delphi 3 05.08.2009 20:39
Сообщение об ошибке при вводе неверного типа информации в DBEdit megaten БД в Delphi 6 17.05.2009 20:44
Посылаемые сообщения при щелчке на рабочем столе chandrasecar Win Api 4 09.11.2008 10:57
DBEdit TaTT DoGG Компоненты Delphi 5 19.05.2008 13:18
Вызов процедуры при обьявлении функции ivannikov Общие вопросы Delphi 6 12.03.2008 13:20