| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > StringGrid и DBGrid |
| Автор: Syrex 4.9.2006, 11:56 |
| Есть компонента String Grid (наверху) и компонента DBGrid (внизу). DBGrid заполняется из файла bases.db (Paradox). Задача: После введения числа в StringGrid (например в поле [1][1]) и нажатия кнопки Button1 её значение должно замениться на значение из поля Prise компоненты DBGrid, которое имеет такое же значение поля Number. |
| Автор: Greeen 4.9.2006, 12:01 |
| Ну дык сначала Locate на нужную запись, а потом StringGrid1->Cell[1][1] = StringGrid1->Cell[1][1].ToInt() + FieldByName("Prise")->AsInteger; Можешь конечно и запрос сообразить. |
| Автор: Syrex 4.9.2006, 12:21 |
| Чего-то не то. Ты наверное не понял: DBGrid: Number | Prize 1 123 2 456 Если я в Ячейке SrtringGrid[1][1] ввожу число '1', то после нажатия оно должно замениться на '123'. Если же я ввожу - '2' - то на '456' соответственно |
| Автор: The Thing 4.9.2006, 12:39 |
| начал писать тебе ответ.. и понял, что я не понял вопроса! Напиши более конкретную задачу! Есть то-то.. жму это.. не получается то-то! |
| Автор: Syrex 4.9.2006, 12:57 |
| Например ввожу в ячейку [1][1] компоненты StringGrid значение '1'. Далее нажимаю на кнопку Button1. На кнопке должен быть обработчик со следующим условием: -- Он должен заменить значение в ячейке [1][1] компоненты StringGrid на значение ячейки компоненты DBGrid. Причем значение должно быть выбрано следующим образом: 1. Мы ищем в компоненте DBGrid строку, в которой поле Number=значению ячейки [1][1] компоненты StringGrid. 2. Далее в найденной строке берем значение столбца "Prise" и присваиваем это значение ячейке [1][1] компоненты StringGrid. Что сделано: Из файла *.db подгружаются значения в DBGrid. Не знаю как осуществить обращение к нужной ячейке (строка, столбец) в таблице DBGrid |
| Автор: Greeen 4.9.2006, 16:55 |
| Syrex, ищем не в DBGrid, а в DataSet или чего там у тебя. Короче в наборе данных Locate'ом ищешь нужную запись. Нашел, и ничего сложного? StringGrid1->Cell[1][1] = Dataset1->FieldByName["Prize"]; DBGrid не содержит данных, он их отображает |
| Автор: Syrex 5.9.2006, 09:57 |
| А что значит поиск Locate'ом??? |
| Автор: Greeen 5.9.2006, 10:07 |
| Syrex, Locate это метод набора данных для поиска нужной записи. Синтаксис не помню, посмотри в хэлпе, но по-моему Dataset1->Locate("FieldName", "Value"); |
| Автор: Syrex 5.9.2006, 10:52 |
| Я попробовал. Но вот проблема как правильно написать всё это в целом!! Locate(KeyFields, Variant &KeyValues, TLocateOptions Options); - В хелпе А вот как код на кнопку Button1 целиком написать?? Не могу связать всё это воедино |
| Автор: Greeen 5.9.2006, 11:02 | ||
|
| Автор: Syrex 5.9.2006, 11:52 | ||
полностью рабочий код!
|
| Автор: Greeen 5.9.2006, 11:55 |
| Syrex, хехе, забыл AsString дописать |