![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Опять же вопрос по Grid'у... (больше не буду.....наверно =))
Nick_serov © (2006-04-07 22:27:00)Проблемка такая:
У меня есть Грид, в который я гружу Екселевский прайс, в 7-м столбце располагаются цены на товары. Задача программы в расчете наценки на товар в зависимости от её стоимости (для этого я брал диапазоны и если стоимость(которая находится в 7столбце) попадает в данный диапазон, то прибавляется определенный процент, приписанный к данному диапазону и конечное значение записывается в Edit с заголовком ЦЕНА МАГАЗИНА) Причина в том, что все это проделывается с числом, которое записано в ячейку, которая выделена в данный момент, т.е. конечную стоимость можно увидеть только в Edit'e и только при наведении на цену. Мне нужно, чтобы конечная стоимость расчитывалась и писалась в соседней ячейке(возле со стоимостью) , т.е в 8столбце по нажатии хнопашки... хух... вроде всецело описал проблему =)
посоветуйте мне плиз, как это осуществить????
Nick_serov (2006-04-09 13:46:00) [1]Усе, товарищи, сам допер, вот тока пральный ответ уже опубликовали
> Anatoly Podgoretsky © (09.04.06 12:34) [17]
>
> Nick_serov (09.04.06 11:49) [14]
> Row + 1
=))))))))))))))))
Всем спасибо!!!!!!!!
Anatoly Podgoretsky (2006-04-09 12:34:00) [2]Nick_serov (09.04.06 11:49) [14]
Row + 1
Std (2006-04-09 12:32:00) [3]шото я не понял а нафиг выделять чтото, в первом же посте нада было по нажатию кнопки просто записать в соседнюю ячейкуу значение...
EvS (2006-04-09 12:10:00) [4]>кто знает как???
Не маятся дурью.
Код из обработчика события выделения перенести в цикл.
Тогда и выделять не нужно будет и Edit не понадобится.
Nick_serov (2006-04-09 11:49:00) [5]вообщем проблема свелась к тому, что нужно переместиться на ячейку, которая ниже выделенной
кто знает как???
Nick_serov (2006-04-09 11:48:00) [6]Пардон, Volkov (09.04.06 11:40) [12] - это моя запись (сонный я, не так подписался =)
Volkov (2006-04-09 11:40:00) [7]
> Kolan © (09.04.06 01:43) [11]
Блин, не выходит, прописывает в рядом стоящий столбец(весь его заполняет) значение Edit1 только для выделенной в данный момент ячейки, а у меня когда идешь по столбцу ячеек с исходным значение сверху вниз, то для КАЖДОЙячейки в Edit1 высвечивается СВОЕзначение. По сути цикл должен быть примерно таким :
for I := 0 to Grid1.RowCount - 1 do
определяем в координаты ячейки, в которой мы находимся; //?????
Cells[8,I + 1] := Edit1.Text;
перемещаемся на строку ниже // ?????????
end;
==========================================
// ??????? - означает, что я не знаю как это сделать
думал: может применить эмуляцию нажатия клавиши (вниз),
но опять же не знаю как это делается
если кто знает, напишите плиз
Kolan (2006-04-09 01:43:00) [8]Как-то так:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
I: Integer;
R: TGridRect;
begin
with Grid1 do
for I := 0to Grid1.RowCount - 1do
begin
Cells[8,I + 1] := Edit1.Text;
end;
R.Left := 8;
R.Top := 1;
R.Right := 8;
R.Bottom := 8;
Grid1.Selection := R;
end;
Кстати работает и так, но почему незнаю:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
I: Integer;
R: TGridRect;
begin
with Grid1 do
for I := 0to Grid1.RowCount - 1do
begin
Cells[8,I + 1] := Edit1.Text;
end;
R.Left := 8;
R.Top := 1;
Grid1.Selection := R;
end;
Nick_serov (2006-04-08 22:11:00) [9]
procedure TForm1.xpButton6Click(Sender: TObject);
var
i : integer;
begin
with grid1 do
for i := 1 to grid1.RowCount do
begin
cells[8,i + 1] := edit6.Text;
end;
end;
вот теперь пишет то, что в Edit, а как мне сделать, чтобы в цикл входило последовательное выделение строки(одна за одной до grid1.RowCount) сверху вниз?т.к каждой ячейке соответсвует свое значение в Edit'e. т.е, когда выделяешь ячейку, то для нее высвечивается свое значение в Edit...
подскажите пжалста
Nick_serov (2006-04-08 21:14:00) [10]
> Anatoly Podgoretsky © (08.04.06 19:28) [8]
приаерно знаю, но не приходилось применять, смотрите ккод, лучше бы что дельное посоветовали
> Gydvin © (08.04.06 17:22) [7]
> а причем здесь С
> если в цикле используешь I
>
Пардон, очепятка...
Anatoly Podgoretsky (2006-04-08 19:28:00) [11]Nick_serov (08.04.06 15:55) [4]
блин, проблема в том, что я циклам не обучен (да, вот такое я ламо =))
Опа, так надо начинать с самых основ языка, а это уже не для форума
Gydvin (2006-04-08 17:22:00) [12]а причем здесь С
если в цикле используешь I
Nick_serov (2006-04-08 16:28:00) [13]видоизменил до такого, результат нулевой ((((
procedure TForm1.xpButton6Click(Sender: TObject);
var
c : integer;
begin
with grid1 do
for i := 1 to 10 do
begin
cells[8,c + 1] := edit6.Text;
end;
end;
end.
Nick_serov (2006-04-08 15:59:00) [14]ну блин вот так пытался - ниче хорошего ((((
procedure TForm1.xpButton6Click(Sender: TObject);
var
c : integer;
begin
with grid1 do
for i := 1 to grid1.RowCount do
cells[8,c] := edit6.Text;
end;
Nick_serov (2006-04-08 15:55:00) [15]здесь как я понимаю цикл надо применить что-то вроде
for i := 1 to grid.row.count
блин, проблема в том, что я циклам не обучен (да, вот такое я ламо =))
хелп кто нить
Плохиш (2006-04-08 03:59:00) [16]
> Мне нужно, чтобы конечная стоимость расчитывалась и писалась
> в соседней ячейке(возле со стоимостью) , т.е в 8 столбце
> по нажатии хнопашки
Как взять значение из ячейки проблем не составляет? Так операция записи в ячейку является обратной операции чтения. Или я чего-то не понял?
Nick_serov (2006-04-08 00:29:00) [17]
> Anatoly Podgoretsky © (07.04.06 23:24) [1]
>
> Расчетное поле
А можно поподробней пожалуйста?
Anatoly Podgoretsky (2006-04-07 23:24:00) [18]Расчетное поле