Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Darkauron
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5
#1

Связь нескольких форм - C++

26.10.2012, 17:04. Просмотров 1343. Ответов 6
Метки нет (Все метки)

Добрый вечер, народ.
Я столкнулся с такой проблемой, как связка форм в С++. Я писал на дельфи, там намного легче с этим вопросом, подскажите как связать две формы, как вызвать одну форму, посредством нажатия на Button. И в какие файлы писать код?

У меня есть:
Заголовочные файлы: Form1.h, Form2.h, resource.h, stdafx.h
И файлы исходного кода: AssemblyInfo.cpp, stdafx.cpp, и файл (название проекта).cpp

Если можете, объясните, за что отвечает каждый файл?
Заранее спасибо =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2012, 17:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Связь нескольких форм (C++):

связь форм - Delphi
есть две формы. в одной из них подгружаются фотографии. я хочу, чтобы по ходу загрузки этих фото на другой форме передвигался Prosress...

Связь 2 форм - MS Access
Я из другого филма и прошу о помощи 1. Есть формы /Мемоордер/ и /Счета/ как связать поля Text12 и Text14 чтобы если в "Дебет"-е был 2521...

Связь форм - C#
Добрый день! Помогите, пожалуйста. Есть две формы. Пытаюсь их связать, но работа происходит некорректно Первая форма: private...

Связь форм - Delphi
Подскажите пожалуйста!!! Нужно связать форму с родительской, на дочерней форме расположены еdit i 2 Checkbox ( в них данные, которые...

связь двух форм - MS Access
Здравствуйте. Создаю учебную базу абоненты, есть две формы "абоненты" и "личные данные" созданные на основе таблиц. Необходимо связать две...

Связь двух форм - C#
есть 2 формы. в 1 соединяемся с нужно БД: ADODB.Connection cnn = new ADODB.Connection(); //объет соединения с БД ADODB.Recordset...

6
prosto_lynx
49 / 24 / 1
Регистрация: 09.06.2008
Сообщений: 226
26.10.2012, 18:30 #2
Ты чью-то программу взял и хочешь в ней разобраться или свою пишешь?..

И в чем суть "связки форм"?
Если тебе, например, по нажатию кнопки с первой формы нужно сделать активной или видимой вторую форму, то так и пишешь в обработчике кнопки:
C++
1
2
3
Form2->SetFocus();
//или
Form2->Visible = true;
0
Darkauron
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5
27.10.2012, 12:26  [ТС] #3
Ошибка 1 error C2065: Form2: необъявленный идентификатор c:\documents and settings\администратор\мои документы\visual studio 2010\projects\erwrwrwr\erwrwrwr\Form1.h 78 1 erwrwrwr
Ошибка 2 error C2227: выражение слева от "->SetFocus" должно указывать на тип класса, структуры или объединения либо на универсальный тип c:\documents and settings\администратор\мои документы\visual studio 2010\projects\erwrwrwr\erwrwrwr\Form1.h 78 1 erwrwrwr

вот что пишет, когда я пишу в обработчик кнопки: Form2->SetFocus();

Полностью код кнопки:

C++ (Qt)
1
2
3
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {                
                 Form2->SetFocus();
 }};}
Что мне делать?
0
prosto_lynx
49 / 24 / 1
Регистрация: 09.06.2008
Сообщений: 226
27.10.2012, 18:53 #4
Form2 - в исполняемом файле не объявлена, допишите в нем рядом с
#include "Form1.h"
еще и
#include "Form2.h"
1
Darkauron
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5
28.10.2012, 13:50  [ТС] #5
Теперь пишет такие ошибки!

Ошибка 1 error C2143: синтаксическая ошибка: отсутствие ";" перед "->" c:\documents and settings\администратор\мои документы\visual studio 2010\projects\x\x\Form1.h 80 1 x
Ошибка 2 error C2143: синтаксическая ошибка: отсутствие ";" перед "->" c:\documents and settings\администратор\мои документы\visual studio 2010\projects\x\x\Form1.h 80 1 x
Ошибка 3 error C2143: синтаксическая ошибка: отсутствие ";" перед "->" c:\documents and settings\администратор\мои документы\visual studio 2010\projects\x\x\Form1.h 80 1 x
Ошибка 4 error C2143: синтаксическая ошибка: отсутствие ";" перед "->" c:\documents and settings\администратор\мои документы\visual studio 2010\projects\x\x\Form1.h 80 1 x
0
prosto_lynx
49 / 24 / 1
Регистрация: 09.06.2008
Сообщений: 226
28.10.2012, 19:58 #6
Если вы выложите исходные коды, то понять ошибки будет гораздо проще...
0
Darkauron
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5
29.10.2012, 18:37  [ТС] #7
Цитата Сообщение от prosto_lynx Посмотреть сообщение
Form1.h"
Это код в файле Form1.h

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#pragma once
#include "Form2.h"
 
namespace forms {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для Form1
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(49, 53);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(184, 166);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(292, 271);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        Form2->Visible = true;   }
    };
}

###################################################################


Это код в файле "мой проект.cpp"
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#pragma once
#include "Form2.h"
 
namespace forms {
 
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
 
    /// <summary>
    /// Сводка для Form1
    /// </summary>
    public ref class Form1 : public System::Windows::Forms::Form
    {
    public:
        Form1(void)
        {
            InitializeComponent();
            //
            //TODO: добавьте код конструктора
            //
        }
 
    protected:
        /// <summary>
        /// Освободить все используемые ресурсы.
        /// </summary>
        ~Form1()
        {
            if (components)
            {
                delete components;
            }
        }
    private: System::Windows::Forms::Button^  button1;
    protected: 
 
    private:
        /// <summary>
        /// Требуется переменная конструктора.
        /// </summary>
        System::ComponentModel::Container ^components;
 
#pragma region Windows Form Designer generated code
        /// <summary>
        /// Обязательный метод для поддержки конструктора - не изменяйте
        /// содержимое данного метода при помощи редактора кода.
        /// </summary>
        void InitializeComponent(void)
        {
            this->button1 = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // button1
            // 
            this->button1->Location = System::Drawing::Point(49, 53);
            this->button1->Name = L"button1";
            this->button1->Size = System::Drawing::Size(184, 166);
            this->button1->TabIndex = 0;
            this->button1->Text = L"button1";
            this->button1->UseVisualStyleBackColor = true;
            this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
            // 
            // Form1
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(292, 271);
            this->Controls->Add(this->button1);
            this->Name = L"Form1";
            this->Text = L"Form1";
            this->ResumeLayout(false);
 
        }
#pragma endregion
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        Form2->Visible = true;   }
    };
}

#################################################################


Это код в файле AssemblyInfo.cpp
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
34
35
36
37
38
39
40
#include "stdafx.h"
 
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;
 
//
// Общие сведения об этой сборке предоставляются следующим набором
// атрибутов. Отредактируйте значения этих атрибутов, чтобы изменить
// общие сведения об этой сборке.
//
[assembly:AssemblyTitleAttribute("forms")];
[assembly:AssemblyDescriptionAttribute("")];
[assembly:AssemblyConfigurationAttribute("")];
[assembly:AssemblyCompanyAttribute("WareZ Provider ")];
[assembly:AssemblyProductAttribute("forms")];
[assembly:AssemblyCopyrightAttribute("Copyright (c) WareZ Provider  2012")];
[assembly:AssemblyTrademarkAttribute("")];
[assembly:AssemblyCultureAttribute("")];
 
//
// Сведения о версии сборки состоят из следующих четырех значений:
//
//      Основной номер версии
//      Дополнительный номер версии
//      Номер построения
//      Редакция
//
// Можно задать все значения или принять номер построения и номер редакции по умолчанию,
// используя "*", как показано ниже:
 
[assembly:AssemblyVersionAttribute("1.0.*")];
 
[assembly:ComVisible(false)];
 
[assembly:CLSCompliantAttribute(true)];
 
[assembly:SecurityPermission(SecurityAction::RequestMinimum, UnmanagedCode = true)];


######################################################################


Это код в файле asdafx.cpp
C++
1
2
#include "StdAfx.h"
#include "Form2.h"
0
29.10.2012, 18:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2012, 18:37
Привет! Вот еще темы с ответами:

Связь 2 форм в проекте - C#
Добрый день! Помогите разобраться с проблемой. В проекте С# есть 2 формы, одна - основная, там все таблицы и расчеты, а во второй мне...

связь двух форм - JavaScript
Добрый день. Хочу сделать такую штуку - есть вываливающийся список, при нажатии появляется ещё один список + кнопка отправки( за это...

Обновление и связь подчиненных форм - MS Access
Ребят, нуждаюсь в скорой помощи.. 1) Связь подчиненной формы, со своей подчиненной формой. По ID Типу модуля. Как сделать так , чтобы при...

Связь Юнитов, Форм и переменных - C++ Builder
Здравствуйте! Подскажите пожалуйста как связать Юниты между собой. У меня есть Form1 в которой идёт описание структуры:struct...


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

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

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