Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
92 / 92 / 99
Регистрация: 25.01.2013
Сообщений: 326

Как преобразовать этот класс из Delphi в c++

29.05.2014, 12:50. Показов 1995. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Delphi
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
  TKarta=class(TObject)
  private
    FDvig: boolean;
    Fi: integer;
    Fj: integer;
    FMast: string;
    FMesto: boolean;
    FRang: string;
    FV: boolean;
    procedure SetDviz(AValue: boolean);
    procedure Seti(AValue: integer);
    procedure Setj(AValue: integer);
    procedure SetMast(AValue: string);
    procedure SetMesto(AValue: boolean);
    procedure SetRang(AValue: string);
    procedure SetV(AValue: boolean);
    { private declarations }
  public
    property Mast:string read FMast write SetMast;
    property Rang:string read FRang write SetRang;
    property i:integer read Fi write Seti;
    property j:integer read Fj write Setj;
    property Visible:boolean read FV write SetV;
    property Dvig:boolean read FDvig write SetDviz;
    property Mesto:boolean read FMesto write SetMesto;
    { public declarations }
  end;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.05.2014, 12:50
Ответы с готовыми решениями:

Как преобразовать класс из динамически сгенерированного кода в локальный класс?
Исходные данные: Форма, на ней кнопка, по нажатию на которую компилируется программа, совершает расчёты, возвращает результат. ...

Как преобразовать указатель на класс к указателю на асбтрактный класс?
Но тут есть одна тонкость- два промежуточных класса. Вот код, надеюсь всё из него понятно. #include <stdio.h> ...

Как с использованием map и lambda-функции преобразовать этот код?
# -*- coding: utf-8 -*- from lxml import html import requests page = requests.get('http://tass.ru/rss/v2.xml') tree =...

25
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
29.05.2014, 13:28
C++
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
class TKarta
{
private:
    bool FDvig;
    int Fi;
    int Fj;
    String FMast;
    bool FMesto;
    String FRang;
    bool FV;
 
    void __fastcall SetDviz(bool AValue);
    void __fastcall Seti(int AValue);
    void __fastcall Setj(int AValue);
    void __fastcall SetMast(String AValue);
    void __fastcall SetMesto(bool AValue);
    void __fastcall SetRang(String AValue);
    void __fastcall SetV(bool AValue);
    // private declarations
 
public:
    __property String Mast = {read = FMast, write = SetMast};
    __property String Rang = {read = FRang, write = SetRang};
    __property int i = {read = Fi, write = Seti};
    __property int j = {read = Fj, write = Setj};
    __property bool Visible = {read = FV, write = SetV};
    __property bool Dvig = {read = FDvig, write = SetDviz};
    __property bool Mesto = {read = FMesto, write = SetMesto};
    // public declarations
};
Как-то так...
1
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
29.05.2014, 13:39
UI, а часом не
C++
1
2
3
4
class TKarta : public TObject
{
///
};
?
0
92 / 92 / 99
Регистрация: 25.01.2013
Сообщений: 326
29.05.2014, 13:41  [ТС]
В делфи есть горячая клавиша "Ctrl-Shift-C", чтобы закончить метод (если он описан - создать шаблон для реализации,если есть реализация - объявить метод). Можно ли так сделать в C++?
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
29.05.2014, 14:16
Цитата Сообщение от Дикутенз Посмотреть сообщение
Можно ли так сделать в C++?
Имелось в виду наверное в билдере.
Попробуйте, может вам подойдет сочетание клавиш Ctrl + J.

Добавлено через 1 минуту
Хотя нет. Это только шапки.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
29.05.2014, 15:06
Цитата Сообщение от _Dimon_ Посмотреть сообщение
а часом не
Не, и так будет работать. Я не вижу тут никаких зависимостей от TObject...
1
92 / 92 / 99
Регистрация: 25.01.2013
Сообщений: 326
29.05.2014, 19:23  [ТС]
Программа ругается на строчки, где тип String.
Я написал в начале #include <string>, но все равно ошибки. Может я что-то не так сделал, не пойму. Раньше на лазарусе работал, сейчас C++ изучаю и еще не всё понимаю
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
29.05.2014, 19:40
Цитата Сообщение от Дикутенз Посмотреть сообщение
Программа ругается на строчки, где тип String.
Программа прекрасно компилируется, если что, безо всяких добавлений... Я сначала проверяю, и только потом - отвечаю.
Миниатюры
Как преобразовать этот класс из Delphi в c++  
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
30.05.2014, 02:43
Цитата Сообщение от UI Посмотреть сообщение
Не, и так будет работать. Я не вижу тут никаких зависимостей от TObject...
Это понятно, но все же для аутентичности ....

Добавлено через 11 минут
Дикутенз, какая версия билдера?
0
92 / 92 / 99
Регистрация: 25.01.2013
Сообщений: 326
08.06.2014, 16:42  [ТС]
А fastcall Set нужно где-то описывать?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
08.06.2014, 17:22
Реализацию - нужно. Но ты ж не привел ее Дельфийский вариант...
0
92 / 92 / 99
Регистрация: 25.01.2013
Сообщений: 326
08.06.2014, 17:27  [ТС]
В делфи она сама создавалась
C++
1
2
if Fi=AValue then Exit;
Fi:=AValue;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33398 / 21508 / 8236
Регистрация: 22.10.2011
Сообщений: 36,906
Записей в блоге: 12
08.06.2014, 19:43
Цитата Сообщение от Дикутенз Посмотреть сообщение
В делфи она сама создавалась
Сказки не надо рассказывать. То я не знаю, как в Дельфи что происходит. Создается "болванка", которую надо еще заполнить.

Нужна помощь с переводом - показывай класс полностью, мне в "испорченные телефоны" играть надоело...
0
92 / 92 / 99
Регистрация: 25.01.2013
Сообщений: 326
08.06.2014, 19:50  [ТС]
Вот такой у меня класс. В строчках, где сравнивается строковые типы данных(String) - ошибки
C++
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
31
class TKarta
{
private:
    bool FDvig;
    int Fi;
    int Fj;
    String FMast;
    bool FMesto;
    String FRang;
    bool FV;
 
    void __fastcall SetDviz(bool AValue){if(FDvig=AValue){exit;}Dvig=AValue;};
    void __fastcall Seti(int AValue){if(Fi=AValue){exit;}Fi=AValue;};
    void __fastcall Setj(int AValue){if(Fj=AValue){exit;}Fj=AValue;};
    void __fastcall SetMast(String AValue){if(FMast=AValue){exit;}FMast=AValue;};
    void __fastcall SetMesto(bool AValue){if(FMesto=AValue){exit;}FMesto=AValue;};
    void __fastcall SetRang(String AValue){if(FRang=AValue){exit;}FRang=AValue;};
    void __fastcall SetV(bool AValue){if(FV=AValue){exit;}FV=AValue;};
    // private declarations
 
public:
    __property String Mast = {read = FMast, write = SetMast};
    __property String Rang = {read = FRang, write = SetRang};
    __property int i = {read = Fi, write = Seti};
    __property int j = {read = Fj, write = Setj};
    __property bool Visible = {read = FV, write = SetV};
    __property bool Dvig = {read = FDvig, write = SetDviz};
    __property bool Mesto = {read = FMesto, write = SetMesto};
 
    // public declarations
};
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
08.06.2014, 19:57
== сравнение
= присвоение

я б на твоем месте реализацию отделил от обьявления
0
92 / 92 / 99
Регистрация: 25.01.2013
Сообщений: 326
09.06.2014, 08:42  [ТС]
Цитата Сообщение от _Dimon_ Посмотреть сообщение
я б на твоем месте реализацию отделил от обьявления
почему?
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
09.06.2014, 09:56
Цитата Сообщение от Дикутенз Посмотреть сообщение
почему?
да просто мне так больше нравится.

и еще, чем отличается
C++
1
if(FMast==AValue){exit;}FMast=AValue;
от
C++
1
FMast=AValue;
?

Добавлено через 11 минут
ну а раз функции такие простенькие, то не легче без них
C++
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
31
32
33
class TKarta
{
private:
    bool FDvig;
    int Fi;
    int Fj;
    String FMast;
    bool FMesto;
    String FRang;
    bool FV;
 
    /*
    void __fastcall SetDviz(bool AValue){if(FDvig=AValue){exit;}Dvig=AValue;};
    void __fastcall Seti(int AValue){if(Fi=AValue){exit;}Fi=AValue;};
    void __fastcall Setj(int AValue){if(Fj=AValue){exit;}Fj=AValue;};
    void __fastcall SetMast(String AValue){if(FMast=AValue){exit;}FMast=AValue;};
    void __fastcall SetMesto(bool AValue){if(FMesto=AValue){exit;}FMesto=AValue;};
    void __fastcall SetRang(String AValue){if(FRang=AValue){exit;}FRang=AValue;};
    void __fastcall SetV(bool AValue){if(FV=AValue){exit;}FV=AValue;};
    */
    // private declarations
 
public:
    __property String Mast = {read = FMast, write = FMast};
    __property String Rang = {read = FRang, write = FRang};
    __property int i = {read = Fi, write = Fi};
    __property int j = {read = Fj, write = Fj};
    __property bool Visible = {read = FV, write = FV};
    __property bool Dvig = {read = FDvig, write = FDvig};
    __property bool Mesto = {read = FMesto, write = FMesto};
 
    // public declarations
};
0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
09.06.2014, 09:59

Не по теме:

Цитата Сообщение от _Dimon_ Посмотреть сообщение
да просто мне так больше нравится
А потом появляются вопросы "почему у меня шаблоны не работают". Х)



Цитата Сообщение от _Dimon_ Посмотреть сообщение
чем отличается
Тем, что в первом случае присваивание может и не выполниться.
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
09.06.2014, 10:06
SatanaXIII, а по большому счету есть разница, выполнится там присваивание или нет, если присвоит то самое значения?

Не по теме:

а насчет шаблонов, так это так трудно самому написать, что нужно пол дня в IDE искать, какой комбинацией кнопок это делается...

0
Почетный модератор
Эксперт С++
 Аватар для SatanaXIII
5851 / 2862 / 392
Регистрация: 01.11.2011
Сообщений: 6,906
09.06.2014, 10:19
Цитата Сообщение от _Dimon_ Посмотреть сообщение
а по большому счету есть разница, выполнится там присваивание или нет, если присвоит то самое значения?
У меня от такого вопроса чуть чалма не сползла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2014, 10:19
Помогаю со студенческими работами здесь

Form1.Designer.cs как найти этот класс?
Как?

Как в функции my_function преобразовать ссылку на базовый класс в ссылку на класс B или С
Всем привет, как в функции my_function преобразовать ссылку на базовый класс в ссылку на класс B или С ? class A { public: A(); ...

Создайте класс Parallelogram. Этот класс хранит декартовы координаты четырех углов параллелограмма
Создайте класс Parallelogram.Этот класс хранит декартовы координаты четырех углов параллелограмма. Должны быть предусмотрены...

Как преобразовать класс?
Доброго времени суток, подскажите пожалуйста, как можно преобразовать анонимный список List&lt;&lt; anonymous type:string...

Класс: Почему этот operator+ не хочет работать как функция внутри класса?
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class complex{ private: int re, im; public: complex(int r,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru