Brauche hilfe!! Grafik
-
Nicht "zeichenflaeche" ist das Problem (denn sonst würde der Fehler bei den anderen Zeilen ja auch kommen), sondern
Wollten Sie stattdessen '->' verwenden?
-
Hey Th69
Auf den Gedanken bin ich auch gekommen und habe den Punkt durch Pfeil ersetzt. Leider ohne Erfolg. Das heißt, da ist mir doch gerade ein Gedanke gekommen. Mal sehen ob funktioniert.
Gruß
champman
Nee, funkt. auch nicht. Was ist den jetzt die Klasse von "Location". Scheine ich irgendwie nicht zu verstehen.
-
...
-
Hey Swordfish
Hier der ganze Code:
#pragma once namespace test4 { 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> /// Zusammenfassung für Form1 /// </summary> public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: Konstruktorcode hier hinzufügen. // } protected: /// <summary> /// Verwendete Ressourcen bereinigen. /// </summary> ~Form1() { if (components) { delete components; } } private: Graphics ^zeichenflaeche; private: System::Windows::Forms::Panel^ panel1; protected: private: System::Windows::Forms::GroupBox^ groupBox1; private: System::Windows::Forms::RadioButton^ radioButtonKreis; private: System::Windows::Forms::RadioButton^ radioButtonRechteck; private: System::Windows::Forms::RadioButton^ radioButtonLinie; private: System::Windows::Forms::GroupBox^ groupBox2; private: System::Windows::Forms::RadioButton^ radioButton4Fach; private: System::Windows::Forms::RadioButton^ radioButton2Fach; private: System::Windows::Forms::RadioButton^ radioButtonOhne; private: System::Windows::Forms::Button^ buttonStart; private: System::Windows::Forms::Button^ buttonBeenden; private: System::Windows::Forms::Timer^ timer1; private: System::ComponentModel::IContainer^ components; private: /// <summary> /// Erforderliche Designervariable. /// </summary> #pragma region Windows Form Designer generated code /// <summary> /// Erforderliche Methode für die Designerunterstützung. /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden. /// </summary> void InitializeComponent(void) { this->components = (gcnew System::ComponentModel::Container()); this->panel1 = (gcnew System::Windows::Forms::Panel()); this->groupBox1 = (gcnew System::Windows::Forms::GroupBox()); this->radioButtonKreis = (gcnew System::Windows::Forms::RadioButton()); this->radioButtonRechteck = (gcnew System::Windows::Forms::RadioButton()); this->radioButtonLinie = (gcnew System::Windows::Forms::RadioButton()); this->groupBox2 = (gcnew System::Windows::Forms::GroupBox()); this->radioButton4Fach = (gcnew System::Windows::Forms::RadioButton()); this->radioButton2Fach = (gcnew System::Windows::Forms::RadioButton()); this->radioButtonOhne = (gcnew System::Windows::Forms::RadioButton()); this->buttonStart = (gcnew System::Windows::Forms::Button()); this->buttonBeenden = (gcnew System::Windows::Forms::Button()); this->timer1 = (gcnew System::Windows::Forms::Timer(this->components)); this->groupBox1->SuspendLayout(); this->groupBox2->SuspendLayout(); this->SuspendLayout(); // // panel1 // this->panel1->BackColor = System::Drawing::Color::White; this->panel1->Location = System::Drawing::Point(12, 12); this->panel1->Name = L"panel1"; this->panel1->Size = System::Drawing::Size(300, 300); this->panel1->TabIndex = 0; // // groupBox1 // this->groupBox1->Controls->Add(this->radioButtonKreis); this->groupBox1->Controls->Add(this->radioButtonRechteck); this->groupBox1->Controls->Add(this->radioButtonLinie); this->groupBox1->Location = System::Drawing::Point(344, 12); this->groupBox1->Name = L"groupBox1"; this->groupBox1->Size = System::Drawing::Size(200, 100); this->groupBox1->TabIndex = 1; this->groupBox1->TabStop = false; this->groupBox1->Text = L"Figuren"; // // radioButtonKreis // this->radioButtonKreis->AutoSize = true; this->radioButtonKreis->Location = System::Drawing::Point(6, 71); this->radioButtonKreis->Name = L"radioButtonKreis"; this->radioButtonKreis->Size = System::Drawing::Size(48, 17); this->radioButtonKreis->TabIndex = 2; this->radioButtonKreis->Text = L"Kreis"; this->radioButtonKreis->UseVisualStyleBackColor = true; // // radioButtonRechteck // this->radioButtonRechteck->AutoSize = true; this->radioButtonRechteck->Location = System::Drawing::Point(6, 48); this->radioButtonRechteck->Name = L"radioButtonRechteck"; this->radioButtonRechteck->Size = System::Drawing::Size(72, 17); this->radioButtonRechteck->TabIndex = 1; this->radioButtonRechteck->Text = L"Rechteck"; this->radioButtonRechteck->UseVisualStyleBackColor = true; // // radioButtonLinie // this->radioButtonLinie->AutoSize = true; this->radioButtonLinie->Checked = true; this->radioButtonLinie->Location = System::Drawing::Point(6, 25); this->radioButtonLinie->Name = L"radioButtonLinie"; this->radioButtonLinie->Size = System::Drawing::Size(47, 17); this->radioButtonLinie->TabIndex = 0; this->radioButtonLinie->TabStop = true; this->radioButtonLinie->Text = L"Linie"; this->radioButtonLinie->UseVisualStyleBackColor = true; // // groupBox2 // this->groupBox2->Controls->Add(this->radioButton4Fach); this->groupBox2->Controls->Add(this->radioButton2Fach); this->groupBox2->Controls->Add(this->radioButtonOhne); this->groupBox2->Location = System::Drawing::Point(344, 142); this->groupBox2->Name = L"groupBox2"; this->groupBox2->Size = System::Drawing::Size(200, 100); this->groupBox2->TabIndex = 2; this->groupBox2->TabStop = false; this->groupBox2->Text = L"Animation"; // // radioButton4Fach // this->radioButton4Fach->AutoSize = true; this->radioButton4Fach->Location = System::Drawing::Point(6, 74); this->radioButton4Fach->Name = L"radioButton4Fach"; this->radioButton4Fach->Size = System::Drawing::Size(58, 17); this->radioButton4Fach->TabIndex = 2; this->radioButton4Fach->TabStop = true; this->radioButton4Fach->Text = L"4 Fach"; this->radioButton4Fach->UseVisualStyleBackColor = true; // // radioButton2Fach // this->radioButton2Fach->AutoSize = true; this->radioButton2Fach->Location = System::Drawing::Point(6, 51); this->radioButton2Fach->Name = L"radioButton2Fach"; this->radioButton2Fach->Size = System::Drawing::Size(58, 17); this->radioButton2Fach->TabIndex = 1; this->radioButton2Fach->TabStop = true; this->radioButton2Fach->Text = L"2 Fach"; this->radioButton2Fach->UseVisualStyleBackColor = true; // // radioButtonOhne // this->radioButtonOhne->AutoSize = true; this->radioButtonOhne->Location = System::Drawing::Point(6, 28); this->radioButtonOhne->Name = L"radioButtonOhne"; this->radioButtonOhne->Size = System::Drawing::Size(51, 17); this->radioButtonOhne->TabIndex = 0; this->radioButtonOhne->TabStop = true; this->radioButtonOhne->Text = L"Ohne"; this->radioButtonOhne->UseVisualStyleBackColor = true; // // buttonStart // this->buttonStart->Location = System::Drawing::Point(360, 353); this->buttonStart->Name = L"buttonStart"; this->buttonStart->Size = System::Drawing::Size(75, 23); this->buttonStart->TabIndex = 3; this->buttonStart->Text = L"Start"; this->buttonStart->UseVisualStyleBackColor = true; this->buttonStart->Click += gcnew System::EventHandler(this, &Form1::buttonStart_Click); // // buttonBeenden // this->buttonBeenden->Location = System::Drawing::Point(488, 353); this->buttonBeenden->Name = L"buttonBeenden"; this->buttonBeenden->Size = System::Drawing::Size(75, 23); this->buttonBeenden->TabIndex = 4; this->buttonBeenden->Text = L"Beenden"; this->buttonBeenden->UseVisualStyleBackColor = true; this->buttonBeenden->Click += gcnew System::EventHandler(this, &Form1::buttonBeenden_Click); // // timer1 // this->timer1->Tick += gcnew System::EventHandler(this, &Form1::timer1_Tick); // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(584, 382); this->Controls->Add(this->buttonBeenden); this->Controls->Add(this->buttonStart); this->Controls->Add(this->groupBox2); this->Controls->Add(this->groupBox1); this->Controls->Add(this->panel1); this->Name = L"Form1"; this->Text = L"Form1"; this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load); this->groupBox1->ResumeLayout(false); this->groupBox1->PerformLayout(); this->groupBox2->ResumeLayout(false); this->groupBox2->PerformLayout(); this->ResumeLayout(false); } #pragma endregion private: System::Void buttonBeenden_Click(System::Object^ sender, System::EventArgs^ e) { Close(); } private: System::Void buttonStart_Click(System::Object^ sender, System::EventArgs^ e) { Pen ^stift = gcnew Pen(Color::Black); /*panel1.Width = 100; panel1.Height =100;*/ if(radioButtonLinie -> Checked == true) { zeichenflaeche -> DrawLine(stift, 100,150,200,150); } if(radioButtonRechteck -> Checked == true) { zeichenflaeche -> DrawRectangle(stift, 100,100,100,100); } if(radioButtonKreis -> Checked == true) { zeichenflaeche -> DrawEllipse(stift, 100,100,100,100); } } private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) { zeichenflaeche = panel1 -> CreateGraphics(); } private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) { /*Graphics ^zeichenflaeche; zeichenflaeche = panel1 -> CreateGraphics();*/ Pen ^stift = gcnew Pen(Color::Black); if(radioButtonOhne -> Checked == true) { } if(radioButtonRechteck -> Checked == true && radioButton2Fach -> Checked == true) { for(Int32 i = 0; i < 22; i++) { zeichenflaeche -> DrawRectangle(stift, 100,100,100,100); panel1.Location = Point(panel1.Location.X - 5, panel1.Location.Y - 5); zeichenflaeche -> DrawRectangle(stift,paenl1); } } } }; }
Ist mein erster Gehversuch mit Grafik in C++/CLI. (Trotz dem Bekannten lieber C# dafür zu nehmen)
Dank und Gruß
champman
-
...
-
Hallo Swordfish
Ist zwar noch nicht ganz nach meiner Vorstellung, aber es lässt sich schon mal compilieren.
Warum C++/CLI? Nun ich mache einen Fernlehrgang mit diesem Programm und habe den Unterschied erst später bemerkt. Jetzt einfach durch und dann weiter sehen.
Diese Übung bereitet mich auf die Einsendeaufgabe vor, die ein wenig komplexer gestaltet ist als meine kleine Übung. Wie soll ich die Aufgabe lösen, wenn ich noch nicht mal einfache Dinge in diesem Thema beherrsche.
Meine Fragen zu Deiner Lösung warum this in dieser Anweisung?
panel1->Location = Point( this->panel1->Location.X - 5, panel1->Location.Y - 5);
und warum this -> panel1 -> DisplayRectangle?
zeichenflaeche->DrawRectangle( stift, this->panel1->DisplayRectangle );
Werde versuchen in den mir zur Verfügung stehenden Heften und Büchern etwas zu finden, aber die sind mit diesem recht dürftig bestückt. Darum wäre es nett, wenn Du mir das etwas anschaulicher erklären würdest.
Lieben Dank
champman
-
...
-
So ein Quatsch war er denn nun doch nicht, denn dadurch hat sich das Programm ja wenigstens ohne zu mucken compilieren lassen.
Gruß
champman
-
...
-
Davor hat er nur die Fehlermeldungen rausgeschmissen. Also nach Deiner Bemühung zumindest läuft das Compilieren ohne Meckern. Werde also in der Richtung weiter ansetzen müssen.
Gruß
champman
-
...