Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Опять же вопрос по 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]

Расчетное поле


Наверх

Титульная страница Поиск, карта сайта Написать письмо