Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];

Вниз

Строка таблицы - как кнопка   Найти похожие ветки 

 
Student00 ©   (2007-12-05 21:06) [0]

Есть БД на делфи
Компоненты:
ADOConnection1 - цепанули к БД Accsess
ADOTable1 - Активировали таблицу
ADOQuery1 - сделали запрос к полю naimen, нашей таблицы
DataSource1 - все подконнектили.

Кроче при запуске программы все выводит в DBGridEh1 правильно.

Но возникла необходимость сделать следующее:
Алгоритм:
1) Выделяешь (или как лучше это организовать?) некоторое поле из таблицы (DBGridEh1).
2) Жмешь кнопку "Перейти".
3)Происходит переходит на другую форму соответствующую выбранному полю. Но каждое поле будет иметь свою форму!

Т.е. проблема в том: Как сделать так чтобы любая строка таблицы (DBGridEh1) была некоторой ссылокой?
Чтобы срабатывала команда типа form2.show;

Ребята, подскажите пожалуйста.


 
Юрий Зотов ©   (2007-12-05 21:12) [1]

Обработка двойного щелчка по колонке или по ее заголовку?

Имеется в виду - вместо кнопки "перейти".


 
Student00 ©   (2007-12-05 22:39) [2]

Два варианта:

1) Обработка двойного щелчка по строке целиком (или по её началу, вобще по любому месту где это возможно)
--------------------------------------------------------------------
2) На примере. Есть строки:
1_____
2_____
3_____
4_____

<кнопка>

Помечаем (выделяем или еще как) строку 1 жмем "кнопку" открывается форма A - пустая.

или

Помечаем (выделяем или еще как) строку 3 жмем "кнопку" открывается  форма Б - пустая.

или

...


 
Германн ©   (2007-12-06 00:25) [3]


> Student00 ©   (05.12.07 22:39) [2]

В [1] не вопрос был, а ответ.
Ну а если хочешь всё-таки кнопку, то сделай кнопку. Или что-то не получается?


 
Юрий Зотов ©   (2007-12-06 00:54) [4]

С кнопкой получится немного сложнее - придется запоминать колонку, по которой щелкнули. А если вместо кнопки использовать двойной щелчок, то колонку можно и не запоминать.


 
Юрий Зотов ©   (2007-12-06 01:01) [5]

> Автор

Так в чем конкретно проблема-то? В запоминании колонки, по которой щелкнули? В определении текущей записи грида (точнее, датасета)? В создании формы? В связывании этой формы с определенной колонкой (полем)? Или еще что-то?


 
Германн ©   (2007-12-06 01:17) [6]


> Юрий Зотов ©   (06.12.07 00:54) [4]
>
> С кнопкой получится немного сложнее - придется запоминать
> колонку, по которой щелкнули. А если вместо кнопки использовать
> двойной щелчок, то колонку можно и не запоминать.
>

Автор имхо ещё путается в терминах. Для него "поле" - это строка, по русски "запись".
:)


 
Student00 ©   (2007-12-08 17:06) [7]

Ребят, собственно что мне нужно в итоге?
Создаю Экспертную систему на тему "Выбор бытовой техники".

Алгоритм работы такой:
Пользователь, посредством, меню выбирает варианты ответов на поставленные наводящие вопросы и в итоге получает рекомендацию к покупке того или иного товара.

И ладно бы на пихать Радио кнопок и через if then else реализовать механизм.
Но вся проблема в том, что нужно чтобы пользователь мог во время работы программы редактировать вопросы, ответы. Т.е. мне нужно создать админку к экспертке.

Для этого нужно использовать БД. Я создал БД на Microsoft Office Access (к счастью с этим проблем не возникло).

Далее я хотел сделать следующее (поскольку хоть как-то могу сам это реализовать):
На первой страницы добавить компонент DBGridEh1 в качестве списка-пунктов меню. И посредством ADOConnection1, ADOTable1, ADOQuery1, DataSource1 вывести данные и БД в DBGridEh1 - это мне удалось. Следующим шагом планировал одну запись в таблице БД=как пункт меню, но по некоторым причинам отказался от этого.

Решил попытаться создать меню через компонент RadioGroup1.

И вот тут возникли проблемы:
1) В свойствах этого компонента я не нашел DataSource через который бы я смог подконнектится к АDO.
2) Как реализовать динамически добавляемые радио кнопки в зависимости от количества записей в соответствующей таблице в БД.

Тоесть собственно вопрос состоит в том:
Ребята, подскажите, пожалуйста, как сделать так, чтобы при запуске приложения, программа автоматически осуществляла запрос к указанной таблице в БД и динамически создавала радио кнопки в зависимости от количества записей в таблице, т.е. 1 запись = 1 кнопка с соответствующим наименованием.


ПС. Объяснил как смог ))


 
Германн ©   (2007-12-08 17:14) [8]


> На первой страницы добавить компонент DBGridEh1 в качестве
> списка-пунктов меню. И посредством ADOConnection1, ADOTable1,
>  ADOQuery1, DataSource1 вывести данные и БД в DBGridEh1
> - это мне удалось.

Ну и всё. А зачем ещё и радиокнопки?
Пользователь выбирает строку в DBGrid. Этого достаточно.


 
Student00 ©   (2007-12-08 17:55) [9]

Ну я так и не понял как реализовать меню=ДБгрид


 
Германн ©   (2007-12-08 19:40) [10]


> Student00 ©   (08.12.07 17:55) [9]
>
> Ну я так и не понял как реализовать меню=ДБгрид
>

Запись в таблице = пункт меню.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.005 c
15-1196713499
Ega23
2007-12-03 23:24
2008.01.06
Я что-то пропустил?


2-1197021509
@!!ex
2007-12-07 12:58
2008.01.06
Прямой доступ к изображению в TBitMap


8-1171741173
SONIC90
2007-02-17 22:39
2008.01.06
MediaPlayer On Notify


15-1196759620
boriskb
2007-12-04 12:13
2008.01.06
Прошу высказать мнения о книге


2-1197135168
ученик
2007-12-08 20:32
2008.01.06
Помогите с маской для MaskEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский