powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перевести на С++
25 сообщений из 25, страница 1 из 1
Перевести на С++
    #32704379
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как этот код на паскале должен выглядеть в С ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure TForm1.frxReport1BeforePrint(c: TfrxReportComponent);
var
  Cross: TfrxCrossView;
  i, j: Integer;
begin
  if c is TfrxCrossView then
  begin
    Cross := TfrxCrossView(c);
    for i :=  1  to  16  do
      for j :=  1  to  16  do
        Cross.AddValue([i], [j], [StringGrid1.Cells[i -  1 , j -  1 ]]);
  end;
end;
...
Рейтинг: 0 / 0
Перевести на С++
    #32704466
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хрен знает может так ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
void TForm1::frxReport1BeforePrint(TfrxReportComponent * c)
{

   TfrxCrossView * Cross = new  TfrxCrossView(NULL) ;

    Cross = (TfrxCrossView *) c;
    for (int i =  1  ;i<= 16 ;i++)
      for (int j =  1 ;j<= 16 ;j++)
       {
          Cross->AddValue(i, j, StringGrid1->Cells[i -  1 ][j -  1 ]);
       }
  }
}




 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Перевести на С++
    #32704865
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем
Код: plaintext
TfrxCrossView * Cross = new  TfrxCrossView(NULL) ;
?
кажется так будет лучше:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
void TForm1::frxReport1BeforePrint(TfrxReportComponent * c)
{
  TfrxCrossView * Cross =(TfrxCrossView *) c;
  for (int i =  1  ;i<= 16 ;i++)
    for (int j =  1 ;j<= 16 ;j++)
    {
      Cross->AddValue(i, j, StringGrid1->Cells[i -  1 ][j -  1 ]);
     }
}
...
Рейтинг: 0 / 0
Перевести на С++
    #32705030
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет эти варианты не катят в принципе
в run-time приложение ругается на изнасилованый доступ :-/
для сравнения т.е. в обоих вариантах было пропущено
Код: plaintext
1.
if c is TfrxCrossView then

я использую
Код: plaintext
1.
2.
3.
TfrxCrossView* Cross;
AnsiString s=c->ClassName();
    if(s == "TfrxCrossView")

но все равно гдето что-то ни так :-/
пошел ловить крышу
зы
еще и сервак кто-то нипадецки долбит
...
Рейтинг: 0 / 0
Перевести на С++
    #32705097
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
procedure TForm1::frxReport1BeforePrint(TfrxReportComponent *c)
{
  TfrxCrossView *Cross = dynamic_cast<TfrxCrossView *>c;
  for(int=  1 ; c && i <= 6 ; i++)
    for(int j=  1 ; j <=  16 ; i++)
      Cross->AddValue([i], [j], [StringGrid1->Cells[i -  1 , j -  1 ]]);
}
...
Рейтинг: 0 / 0
Перевести на С++
    #32705112
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Lepsik

Результат приведения с помощью dynamic_cast-а проверить на 0 не помешает:

Код: plaintext
1.
2.
3.
4.
TfrxCrossView *Cross = dynamic_cast<TfrxCrossView *>c;
if(  Cross )
{ 
      // ok, Cross is pointer to TfrxCrossView... 
}
...
Рейтинг: 0 / 0
Перевести на С++
    #32705114
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
 Cross->AddValue([i], [j], [StringGrid1->Cells[i -  1 , j -  1 ]]
а это недопустимый синтаксис даже проверять не буду
...
Рейтинг: 0 / 0
Перевести на С++
    #32705117
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широков
Результат приведения с помощью dynamic_cast-а проверить на 0 не помешает:


с этим никто не спорит суть вопроса ни в этом :)
...
Рейтинг: 0 / 0
Перевести на С++
    #32705577
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БурыйТина
Код: plaintext
 Cross->AddValue([i], [j], [StringGrid1->Cells[i -  1 , j -  1 ]]
а это недопустимый синтаксис даже проверять не буду

Ну дык а мы то откуда знаем тогда ??

AddValue какие там параметры , каких типов итд.
...
Рейтинг: 0 / 0
Перевести на С++
    #32705694
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код на паскале взят из поставки фаст репорта из ихних примеров

описание AddValue в заголовочном файле выглядит вот так
Код: plaintext
1.
2.
void __fastcall AddValue(const Variant * Rows, const int Rows_Size, const Variant * Columns, const
int Columns_Size, const Variant * Cells, const int Cells_Size);

тут передается 6 параметров, в примере только 3

вчера остановился на таком виде обработчика
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
TfrxCrossView* Cross;
AnsiString s=c->ClassName();
    if(s == "TfrxCrossView")
    for (int i =  1  ;i<= 16 ;i++)
      for (int j =  1 ;j<= 16 ;j++)
       {
            Cross->AddValue((const Variant*) &i,
             10 ,
            (const Variant*) &j,
             10 ,
            (const Variant*) &("Строка текста"),
             20 
            );

       }
при компиляции ошибок не возникает
при выполнении этого кода вызникает исключение
изнасилованый доступ
я так и не могу понять что за объект должен содержаться в том адресе куда программа пытается обратиться TfrxCrossView невизуальный объект он присутствует на форме поэтому я не использую оператор new
крышу так и не поймал :)
...
Рейтинг: 0 / 0
Перевести на С++
    #32705822
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хмм скорее с размерами у тя пробема
ну попробуй так

Код: plaintext
1.
2.
3.
4.
Variant v = i;
Variant v1 = j;
Variant v2 = StringGrid1->Cells[i -  1 ][j -  1 ];
Cross->AddValue(&v,sizeof(v),&v1,sizeof(v1),&v2,sizeo(v2));

и еще , а гиде инициализация переменнной ?

Код: plaintext
1.
  TfrxCrossView* Cross;



 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Перевести на С++
    #32705830
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя sizeof(v), вообще с вариантами похоже не катит
что то я попробовал а он мне всегда возращает 16 :)



 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Перевести на С++
    #32705945
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
//и еще , а гиде инициализация переменнной ?
Она инициализирована атвичаю


но твой вариант все равно не катит в отладчике вижу что обработчик принял первые 3 параметра а на 4-м получается затык, в адресе где он должен находиться болт т.е. там ничего нет попробовал еще вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
int pRows[ 1 ],pCols[ 1 ];
AnsiString pStrs[ 1 ];
....
            pRows[ 0 ] = i;
            pCols[ 0 ] = j;
            pStrs[ 0 ] = "??????? ????";
....
           Cross->AddValue((const Variant*)pRows,
             1 ,
            (const Variant*) pCols,
             1 ,
            (const Variant*) pStrs,
             1 
            );
тоже болт тоже на четвертом параметре
в отладчике вижу что TfrxCustomCrossView::AddValue(...)
обрабатывается и останавливается именно на 4-м параметре
а ему и требуются 4 параметра нах в описании еще 2 не знаю
...
Рейтинг: 0 / 0
Перевести на С++
    #32706123
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну как нах не нужно ,
у тебя три вариантных типа ,
вот передал что то и размер типа передай :))


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Перевести на С++
    #32706911
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делал ни памагает :/
люди йа дурак ?
...
Рейтинг: 0 / 0
Перевести на С++
    #32706982
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БурыйТинаделал ни памагает :/
люди йа дурак ?

Да и не только

я чето тоже ничерта вникнуть не могу как с этой бодягой разобраться .
...
Рейтинг: 0 / 0
Перевести на С++
    #32707384
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Анатолий Широков
--Результат приведения с помощью dynamic_cast-а проверить на 0 не помешает:

а если внимательно присмотреться ?
Код: plaintext
1.
  for(int=  1 ; c && i <= 6 ; i++)
...
Рейтинг: 0 / 0
Перевести на С++
    #32707514
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВСЕ РАЗОБРАЛСЯ
если кому интересно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
void __fastcall Tshet_faktura::frxReport1BeforePrint(
      TfrxReportComponent *c)
{
TfrxCrossView* Cross;

 //AnsiString pStrs[1]; 
 //int pRows[1],pCols[1]; 
AnsiString s=c->ClassName();
 //Variant vInteger(4); 

    if(s == "TfrxCrossView")
    {
      Cross = (TfrxCrossView*)c;
      for (int i =  1  ;i<= 16 ;i++)
      {
        for (int j =  1 ;j<= 16 ;j++)
        {

            Variant pRows[] = {i};
            Variant pCols[] = {j};
            Variant pStrs[] = {"12345"};
            int nSize = ARRAYSIZE(pStrs);
            Caption = IntToStr(nSize);
            Cross->AddValue((const Variant*)pRows,ARRAYSIZE(pRows)- 1 ,
            (const Variant*)pCols,ARRAYSIZE(pCols)- 1 ,
            (const Variant*)pStrs,ARRAYSIZE(pStrs)- 1 );
        }
      }
    }
}

сыро но это то что у меня только что заработало :)
...
Рейтинг: 0 / 0
Перевести на С++
    #32707566
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
продолжение блин
может у меня совсем крышу снесло
но когда я передаю буквы любые русские англицкие, а не цифры то получаю исключение Invalid Variant Type conversion
Где грабли ?
...
Рейтинг: 0 / 0
Перевести на С++
    #32707812
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а нафиг это нужно приведение типов (const Variant*) ??


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
Перевести на С++
    #32707858
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 JibSkeart
Это осталось от отладки, если убираю приведение типов все равно передаются только цифры никакая буква ни русская ни англицкая не передается :/
...
Рейтинг: 0 / 0
Перевести на С++
    #32709504
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разъибался
----------------------
прастите
не у держался

...
Рейтинг: 0 / 0
Перевести на С++
    #32709768
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БурыйТинаразъибался
----------------------
прастите
не у держался



И че было ?!!
...
Рейтинг: 0 / 0
Перевести на С++
    #32711178
Фотография БурыйТина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 JibSkeart
отчет в форме пытался вычислять значения ячеек ячейки
у него это по умолчанию встает
вот такая фигня

Дарова кстати :)

скора 6666

...
Рейтинг: 0 / 0
Перевести на С++
    #32711452
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БурыйТина2 JibSkeart
отчет в форме пытался вычислять значения ячеек ячейки
у него это по умолчанию встает
вот такая фигня

Дарова кстати :)

скора 6666



Дорово :)

точно скоро 6666
...
Рейтинг: 0 / 0
25 сообщений из 25, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перевести на С++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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