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.