Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.51 MB
Время: 0.037 c
2-1144427429
Volodya_
2006-04-07 20:30
2006.04.23
COM port


15-1143901508
Symbios
2006-04-01 18:25
2006.04.23
Многопоточное приложение


1-1142768278
Loki3D
2006-03-19 14:37
2006.04.23
BDGrid, сохранение параметров Ширины


3-1140955588
ViktorZ
2006-02-26 15:06
2006.04.23
Invalid Floating Point


1-1142435581
Sergg
2006-03-15 18:13
2006.04.23
Добавление новых членов класса в TTreeView