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