Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.50/14: Рейтинг темы: голосов - 14, средняя оценка - 4.50
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
1

Как сделать так, чтобы при двойном клике по записи в DBgrid открывалась новая форма

04.05.2014, 19:28. Просмотров 2556. Ответов 21
Метки нет (Все метки)

как сделать чтобы при двойном клике по записи в DBgrid открывалась новая форма где будет более подробная информация об этой записи
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2014, 19:28
Ответы с готовыми решениями:

Можно ли сделать в бд, чтобы при нажатии на строку таблицы открывалась новая форма?
А кто-нибудь знает можно ли сделать в бд (созданную с помощью, ADOConnection1,...

как в TreeView сделать так ,чтобы по нажатию на слово Бухгалтерия откравалась новая форма
как в TreeView сделать так ,чтобы по нажатию на слово Бухгалтерия откравалась...

Как сделать чтобы дочерняя форма открывалась при нажатии на кнопку поверх всех компонентов и по центру?
У меня две формы Form1, Form2. Мну нужно, чтобы при нажатии на кнопку,...

Сделать, чтобы при нажатии на любой конденсатор открывалась форма с соответствующими данными
Подскажите как сделать,у меня есть таблица с конденсаторами,при нажатии на...

Подскажите как чтобы при изменении DBGrid записи (у меня на изменения другая форма) сразу
Подскажите как чтобы при изменении DBGrid записи (у меня на изменения другая...

21
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
04.05.2014, 21:33 2
событие OnDblClick DBGrid'а:
Delphi
1
2
3
4
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  Form3.ShowModal;//т.к. планируется детализация, то лучше открыть модально
end;
1
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
04.05.2014, 21:58  [ТС] 3
Цитата Сообщение от andrey_k3 Посмотреть сообщение
событие OnDblClick DBGrid'а:
а про информацию как далее ,ну в таблицу нужнно будт добавить ячейкку где будет содержаться инфа о каждой станции у меня и хочу чтобы в новой форме это все показывалось ,инфа и название станции,как сделатЬ?
0
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
04.05.2014, 22:49 4
для примера, создал новую форму (Form3) с компонентой StaticText:
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  Form3.StaticText1.Caption:=
   Table1.Fields.Fields[0].AsString + #10#13 +
   Table1.Fields.Fields[1].AsString + #10#13 +
   Table1.Fields.Fields[2].AsString + #10#13 +
   Table1.Fields.Fields[3].AsString;
  Form3.ShowModal;
end;
причем Form3.StaticText1.Caption:= Table1.Fields... можешь разместить в юните Form3 в обрабочике OnShow (например). А можешь отдельный запрос сформировать для отображения данных (в грид главной формы выводить, допустим, 3-4 поля таблицы, а для детализации на модальной форме - из других полей/таблиц подтягивать).
1
Миниатюры
Как сделать так, чтобы при двойном клике по записи в DBgrid открывалась новая форма  
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
04.05.2014, 23:19  [ТС] 5
хочу чтобы я создал новую ячейку и в ней было бы совсем другая инфа нежели в ДБгрид и именно она открывалась в новой форме

Добавлено через 14 минут
и кстати сортировка, которую вы мне помогли сделать не совсем корректно работает
0
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
04.05.2014, 23:26 6
сначала по "новой ячейке" - для примера: создал поле Dop_info, в таблице не отображается, выводится в статиктекст формы3, т.е. нет ни каких препятствий для реализации
создал новую ячейку и в ней было бы совсем другая инфа нежели в ДБгрид и именно она открывалась в новой форме
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  Form3.StaticText1.Caption:=
   {Table1.Fields.Fields[0].AsString + #10#13 +
   Table1.Fields.Fields[1].AsString + #10#13 +
   Table1.Fields.Fields[2].AsString + #10#13 + }
   Table1.Fields.Fields[4].AsString;
  Form3.ShowModal;
end;
а что с сортировкой не так?
1
Миниатюры
Как сделать так, чтобы при двойном клике по записи в DBgrid открывалась новая форма  
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
04.05.2014, 23:28  [ТС] 7
Цитата Сообщение от andrey_k3 Посмотреть сообщение
а что с сортировкой не так?
По названию все хорошо он по алфавиту их распределяет ,а вот по Потребляемой энергии я хотел чтобы по размеру распределял ,но он так не делает
0
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
04.05.2014, 23:40 8
чтобы организовать корректную сортировку по полю "Потребляемая энергия" необходимо изменить его тип на Number, а ед. измерения вынести в Title колонки грида. А сейчас он "нормально", по алфавиту, сортирует текстовое поле
1
Миниатюры
Как сделать так, чтобы при двойном клике по записи в DBgrid открывалась новая форма  
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
05.05.2014, 00:21  [ТС] 9
Цитата Сообщение от andrey_k3 Посмотреть сообщение
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
* Form3.StaticText1.Caption:=
* *{Table1.Fields.Fields[0].AsString + #10#13 +
* *Table1.Fields.Fields[1].AsString + #10#13 +
* *Table1.Fields.Fields[2].AsString + #10#13 + }
* *Table1.Fields.Fields[4].AsString;
* Form3.ShowModal;
end;
не получается у меня с этим ,не выводит и все,может забыл что я

Добавлено через 3 минуты
Цитата Сообщение от andrey_k3 Посмотреть сообщение
чтобы организовать корректную сортировку по полю "Потребляемая энергия" необходимо изменить его тип на Number, а ед. измерения вынести в Title колонки грида. А сейчас он "нормально", по алфавиту, сортирует текстовое поле
и с этим я нечего не понял
0
northener
05.05.2014, 01:40
  #10

Не по теме:

Цитата Сообщение от NovAID Посмотреть сообщение
как сделать чтобы при двойном клике по записи в DBgrid открывалась новая форма где будет более подробная информация об этой записи
Казалось бы простой вопрос по реализации события компонента. А в результате
Цитата Сообщение от NovAID Посмотреть сообщение
не получается у меня с этим ,не выводит и все,может забыл что я
А может не забыл, а и не знал вообще? Ну так сразу и сказал бы.

0
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
05.05.2014, 07:50 11
не получается у меня с этим
что конкретно? форма не открывается? - в uses прописан unit новой формы? или ругается на что-то другое? покажи скриншот ошибки, ну и новой формы (код или скрин).
а по редактированию структуры таблицы - изменить его тип на Number, в частности см. таблицу типов полей
на счет Number - погорячился, тебе достаточно будет Short'a или Integer'a
1
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
05.05.2014, 12:48  [ТС] 12
Цитата Сообщение от andrey_k3 Посмотреть сообщение
что конкретно? форма не открывается? - в uses прописан unit новой формы? или ругается на что-то другое? покажи скриншот ошибки, ну и новой формы (код или скрин).
все открывает ,а информацию не выводит,и теперь снова жалуется на Table is busy

Добавлено через 26 минут
когда хочу сменить критерию сортировки
0
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
05.05.2014, 13:25 13
ну давай посмотрим проект, только я смогу не раньше часов девяти вечера
1
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
05.05.2014, 21:55  [ТС] 14
Цитата Сообщение от andrey_k3 Посмотреть сообщение
ну давай посмотрим проект, только я смогу не раньше часов девяти вечера
Вообщем у администратора выдает про то что эксклюзивность что-то,а у пользователя про индексы ,помоги пожалуйста это решить вчера вечером все норм было ,а сегодня вот такая фигня
0
Миниатюры
Как сделать так, чтобы при двойном клике по записи в DBgrid открывалась новая форма   Как сделать так, чтобы при двойном клике по записи в DBgrid открывалась новая форма  
Вложения
Тип файла: rar Курсовая.rar (2.82 Мб, 18 просмотров)
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
06.05.2014, 00:06 15
1 - режим админа, тест на внимательность
было (в версии сохраненной у меня):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.ComboBox1Select(Sender: TObject);
begin
  with Table1 do
    begin
      Active:= false;
      IndexDefs.Clear;
      AddIndex('index_name', ComboBox1.Items.Strings[ComboBox1.ItemIndex],
        [ixCaseInsensitive],'');
      IndexName:='';
      IndexFieldNames:= ComboBox1.Items.Strings[ComboBox1.ItemIndex];
      Active:= true;
    end;
end;
стало (последней версии, загруженной тобой):
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.ComboBox1Select(Sender: TObject);
begin
  with Table1 do
    begin
      Active:= true;
      IndexDefs.Clear;
      AddIndex('index_name', ComboBox1.Items.Strings[ComboBox1.ItemIndex],
        [ixCaseInsensitive],'');
      IndexName:='';
      IndexFieldNames:= ComboBox1.Items.Strings[ComboBox1.ItemIndex];
     Active:= false;
    end;
end;
ты пытаешься настроить индексы на АКТИВНОЙ таблице, отсюда ошибка о невозможности использования таблицы эксклюзивно. сначала ДЕАКТИВИРУЕМ, затем настраиваем, далее АКТИВИРУЕМ
1
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
06.05.2014, 00:29  [ТС] 16
Цитата Сообщение от andrey_k3 Посмотреть сообщение
ты пытаешься настроить индексы на АКТИВНОЙ таблице, отсюда ошибка о невозможности использования таблицы эксклюзивно. сначала ДЕАКТИВИРУЕМ, затем настраиваем, далее АКТИВИРУЕМ
сейчас такая же ошибка как у пользователя

Добавлено через 8 минут
Цитата Сообщение от andrey_k3 Посмотреть сообщение
АКТИВИРУЕМ
все сделал ,все работает ,помогите теперь с выводам подробной инфы ,форма открывается ,а инфу не выводит ,ну вы сами там должны увидеть
0
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
06.05.2014, 00:32 17
проблема с индексами. заходи в режим администрирования Database Desktop, снимай метку ключа, сохраняй, снова ставь метку, сохраняй

))) не актуально

по поводу вывода информации - при даблклике с формы администратора есть присваивание статиктексту формы7 значения, а при даблклике с формы пользователя - только showmodal
1
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
06.05.2014, 00:38  [ТС] 18
Цитата Сообщение от andrey_k3 Посмотреть сообщение
по поводу вывода информации - при даблклике с формы администратора есть присваивание статиктексту формы7 значения, а при даблклике с формы пользователя - только showmodal
это я знаю,я хотел для админа сделать сначала
Все получилось ,огромное спасибо за помощь)
0
andrey_k3
128 / 128 / 41
Регистрация: 17.10.2013
Сообщений: 333
06.05.2014, 00:40 19
может вывод информации перенести в OnShow формы7?

Добавлено через 39 секунд
Цитата Сообщение от NovAID Посмотреть сообщение
это я знаю
так поэтому и нет информации...
1
NovAID
1 / 1 / 1
Регистрация: 02.11.2013
Сообщений: 153
06.05.2014, 00:44  [ТС] 20
Цитата Сообщение от andrey_k3 Посмотреть сообщение
так поэтому и нет информации...
я нечего не менял и все выводит сейчас ,а как сделать так чтобы выводили все параметры основные и плюс дополнительная инфа в поле мемо или статиктекст удобнее?просто еще вывод на печать хочу сделать
0
06.05.2014, 00:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2014, 00:44

как сделать так чтобы БД открывалась из любого места на компе
как сделать так чтобы БД работала из любого места на компе,но приоритетно чтобы...

При (двойном) клике на строке в dbgrid отображать в другой форме информацию из выбранной строки грида
Ребят помогите плз. Хочу сделать так чтобы при (двойном) клике на строке в...

Как сделать так чтобы с использованием DBCombobox выбирать из DBGrid
Например: есть таблица в котором столбец Факультет; Кафедра; . Мне нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru