Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2011, 08:42   #1
pole_s
 
Регистрация: 13.12.2009
Сообщений: 7
По умолчанию Строки Ansi

Здравствуйте, мигрирую с Delphi на C++.

[code Delphi]
Form_Main.Label_1.Caption :=
'str1: '+
intToStr(Form_Main.Width)+
' str2.';


[C++]
Form_Main->Label_1->Caption =
"str1: "+
Form_Main->Width+
" str2.";

Form_Main->Label_1->Caption =
"str1: "+
" str2.";

на C++ ругает за такие действия,
"Invalid pointer addition"

---
(должен же быть простой выход,
или в C++ всё на много сложнее)

как в первом так и во втором случае не катит.
покажите пожалуйста как в C++ такое реализуется

Последний раз редактировалось pole_s; 25.10.2011 в 09:12. Причина: поправки
pole_s вне форума Ответить с цитированием
Старый 25.10.2011, 08:52   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Вот ошибка ":=" в C используется "=".
И заче Вы используете "intToStr(Form_Main->Width)", C++ хорошо понимает и просто Width. Даже не надо писать Form_Main если Вы не работаете из другой формы..
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 25.10.2011 в 08:57.
Smitt&Wesson вне форума Ответить с цитированием
Старый 25.10.2011, 09:35   #3
pole_s
 
Регистрация: 13.12.2009
Сообщений: 7
По умолчанию

вот более точный вопрос

[code Delphi]
Form_Main.Label_1.Caption :=
'str1: '+
intToStr(Form_Main.Width)+
' str2.';


[C++]
Form_Main->Label_1->Caption =
"str1: "+
Form_Main->Width+
" str2.";

Form_Main->Label_1->Caption =
"str1: "+
" str2.";

на C++ ругает за такие действия,
"Invalid pointer addition"

---
(должен же быть простой выход,
или в C++ всё на много сложнее)

как в первом так и во втором случае не катит.
покажите пожалуйста как в C++ такое реализуется
pole_s вне форума Ответить с цитированием
Старый 25.10.2011, 09:54   #4
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Почему у Вас Label_1, а не Label1? Может в этом дело?
Если Лабель переименована то эта запись верная

Form_Main->Label_1->Caption = "str1: "+" str2.";
Ругаться не должен.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 25.10.2011 в 09:57.
Smitt&Wesson вне форума Ответить с цитированием
Старый 25.10.2011, 10:05   #5
pole_s
 
Регистрация: 13.12.2009
Сообщений: 7
По умолчанию

Form_Main->Caption = "1str"+"str";

вот так тоже ругается, "Invalid pointer addition",
(может это из за того что Caption имеет тип AnsiString?
вроде это тоже самое что и String в Delphi)
никак не разберусь

намекает что + использовать нельзя

Строки вроде сцепляются при помощи +

(вреда C++ Builder 6)

Последний раз редактировалось pole_s; 25.10.2011 в 10:13.
pole_s вне форума Ответить с цитированием
Старый 25.10.2011, 10:14   #6
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Не мучься. Кинь проект. Гляну.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 25.10.2011, 10:15   #7
pole_s
 
Регистрация: 13.12.2009
Сообщений: 7
По умолчанию

//---------------------------------------------------------------------------


#pragma hdrstop

#include "uScene.h"
#include "uH.h"
#include "uForm_Main.h"


//---------------------------------------------------------------------------

#pragma package(smart_init)

void pUpdateSceneVal() {
/*AnsiString s1 = "[Scene param] \n";
s1 += "Pos: \n";
s1 += "Angle: ";
s1 += FloatToStr(vInterface.scene.angle3f .x)+"/";
s1 += FloatToStr(vInterface.scene.angle3f .y)+"/";
s1 += FloatToStr(vInterface.scene.angle3f .z);
*/


Form_Main->Caption = "1str" + "str";
}



float fAngleOptimize(float vAngle) {
if (vAngle >= 360) vAngle = vAngle-360;
if (vAngle <= -360) vAngle = vAngle + 360;
return vAngle;
}

void pSceneAutoRotate() {
if (! vInterface.scene.autoRotate) return;

vInterface.scene.angle3f.y =
fAngleOptimize(
vInterface.scene.angle3f.y + vInterface.scene.autoRotateSpeed
);
pUpdateSceneVal();
}
pole_s вне форума Ответить с цитированием
Старый 25.10.2011, 10:16   #8
pole_s
 
Регистрация: 13.12.2009
Сообщений: 7
По умолчанию

может модуль нужно подключить какой?
pole_s вне форума Ответить с цитированием
Старый 25.10.2011, 10:18   #9
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Весь проект, а не только .cpp файл.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 25.10.2011, 10:28   #10
pole_s
 
Регистрация: 13.12.2009
Сообщений: 7
По умолчанию

http://webfile.ru/5624762
pole_s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перекодировать файл в UTF-8->ANSI, ANSI -> UFT-8 Человек_Борща Общие вопросы Delphi 7 19.05.2011 18:47
Конвертация строки CString из Юникода в ANSI Moorindal15 Помощь студентам 0 26.04.2011 18:06
Ansi в UTF-8 и наоборот UTF-8 в Ansi Alar Работа с сетью в Delphi 3 09.12.2010 17:02
ANSI C ... eva.t Помощь студентам 11 11.02.2010 23:20
ANSI HunterMan Win Api 2 18.04.2008 23:17