Forum: PC-Programmierung c++/cli Button-Array erstellen


von Florian (Gast)


Lesenswert?

Hallo,
Ich möchte in C++/Cli ein einfaches Dame-Spiel programmieren.

Nun habe ich ein Spielfeld angelegt, aus 8x8, wobei jedes Element ein 
button in einem TabelLayoutPanel ist. Ich habe die alle einzeln 
hineingezogen und größe definiert.
Kann man das nicht auch einfacher über irgend ein Button-Array machen? 
Also das ich die Buttons dann mit ner for-Schleife erstelle und die 
größe, die immer gleich ist zuweise?
Hab leider keinen Plan wie ich so die Buttons erstellen kann, hoffe es 
kann mir jemand helfen.

mfg
Florian
von Moritz M. (Gast)


Lesenswert?

Hallo

mache ein 2 dimensionales array mit Buttons:

array<Windows::Forms::Button ^, 2> ^butArray;

und dann must du noch die Buttons initialisieren und der Form 
hinzufügen:

for(int i = 0; i < 8; i++)
{
 for(int j = 0; j < 8; j++)
 {
  butArray[i, j]->Name = "Button";
  butArray[i, j]->SIze = ...
  butArray[i, j]->Location = ...
  ...

  this->Controls->Add(butArray[i, j]);
 }
}

Moritz
von Florian (Gast)


Lesenswert?

hm, kommt leider immer ein Fehler...
Ist es auch möglich die bereits vorhandenen Buttons in ein Array mit 
demselben Event-Handler zu packen?

mfg
von Moritz M. (Gast)


Lesenswert?

Hallo,

was ist das für ein Fehler?

Natürlich kann man ein EventHandler für alle Buttons benutzen, weil das 
im prinzip ja nur eine Funktion ist.

Mit dynamic_cast<Button>(sender) kann man aus dem Sender Objekt dann 
wieder ein Button machen.

Moritz
von Florian (Gast)


Lesenswert?

Eine nicht behandelte Ausnahme des Typs "System.NullReferenceException" 
ist in Dame2.exe aufgetreten.

Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine 
Objektinstanz festgelegt.

Das kommt dann immer

mfg
von Moritz M. (Gast)


Lesenswert?

Hallo,

sorry hab was vergessen du musst das butArray auch noch initialisieren.
butArray = gcnew array<Button, 2)(8, 8);

sonst ist das array leer

Moritz
von Florian (Gast)


Lesenswert?

Und wo genau initialiser ich das? im Konstruktor von meiner Form1?

mfg
von Florian (Gast)


Lesenswert?

mit dem initialisieren klappt das nicht so^^ kommen so ca 100.000 Fehler
von Moritz M. (Gast)


Lesenswert?

z.B. im Form1_Load

Moritz
von Florian (Gast)


Lesenswert?

Mach ich, klappt aber nicht, kannst du das vl fix schreiben und mir 
schicken?
von Moritz M. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

im Visual Studio 2012 wurde C++/CLI herrausgenommen, weswegen man leider 
keine Windows Forms mit C++ mehr programmieren kann. Ich hab das ganze 
mal in c# gemacht. Ich hoffe es hilft dir.

Moritz
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.