0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5
1

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

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

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

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

Если можете, объясните, за что отвечает каждый файл?
Заранее спасибо =)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2012, 17:04
Ответы с готовыми решениями:

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

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

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

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

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

И в чем суть "связки форм"?
Если тебе, например, по нажатию кнопки с первой формы нужно сделать активной или видимой вторую форму, то так и пишешь в обработчике кнопки:
C++
1
2
3
Form2->SetFocus();
//или
Form2->Visible = true;
0
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
49 / 25 / 2
Регистрация: 09.06.2008
Сообщений: 227
27.10.2012, 18:53 4
Form2 - в исполняемом файле не объявлена, допишите в нем рядом с
#include "Form1.h"
еще и
#include "Form2.h"
1
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
49 / 25 / 2
Регистрация: 09.06.2008
Сообщений: 227
28.10.2012, 19:58 6
Если вы выложите исходные коды, то понять ошибки будет гораздо проще...
0
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2012, 18:37
Помогаю со студенческими работами здесь

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

Связь двух форм
Здравствуйте. Создаю учебную базу абоненты, есть две формы &quot;абоненты&quot; и &quot;личные данные&quot; созданные...

Связь форм (GUI)
Добрый день! Скажите, пожалуйста, как данные введенные в одной форме переснести в другую. (...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru