Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: СУБД и Delphi/Lazarus

  Все выпуски  

RusFAQ.ru: СУБД и Delphi


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / СУБД и Delphi

Выпуск № 309
от 19.04.2007, 20:05

Администратор:Gh0stik
В рассылке:Подписчиков: 316, Экспертов: 47
В номере:Вопросов: 1, Ответов: 2


Вопрос № 82497: у меня мовсем простенький вопрос.в dbgrid у меня имеет код товара и наименование товара.мне нужно при нажатии на какую нибудь строку открывалась другая форма с дополнительной информацией и том товаре который я выбрала.я обрабатываю событие oncellclic...

Вопрос № 82.497
у меня мовсем простенький вопрос.в dbgrid у меня имеет код товара и наименование товара.мне нужно при нажатии на какую нибудь строку открывалась другая форма с дополнительной информацией и том товаре который я выбрала.я обрабатываю событие oncellclick.а вот что там писать я не понимаю?подскажите пожалуйста.спасибо
Отправлен: 13.04.2007, 22:41
Вопрос задал: Диана (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Крылов Александр Владимирович
Здравствуйте, Диана!
Для начала Вам необходимо продумать как Вы будете передавать информацию о выбранном товаре во вторую форму. Есть два способа.
1. Выполнять запрос на первой форме (с кодом и наименованием товара) и потом уже передавать все данные в контролы второй формы с подробным описанием товара. Предположим, что мы кликаем по коду товара

Примерно код процедуры должен быть таким:

uses Form2; //данная строка должна быть после implementation для связи двух форм

procedure TForm1.DBGridCellClick(Column: TColumn);
var
query:string;
ID:string
...
...
begin
ID:=DBGrid.SelectedField.AsString; // получаем значение в ячейке, т.е. код товара
// выполняем запрос на выборку информации по выбранному товару
Form2.EditPrice:=DataSource.DataSet.Fields[0].AsString; // и так далее заполняем все поля второй формы
end;

2 способ. По моему мнению данный способ лучше, т.к. нам необходимо передать лишь код товара, а на второй форме делать уже все что угодно.

В модуле второй формы в разделе public объявите переменную, в которую будете передавать код товара, пусть она будет называться kod_tovara типа string. В первой форме после implementation впишите uses ИМЯ_МОДУЛЯ_ВТОРОЙ_ФОРМЫ;

Далее идет код процедуры для первой формы

procedure TForm1.DBGridCellClick(Column: TColumn);
var
query:string;
...
...
begin
Form2.kod_tovara:=DBGrid.SelectedField.AsString;
Self.Hide; //прячем первую форму;
Form2.Show; //показываем вторую форму;
end;

Теперь осталось повесить обработчик на OnShow второй формы, в который и вытаскивать все данные по интересующему товару
Ответ отправил: Крылов Александр Владимирович (статус: 3-ий класс)
Ответ отправлен: 14.04.2007, 00:13

Отвечает: Алексеев Александр Владимирович
Здравствуйте, Диана!
ну начни с того что у ттебя grid привязан к некой базе когда ты в грибе выбираешь строку то автоматически выбираются все данные касательно этой строки в базе.

Cod:=query1.fieldvalues['Cod'];
Cod:=Table1.fieldvalues['Cod'];
В переменную запишется значение поля COD из базы

Ответ отправил: Алексеев Александр Владимирович (статус: 1-ый класс)
Ответ отправлен: 15.04.2007, 22:55


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.50 (beta) от 15.04.2007
Яндекс Rambler's Top100

В избранное