Поиск:

Ответ в темуСоздание новой темы Создание опроса
> StringGrid и DBGrid, передача информации 
V
    Опции темы
Syrex
Дата 4.9.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Есть компонента String Grid (наверху) и  компонента DBGrid (внизу). DBGrid заполняется из файла bases.db (Paradox).
Задача: После введения числа в StringGrid (например в поле [1][1]) и нажатия кнопки Button1 её значение должно замениться на значение из поля Prise компоненты DBGrid, которое имеет такое же значение поля Number.

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  059.GIF 39,64 Kb
PM MAIL ICQ   Вверх
Greeen
Дата 4.9.2006, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 18



Ну дык сначала Locate на нужную запись, а потом StringGrid1->Cell[1][1] = StringGrid1->Cell[1][1].ToInt() + FieldByName("Prise")->AsInteger;
Можешь конечно и запрос сообразить.  smile 

Это сообщение отредактировал(а) Greeen - 4.9.2006, 12:02


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Syrex
Дата 4.9.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Чего-то не то. Ты наверное не понял:
DBGrid:
Number | Prize
     1          123
     2          456

Если я в Ячейке SrtringGrid[1][1] ввожу число '1', то после нажатия оно должно замениться на '123'.
Если же я ввожу - '2' - то на '456' соответственно


Это сообщение отредактировал(а) Syrex - 4.9.2006, 12:21
PM MAIL ICQ   Вверх
The Thing
Дата 4.9.2006, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 3



начал писать тебе ответ.. и понял, что я не понял вопроса!

Напиши более конкретную задачу! Есть то-то.. жму это.. не получается то-то!


--------------------
Правильность работы программы зависит от двух велечин.
В нужном месте должны стоять нолик и еденичка.
PM MAIL   Вверх
Syrex
Дата 4.9.2006, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Например ввожу в ячейку [1][1] компоненты StringGrid значение '1'. 
Далее нажимаю на кнопку Button1.
На кнопке должен быть обработчик со следующим условием:
 -- Он должен заменить значение в ячейке [1][1] компоненты StringGrid на значение ячейки     компоненты DBGrid. Причем значение должно быть выбрано следующим образом: 
1. Мы ищем в компоненте DBGrid строку, в которой поле Number=значению ячейки [1][1] компоненты StringGrid.
2. Далее в найденной строке берем значение столбца "Prise" и присваиваем это значение ячейке [1][1] компоненты StringGrid.

Что сделано: Из файла *.db подгружаются значения в DBGrid. 
Не знаю как осуществить обращение к нужной ячейке (строка, столбец) в таблице DBGrid 

Это сообщение отредактировал(а) Syrex - 4.9.2006, 13:06
PM MAIL ICQ   Вверх
Greeen
Дата 4.9.2006, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 18



Syrex, ищем не в DBGrid, а в DataSet или чего там у тебя. Короче в наборе данных Locate'ом ищешь нужную запись. Нашел, и ничего сложного? StringGrid1->Cell[1][1] = Dataset1->FieldByName["Prize"];
DBGrid не содержит данных, он их отображает

Это сообщение отредактировал(а) Greeen - 4.9.2006, 16:56


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Syrex
Дата 5.9.2006, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А что значит поиск Locate'ом???

Это сообщение отредактировал(а) Syrex - 5.9.2006, 09:58
PM MAIL ICQ   Вверх
Greeen
Дата 5.9.2006, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 18



Syrex, Locate это метод набора данных для поиска нужной записи.
Синтаксис не помню, посмотри в хэлпе, но по-моему Dataset1->Locate("FieldName", "Value");


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Syrex
Дата 5.9.2006, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я попробовал. Но вот проблема как правильно написать всё это в целом!!
Locate(KeyFields, Variant &KeyValues, TLocateOptions Options); - В хелпе
А вот как код на кнопку Button1 целиком написать??
Не могу связать всё это воедино
PM MAIL ICQ   Вверх
Greeen
Дата 5.9.2006, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 18



Код

Dataset1->Locate("Number", StringGrid1->Cell[1][1], TLocateOptions());
StringGrid1->Cell[1][1] = Dataset1->FieldByName["Prize"];



--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Syrex
Дата 5.9.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



полностью рабочий код!
Код

       Table1->Locate("Number", StringGrid1->Cells[1][1], TLocateOptions());
       StringGrid->Cells[1][1] = Table1->FieldByName("Prize")->AsString;

PM MAIL ICQ   Вверх
Greeen
Дата 5.9.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 18



Syrex, хехе, забыл AsString дописать  smile 


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

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

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

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




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


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

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