Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
FierySoul
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 161
#1

П0мощь в работе с StringGrid

23.05.2015, 07:52. Просмотров 835. Ответов 4
Метки нет (Все метки)

1 вопрос. У меня есть текстовый файл, который содержит: наименование, массу и цену блюда, который записаны в столбец(рис.1) мне нужно чтобы при открытии файла делфи брал общее кол-во строк в файле и делил на 3. Я попытался сделать, но у меня не вышло
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var List: TStringList;
i, j: Integer;
f:TextFile;
s:string;
begin
if not OpenDialog1.Execute then exit;
AssignFile(f, OpenDialog1.FileName);
Reset(f);
i:=0;
while not eof(f) do
begin
stringgrid1.colcount:=3;
stringgrid1.rowcount:=list.count div 3;
Readln(f, s);
StringGrid1.Cells[0, i+1]:=s;
Readln(f, s);
StringGrid1.Cells[1, i+1]:=s;
Readln(f, s);
StringGrid1.Cells[2, i+1]:=s;
inc(i);
end;
CloseFile(f);
2 вопрос. Как сделать, чтобы при переносе повторяющегося блюда в заказ отображалось кол-во блюд и итоговая цена, а не дублировалось поле(рис.2)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
var n:integer;
x:real;
begin
if StringGrid2.Cells[0,0]<>'' then
StringGrid2.RowCount := StringGrid2.RowCount +1;
StringGrid2.Cells[0, StringGrid2.RowCount-1]:= StringGrid1.Cells[0,StringGrid1.Row];
StringGrid2.Cells[1, StringGrid2.RowCount-1]:= StringGrid1.Cells[1,StringGrid1.Row];
StringGrid2.Cells[2, StringGrid2.RowCount-1]:= StringGrid1.Cells[2,StringGrid1.Row];
x:=0;
for n:=0 to StringGrid2.RowCount-1 do
x:=x+strTofloat(StringGrid2.Cells[2, n]);
Label3.Caption := 'Итого:'+' '+floatToStr(x);
0
Миниатюры
П0мощь в работе с StringGrid   П0мощь в работе с StringGrid  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2015, 07:52
Ответы с готовыми решениями:

Question по работе со StringGrid...
Всем доброго времени суток. Есть такая проблемка. Делаю небольшую задачку,...

EAccessViolation при работе с матрицами и StringGrid
Доброго времени суток. Пытаюсь сделать лабораторную по программированию, но...

Delphi 7 Stringgrid Нужно сделать цикл для заполнения Stringgrid данными из другого Stringgrid
Нужно чтобы из Stringgrid1 данные переносились в Stringgrid2 Но ТОЛЬКО ПО...

StringGrid: проверить, имеется ли строка с ключевым полем во втором StringGrid-е
Имеются два StringGrid'a, у каждого есть ключевое поле. В первом sg значения...

Необходимо сложить ячейки в столбце Stringgrid и вывести в другой Stringgrid
Необходимо сложить ячейки в столбце Stringgrid и вывести в другой Stringgrid ...

4
Алекcей
346 / 341 / 134
Регистрация: 11.12.2013
Сообщений: 1,852
23.05.2015, 08:08 #2
Лучший ответ Сообщение было отмечено FierySoul как решение

Решение

Вопрос 1 - у вас не создан tstringlist, поэтому должен выдаваться access violation. Также для того, чтобы работать с количеством strings из string list нужно загрузить данные в него из текстового файла list.loadfromfile(.....).
Вопрос 2 - пробегаетесь по строкам string grid, если есть такая позиия в меню, то увеличиваете ее кол-во, а если не нашли, то добавляете новую строку в string grid.
1
FierySoul
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 161
23.05.2015, 08:13  [ТС] #3
Первое понятно.
Пожалуйста, объясните поподробнее со вторым, т.к. я не понял(опыт маленький).
0
Алекcей
346 / 341 / 134
Регистрация: 11.12.2013
Сообщений: 1,852
23.05.2015, 08:34 #4
Лучший ответ Сообщение было отмечено FierySoul как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
Var I: integer;
begin
 if stringgrid2.rowcount >1 then
  for I:=1 to stringgrid2.rowcount-1 do 
    If stringgrid2.cells[0,I]=sName then begin //проверяем совпадает ли ячейка c sname (наименование из stringgrid1)
       Stringgrid2.cells[2,I]=..... //увеличиваем значение
       break;
  end;
end;
1
FierySoul
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 161
23.05.2015, 08:41  [ТС] #5
Спасибо, Алексей!
0
23.05.2015, 08:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2015, 08:41

Содержимое выделенной строки из первого StringGrid-а перенести во второй StringGrid
Нужно написать программу которая выполняет следующие действия. Есть два...

Значение одной ячейки первого StringGrid-а присвоить другой ячейке второго StringGrid-а
скажите пожалуйста, вот нам даны две таблицы stringgrid, как значение одной...

Перенос столбца(информации) из StringGrid в другой StringGrid
Не могу разобраться с тем, как перенести значения(нажатием кнопки &quot;записать&quot;)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru