powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / PrintStringGrid
16 сообщений из 16, страница 1 из 1
PrintStringGrid
    #39619359
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
procedure TForm2.btn7Click(Sender: TObject);
begin
  frxrprt2.ShowReport;
end;


procedure TForm2.frxrprt2BeforePrint(c: TfrxReportComponent);
var
  Cross: TfrxCrossView;
  i, j: Integer;
begin
  if c is TfrxCrossView then
  begin
    Cross := TfrxCrossView(c);
    for i := 1 to 4 do
      ffor j := 1 to gsl3.Count - 1 do
        Cross.AddValue([j], [i], [strngrd3.Cells[i - 1, j-1]]);
  end;
end;



в stringgrid 4 строки а выводится только 3, последнюю не выводит, почему?
данные в stringgrid заношу через stringlist gsl3
...
Рейтинг: 0 / 0
PrintStringGrid
    #39619362
apexplsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
elimpion,
От 0 же for надо
...
Рейтинг: 0 / 0
PrintStringGrid
    #39619371
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибка будет, если for от 0 писать
...
Рейтинг: 0 / 0
PrintStringGrid
    #39619373
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да и так бы первая не выводилась, а тут последняя строка не выводится
...
Рейтинг: 0 / 0
PrintStringGrid
    #39619377
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все, так работает
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var
  Cross: TfrxCrossView;
  i, j: Integer;
begin
  if c is TfrxCrossView then
  begin
    Cross := TfrxCrossView(c);
    for i := 1 to 4 do
       for j:=1 to strngrd3.Rows[0].Count-1 do
        Cross.AddValue([j], [i], [strngrd3.Cells[i - 1, j-1]]);
  end;
end;
...
Рейтинг: 0 / 0
PrintStringGrid
    #39619383
elimpion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
    Cross := TfrxCrossView(c);
    for i:=1 to strngrd3.Cols[0].Count-1 do
       for j:=1 to strngrd3.Rows[0].Count-1 do
        Cross.AddValue([j], [i], [strngrd3.Cells[i - 1, j-1]]);


а если так по столбцу прописать, то столбец последний не выводится, а строка все нормально, как тут быть?
...
Рейтинг: 0 / 0
PrintStringGrid
    #39619389
sql2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
elimpion,

цикл с 0 до .Count-1

по строкам и по столбцам.
...
Рейтинг: 0 / 0
PrintStringGrid
    #39620274
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Индексация с нуля. Count это количество.
Если Count == 3, а индексация с нуля, то индексы элементов вот такие: 0, 1, 2.
Соответственно когда Count == 3, то цикл от 0 до 2. Теперь наглядно? С:

А можно цикл с Count-1 до 0.


for i := 1 to 4 do
Здесь "4" это антипаттерн "магическое число". Антипаттерн - это значит плохой код .

В последнем варианте вы это исправили, там уже так как надо. :) Только вероятно может как-то так?:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
procedure TForm2.frxrprt2BeforePrint(c: TfrxReportComponent);
var i, j: Integer;
begin
if c is TfrxCrossView then
  with (c as TfrxCrossView) do
    for i:=0 to strngrd3.Cols[0].Count-1 do
      for j:=0 to strngrd3.Rows[0].Count-1 do
        AddValue([j], [i], [strngrd3.Cells[i, j]]);
end;
...
Рейтинг: 0 / 0
PrintStringGrid
    #39620276
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гм... Только strngrd3 надо бы назвать по-нормальному и тоже как-то вынести. А то в трёх местах. Хотя бы так:
Код: pascal
1.
with (c as TfrxCrossView), strngrd3 do


Если конечно не будет конфликтовать с TfrxCrossView (т.е. в нём нет нужных нам методов strngrd3 с такими же именами).
...
Рейтинг: 0 / 0
PrintStringGrid
    #39620473
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LoneFastгм... Только strngrd3 надо бы назвать по-нормальному и тоже как-то вынести. А то в трёх местах. Хотя бы так:
Код: pascal
1.
with (c as TfrxCrossView), strngrd3 do

За такие советы надо бить. Больно.
...
Рейтинг: 0 / 0
PrintStringGrid
    #39620528
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что именно вам не понравилось? "as" или "with"?
И тем и тем активно пользуемся всем отделом уже лет восемь - и ни одной проблемы.
Может просто вы "не умеете их готовить"? :3
...
Рейтинг: 0 / 0
PrintStringGrid
    #39620687
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LoneFastЧто именно вам не понравилось? "as" или "with"?
И тем и тем активно пользуемся всем отделом уже лет восемь - и ни одной проблемы.
Может просто вы "не умеете их готовить"? :3Видимо такой уровень вашего отдела, если считается нормальным использовать with да ещё и вложенный. У нас сто лет назад этот запрет прописан для смелых новичков в кодерулесах.
...
Рейтинг: 0 / 0
PrintStringGrid
    #39621416
LoneFast
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У вас свои правила, у нас свои. Наши правила позволяют не иметь проблем с "with", зато улучшать читаемость.
Кстати где вы в моём примере увидели "вложенный"? %)
...
Рейтинг: 0 / 0
PrintStringGrid
    #39621469
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LoneFastУ вас свои правила, у нас свои. Наши правила позволяют не иметь проблем с "with", зато улучшать читаемость.
Кстати где вы в моём примере увидели "вложенный"? %)

with накладывается на 2 экземпляра разных классов. Велик риск получить граблями по лбу.
...
Рейтинг: 0 / 0
PrintStringGrid
    #39621499
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMasterwith накладывается на 2 экземпляра разных классов. Велик риск получить граблями по лбу.... причем иногда для этого достаточно перейти на более новую делфу или добавить модуль в uses. Но люди все равно будут раскладывать грабли, заботясь чтоб зубцами наверх (это я про вложенность)
"Слабоумие и отвага!" © Дэйл
...
Рейтинг: 0 / 0
PrintStringGrid
    #39621506
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл добавить, что отладка и просмотр переменных внутри with просто чудесны!
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / PrintStringGrid
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]