WinFuture-Forum.de: C++ Code Durch Schleifen Verkürzen?!? - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

C++ Code Durch Schleifen Verkürzen?!?


#1 Mitglied ist offline   trazor 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 29. Dezember 04
  • Reputation: 0

geschrieben 29. Dezember 2004 - 21:24

Hey Leute!


Ich bin neu in dem Gebiet C++ muss aber eine Projektarbeit darin abliefern mit "schönem" Quelltext. Das Pogramm das ich schreiben muss ist nicht seeehr schwer und ich habs schon fertig. Das Problem: Der Quelltext ist nicht schön =)

Ich zeig euch mal ausschnitte und zeig mal was ich meine. WIe kann man zum Beispiel so was verkürzen:

Panel0->Color = clWhite;
Panel1->Color = clWhite;
Panel2->Color = clWhite;
Panel3->Color = clWhite;
Panel4->Color = clWhite;
Panel5->Color = clWhite;
Panel6->Color = clWhite;
Panel7->Color = clWhite;
Panel8->Color = clWhite;
Panel9->Color = clWhite;
PanelA->Color = clWhite;
PanelB->Color = clWhite;
PanelC->Color = clWhite;
PanelD->Color = clWhite;
PanelE->Color = clWhite;
PanelF->Color = clWhite;


So was muss man doch mit einer Schleife verkürzen können, oder? Ich weiß nur nicht, wie ich durch die verschiedenen Panel-Namen schleifen soll

Ich denke, wenn man es mir an dem Beispiel erklärt, dann schaff ich den Rest auch allein. Falls nicht poste ich hier nochmal =)

Vielen Danke schonmal im Voraus für die Hilfe!!


Grüße!!!

trazor :: trazorDOTnet
0

Anzeige



#2 Mitglied ist offline   Franz1299 

  • Gruppe: aktive Mitglieder
  • Beiträge: 547
  • Beigetreten: 27. Juni 03
  • Reputation: 0

geschrieben 29. Dezember 2004 - 22:37

Pack die ganzen Panels in ein Array und sprich sie dann über einen Index an:

#define clWhite 0x01

typedef struct _panel //Beispiel für ein Panel
{
int Color;
}
PANEL;

int main()
{

PANEL *PArray[20]; //Array mit Addressen auf PANEL

for(int i=0; i<=20; i++)
{
PArray[i] = new PANEL; //PANELs erstellen und Addressen eintragen
}
 
for(int j=0; j<=20; j++)
{
PArray[j]->Color = clWhite; // Farbe setzen
}

}

Du brauchst einen USB-Stick? Weißt aber nicht welchen? Dann schaue hier:

USB Stick Test 2014 - Stick-Tester.de

Oder eine externe Festplatte?

Externe Festplatte Test - der große Test zu externen Festplatten
0

#3 Mitglied ist offline   trazor 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 29. Dezember 04
  • Reputation: 0

geschrieben 30. Dezember 2004 - 05:09

hey!

hört sich gut an. mein denkproblem: wie soll ads kompatibel mit meinen objektnamen sein?
Ich verstehe nicht, wo diese zugewisen werden. das mit dem array ist klar. aber meine panels heißen "Panel0" bis "Panel9" und bis F und so... das mit den hexbuchstaben wär kein problem, das würd ich ändern... aber die panels werden doch gar nicht in deinem quelltext angesprochen, oder?
meinst du ich sollte die dynamisch erzeugen?
ich weiß nicht ob ich deine hilfe falsch interprätiere...
trazotzdem vielen dank für deine hilfe!
maybe kannst meine fragen noch klären *g* bin halt noch ein anfänger in dem gebiet :)
0

#4 Mitglied ist offline   trazor 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 29. Dezember 04
  • Reputation: 0

geschrieben 30. Dezember 2004 - 05:29

Sehn wir uns das mal an einem anderen Beispiel an. Nur zum vergleich. Ich denke, wenn du es mir daran konkret zeigst, dann hab ich es vollends.
Nehmen wir mal an, ich hab in einem Formular viele verschiedene Labels. Diese Labels haben Namen, die so aussehen:

Label_1
Label_2
Label_3
Label_4
...
Label_20

Ist es möglich den Labels mithilfe einer Schleife (nicht allen auf einmal) eine gleichen Caption Wert zuzuweisen?
Wenn ja, dann zeige es mir bitte konkret mit einem für dieses Beispiel funktionierenden Quelltext =)
Danke schonmal :)
0

#5 Mitglied ist offline   AlienSearcher 

  • Gruppe: aktive Mitglieder
  • Beiträge: 399
  • Beigetreten: 06. Juli 04
  • Reputation: 0

geschrieben 31. Dezember 2004 - 12:26

OK, nehmen wir mal an, du hast sowas in der Art:

Zitat

#include <iostream>

int main(void)
{
    int var_1, var_2, var_3, var_4, var_5;
    var_1=0;
    var_2=0;
    var_3=0;
    var_4=0;
    var_5=0;
    return 0;
}


Dann könntest du das durch eine Schleife verkürzen:

Zitat

#include <iostream>

int main(void)
{
    int var[5];
    for (int z=0;z<5;++z)
    {
        var[z]=0;
    }
    return 0;
}


Du musst also deine Variablen nur in einem Array anlegen und dann mittels einer for-Schleife das Array "durcharbeiten".

Dieser Beitrag wurde von AlienSearcher bearbeitet: 31. Dezember 2004 - 12:27

0

#6 Mitglied ist offline   Franz1299 

  • Gruppe: aktive Mitglieder
  • Beiträge: 547
  • Beigetreten: 27. Juni 03
  • Reputation: 0

geschrieben 31. Dezember 2004 - 17:54

@trazor: Ja, ich meinte, dass du die Panels dynamisch anlegen sollst.
Ist natürlich n bisschen unpraktisch wenn du nen Formulardesigner o.ä. benutzt, dann müsstest du das mit nem Makro ala
#define PANEL(m) Panel ## m

machen.
Du brauchst einen USB-Stick? Weißt aber nicht welchen? Dann schaue hier:

USB Stick Test 2014 - Stick-Tester.de

Oder eine externe Festplatte?

Externe Festplatte Test - der große Test zu externen Festplatten
0

#7 Mitglied ist offline   trazor 

  • Gruppe: Mitglieder
  • Beiträge: 7
  • Beigetreten: 29. Dezember 04
  • Reputation: 0

geschrieben 02. Januar 2005 - 21:04

Hey Leute!!!

Muchos Gracias!!! =) Habs jetzt alles auf die Art gelöst:



static_cast<TPanel*>(FindComponent("Panel" + IntToHex(status,1)))->Color = 0xe4ad89;




Echt vielen Danke für eure Hilfe!!!

Bin fertig mit meinem Projekt :blush:
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0