» Utilizator
LAMP
» Parteneri» De citit» Recomandari» Taskuri securitate » Statistici
  • 65486 de mesaje.
  • 7732 de topicuri.
  • 1231 de utilizatori.
  •  
  • Kopotosa e ultimul utilizator inregistrat.
[Detalii]

 

| |
Pagini: [1]
Print

c++ .NET [319 afisari]

Th3 P!mp
*


Mesaje: 253
OfflineOffline


buna am inceput sa umblu si eu cu form-urile din .net -> c++ si vreau sa fac o aplicatie simpla da cum am inceput am si ajuns la o problema  Big grin Oops ... am codul urmator
Code:
void setWindowTitle(char * title)
{
this->toolStripTextBox1->Text = "11111";
this->re
}

care tre sa schimbe un text  da vad ca nu merge ...
asta am in cpp-ul principal
Code:
Form1 ^f = gcnew Form1();


Application::Run(f);
f->setWindowTitle("asd");

(stiu ca nu folosesc title acolo Big grin .. da tot nu merge sa schimbe textul ...)

am incercat si cu L"text" si tot nu merge
din cate am vazut eu la MFC in  vc++ 6 trebuia dat un fel de update ... da aici daca dau this->update() nu merge ... cum sa fac aici sa imi schimbe textul (oricum cred ca se aplica la orice schimbare ...)
Logged
02-07-2009, 17:31 Twitt ::
AnaKonD
*


Mesaje: 523
OfflineOffline


Uite solutia mea:

Presupunand ca folosesti Visual C++ 2008 Express (e ala moca de la Micro$oft care abia dupa ce-l instalezi afli ca nu are MFC ca deh...e moca) creezi un nou proiect ( File -> New -> Project, unde selectezi Windows Forms Application in frame-ul din dreapta). Da-i un titlu sugestiv ( de exemplu "Setare titlu fereastra" ca in cazul meu) si apasa Ok. Dupa ce-l creeaza, iti va apare o fereastra goala in modul de design. Acum arunca si tu 2 butoane in fereastra respectiva impreuna cu un label si un textbox, ca in imaginea de mai jos:


Daca ai dificultati in crearea butoanelor, label-ului si a textbox-ului, da-mi un pm sau posteaza tot aici.

Acum vei putea vedea in Form1.h cum se seteaza spre exemplu textul dintr-un label sau cel de pe un buton, chestii care te vor ajuta sa intelegi rapid cum sa le folosesti. Mai departe da dublu click pe butonul pe care ai scirs "Iesire" si se va deschide automat Form1.h la declaratia functiei care se ocupa de event-ul acestui buton. Aici vei scrie doar:
Code:
Application::Exit();

adica ne-am facut propriul buton de inchidere al aplicatiei. Iar partea care te intereseaza pe tine, cea in legatura cu schimbarea textului din label apare acum. Da din nou dublu click, insa pe celalalt buton. La fel se va deschide Form1.h cu un prototip pentru functia ce se ocupa de event-ul acestui buton si scrie urmatoarele linii de cod:

Code:
//variabila care preia stringul din textbox
String ^ titlu;

//preluam titlul introdus de utilizator
titlu = textBox1->Text;

//schimbam textul din label; la fel se face si pentru text box
label1->Text = titlu;

//bonus: setam noul titlu al ferestrei
this->Text = titlu;

Gata. De acum nu trebuie decat sa rulezi aplicatia si sa vezi cum functioneaza.

Intregul cod din Form1.h :

Code:
#pragma once


namespace Setaretitlufereastra {

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>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
///          'Resource File Name' property for the managed resource compiler tool
///          associated with all .resx files this class depends on.  Otherwise,
///          the designers will not be able to interact properly with localized
///          resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}

protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::TextBox^  textBox1;
protected:
private: System::Windows::Forms::Label^  label1;
private: System::Windows::Forms::Button^  button1;
private: System::Windows::Forms::Button^  button2;

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)
{
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->label1 = (gcnew System::Windows::Forms::Label());
this->button1 = (gcnew System::Windows::Forms::Button());
this->button2 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(15, 56);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(216, 20);
this->textBox1->TabIndex = 0;
this->textBox1->Text = L"Titlu";
//
// label1
//
this->label1->AutoSize = true;
this->label1->Location = System::Drawing::Point(12, 27);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(216, 13);
this->label1->TabIndex = 1;
this->label1->Text = L"Introduceti titlul dorit in text box-ul de mai jos:";
//
// button1
//
this->button1->Location = System::Drawing::Point(15, 189);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 23);
this->button1->TabIndex = 2;
this->button1->Text = L"Schimba titlu";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// button2
//
this->button2->Location = System::Drawing::Point(376, 189);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(75, 23);
this->button2->TabIndex = 3;
this->button2->Text = L"Iesire";
this->button2->UseVisualStyleBackColor = true;
this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(463, 224);
this->Controls->Add(this->button2);
this->Controls->Add(this->button1);
this->Controls->Add(this->label1);
this->Controls->Add(this->textBox1);
this->Name = L"Form1";
this->Text = L"Prima mea fereastra";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);
this->PerformLayout();

}
#pragma endregion
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
}
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e)
{
Application::Exit();
}
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e)
{
String ^ titlu;

titlu = textBox1->Text;

                                         label1->Text = titlu;
this->Text = titlu;
}
};
}



Ieri mi-am instalat si eu Visual C++ desi nu-mi place neam .Net . Sunt impotriva lui dar cum am probleme momentan cu C++ Builder (nu mai pot deschide nici macar un fisier ca sa-l citesc  angry ),
a trebuit sa fac un compromis. Sper doar sa nu tina mult Big grin .

Edit: sorry am vazut in programul tau char *title si am crezut ca e vorba de titlul ferestrei... Oops   am adaugat acum modificarea label-ului
Logged

"Sa nu te opresti niciodata din a-ti pune intrebari, curiozitatea sta la baza existentei."(Albert Einstein)
cross the line
03-07-2009, 11:43 Twitt ::
Th3 P!mp
*


Mesaje: 253
OfflineOffline


am reusit tot aseara sa rezolv .. se pare ca nu poate sa modifice nici o componenta decat din interior ... o sa mai invat
Logged
03-07-2009, 15:48 Twitt ::
Pagini: [1]
Print
SkullBox Forum  |  Development  |  Java / C / C++ / C#  |  Topic: c++ .NET