|
-
February 5th, 2017, 03:30 PM
#1
Forward declaration is not working
Hello . I'm working on C++/CLI app and I'm having problems with forward declaration. I was reading how compiler works and everything and I still don't get it. Here is my code:
Search.h:
Code:
#pragma once
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
namespace SMSALENalozi {
/// <summary>
/// Summary for Search
/// </summary>
public ref class Search : public System::Windows::Forms::UserControl
{
public:
Search(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
trazi_label->Parent = search_background_picturebox;
searchby_combobox->SelectedIndex = 0;
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Search()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::PictureBox^ search_background_picturebox;
protected:
private: System::Windows::Forms::Label^ trazi_label;
private: System::Windows::Forms::TextBox^ accountwriting_textbox;
private: System::Windows::Forms::ComboBox^ searchby_combobox;
protected:
private:
/// <summary>
/// Required designer variable.
Control^ window_control;
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Search::typeid));
this->search_background_picturebox = (gcnew System::Windows::Forms::PictureBox());
this->trazi_label = (gcnew System::Windows::Forms::Label());
this->accountwriting_textbox = (gcnew System::Windows::Forms::TextBox());
this->searchby_combobox = (gcnew System::Windows::Forms::ComboBox());
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->search_background_picturebox))->BeginInit();
this->SuspendLayout();
//
// search_background_picturebox
//
this->search_background_picturebox->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"search_background_picturebox.Image")));
this->search_background_picturebox->Location = System::Drawing::Point(0, 0);
this->search_background_picturebox->Name = L"search_background_picturebox";
this->search_background_picturebox->Size = System::Drawing::Size(884, 561);
this->search_background_picturebox->SizeMode = System::Windows::Forms::PictureBoxSizeMode::AutoSize;
this->search_background_picturebox->TabIndex = 0;
this->search_background_picturebox->TabStop = false;
//
// trazi_label
//
this->trazi_label->AutoSize = true;
this->trazi_label->BackColor = System::Drawing::Color::Transparent;
this->trazi_label->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 24, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->trazi_label->ForeColor = System::Drawing::Color::White;
this->trazi_label->Location = System::Drawing::Point(399, 198);
this->trazi_label->Name = L"trazi_label";
this->trazi_label->Size = System::Drawing::Size(87, 37);
this->trazi_label->TabIndex = 0;
this->trazi_label->Text = L"traži:";
//
// accountwriting_textbox
//
this->accountwriting_textbox->AutoCompleteCustomSource->AddRange(gcnew cli::array< System::String^ >(4) {
L"FILIP", L"STEFAN",
L"SALE", L"SLADJA"
});
this->accountwriting_textbox->AutoCompleteMode = System::Windows::Forms::AutoCompleteMode::Suggest;
this->accountwriting_textbox->AutoCompleteSource = System::Windows::Forms::AutoCompleteSource::CustomSource;
this->accountwriting_textbox->Location = System::Drawing::Point(334, 270);
this->accountwriting_textbox->Name = L"accountwriting_textbox";
this->accountwriting_textbox->Size = System::Drawing::Size(216, 20);
this->accountwriting_textbox->TabIndex = 1;
this->accountwriting_textbox->PreviewKeyDown += gcnew System::Windows::Forms::PreviewKeyDownEventHandler(this, &Search::accountwriting_textbox_PreviewKeyDown);
//
// searchby_combobox
//
this->searchby_combobox->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
this->searchby_combobox->FormattingEnabled = true;
this->searchby_combobox->Items->AddRange(gcnew cli::array< System::Object^ >(4) { L"TABLICA", L"AUTO", L"PREZIME", L"IME" });
this->searchby_combobox->Location = System::Drawing::Point(558, 270);
this->searchby_combobox->Name = L"searchby_combobox";
this->searchby_combobox->Size = System::Drawing::Size(90, 21);
this->searchby_combobox->TabIndex = 2;
//
// Search
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->Controls->Add(this->searchby_combobox);
this->Controls->Add(this->accountwriting_textbox);
this->Controls->Add(this->trazi_label);
this->Controls->Add(this->search_background_picturebox);
this->Name = L"Search";
this->Size = System::Drawing::Size(884, 561);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->search_background_picturebox))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void accountwriting_textbox_PreviewKeyDown(System::Object^ sender, System::Windows::Forms::PreviewKeyDownEventArgs^ e) {
if (e->KeyCode == Keys::Enter) {
this->Hide();
}
}
};
}
Window.h:
Code:
#pragma once
namespace SMSALENalozi {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
ref class ProgramItems; //forward declaration
/// <summary>
/// Summary for Window
/// </summary>
public ref class Window : public System::Windows::Forms::Form
{
public:
Window()
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Window()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::PictureBox^ menu_background_picturebox;
private: System::Windows::Forms::PictureBox^ logo_picturebox;
private: System::Windows::Forms::Label^ ulogujse_label;
private: System::Windows::Forms::TextBox^ passwordwriting_textbox;
private: System::Windows::Forms::Button^ ulogujse_button;
protected:
protected:
protected:
protected:
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(Window::typeid));
this->menu_background_picturebox = (gcnew System::Windows::Forms::PictureBox());
this->logo_picturebox = (gcnew System::Windows::Forms::PictureBox());
this->ulogujse_label = (gcnew System::Windows::Forms::Label());
this->passwordwriting_textbox = (gcnew System::Windows::Forms::TextBox());
this->ulogujse_button = (gcnew System::Windows::Forms::Button());
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->menu_background_picturebox))->BeginInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->logo_picturebox))->BeginInit();
this->SuspendLayout();
//
// menu_background_picturebox
//
this->menu_background_picturebox->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"menu_background_picturebox.Image")));
this->menu_background_picturebox->Location = System::Drawing::Point(0, 0);
this->menu_background_picturebox->Name = L"menu_background_picturebox";
this->menu_background_picturebox->Size = System::Drawing::Size(884, 561);
this->menu_background_picturebox->SizeMode = System::Windows::Forms::PictureBoxSizeMode::AutoSize;
this->menu_background_picturebox->TabIndex = 0;
this->menu_background_picturebox->TabStop = false;
//
// logo_picturebox
//
this->logo_picturebox->BackColor = System::Drawing::Color::Transparent;
this->logo_picturebox->Image = (cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"logo_picturebox.Image")));
this->logo_picturebox->Location = System::Drawing::Point(269, 108);
this->logo_picturebox->Name = L"logo_picturebox";
this->logo_picturebox->Size = System::Drawing::Size(346, 206);
this->logo_picturebox->SizeMode = System::Windows::Forms::PictureBoxSizeMode::AutoSize;
this->logo_picturebox->TabIndex = 1;
this->logo_picturebox->TabStop = false;
//
// ulogujse_label
//
this->ulogujse_label->AutoSize = true;
this->ulogujse_label->BackColor = System::Drawing::Color::Transparent;
this->ulogujse_label->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 15.75F, System::Drawing::FontStyle::Regular, System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->ulogujse_label->ForeColor = System::Drawing::Color::White;
this->ulogujse_label->Location = System::Drawing::Point(390, 414);
this->ulogujse_label->Name = L"ulogujse_label";
this->ulogujse_label->Size = System::Drawing::Size(105, 25);
this->ulogujse_label->TabIndex = 2;
this->ulogujse_label->Text = L"uloguj se:";
//
// passwordwriting_textbox
//
this->passwordwriting_textbox->Location = System::Drawing::Point(334, 450);
this->passwordwriting_textbox->Name = L"passwordwriting_textbox";
this->passwordwriting_textbox->Size = System::Drawing::Size(216, 20);
this->passwordwriting_textbox->TabIndex = 3;
this->passwordwriting_textbox->UseSystemPasswordChar = true;
this->passwordwriting_textbox->KeyPress += gcnew System::Windows::Forms::KeyPressEventHandler(this, &Window::passwordwriting_textbox_KeyPress);
//
// ulogujse_button
//
this->ulogujse_button->Location = System::Drawing::Point(406, 486);
this->ulogujse_button->Name = L"ulogujse_button";
this->ulogujse_button->Size = System::Drawing::Size(72, 36);
this->ulogujse_button->TabIndex = 4;
this->ulogujse_button->Text = L"uloguj se";
this->ulogujse_button->UseVisualStyleBackColor = true;
//
// Window
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->BackColor = System::Drawing::Color::White;
this->ClientSize = System::Drawing::Size(884, 561);
this->Controls->Add(this->ulogujse_button);
this->Controls->Add(this->passwordwriting_textbox);
this->Controls->Add(this->ulogujse_label);
this->Controls->Add(this->logo_picturebox);
this->Controls->Add(this->menu_background_picturebox);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->MaximizeBox = false;
this->Name = L"SMSALENalozi";
this->Text = L"SMSALE Nalozi";
this->Load += gcnew System::EventHandler(this, &Window::Window_Load);
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->menu_background_picturebox))->EndInit();
(cli::safe_cast<System::ComponentModel::ISupportInitialize^>(this->logo_picturebox))->EndInit();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void Window_Load(System::Object^ sender, System::EventArgs^ e) {
logo_picturebox->Parent = menu_background_picturebox;
ulogujse_label->Parent = menu_background_picturebox;
}
private: System::Void passwordwriting_textbox_KeyPress(System::Object^ sender, System::Windows::Forms::KeyPressEventArgs^ e) {
if (e->KeyChar == (char)13) {
if (passwordwriting_textbox->Text == "KRASTA") {
ProgramItems::test; //makes error every time I add this. LINE 167
Search ^s = gcnew Search();
this->Controls->Clear();
this->Controls->Add(s);
}
}
}
};
}
Program.h:
Code:
#pragma once
#include "Search.h"
#include "Window.h"
namespace SMSALENalozi {
ref class ProgramItems {
public:
static int test;
static SMSALENalozi::Window ^window;
static SMSALENalozi::Search ^search;
};
}
Program.cpp (start point):
Code:
#include "Program.h"
using namespace System;
using namespace System::Windows::Forms;
[STAThread]
int main() {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
SMSALENalozi::ProgramItems::search = gcnew SMSALENalozi::Search();
SMSALENalozi::ProgramItems::window = gcnew SMSALENalozi::Window();
Application::Run(SMSALENalozi::ProgramItems::window);
return 0;
}
and the errors are:
C2027 use of undefined type 'SMSALENalozi::ProgramItems' File: Window.h
C2065 'test': undeclared identifier File: Window.h
Thanks .
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|