Zum Inhalt springen

ComboBox füllen


Empfohlene Beiträge

Tachchen

Hab da nen problem!!!

Ich habe ein programm welches werte aus einer datei in einem dialog anzeigen soll!!

nun is es möglich das werte doppelt vorkommen bsp: es kann z.b. zwei formate geben. nun möchte ich, dass man sich eines auswählen kann und möchte dies in einer combobox darstellen.

nur irgendwie zeigt der immer nur einen wert an

hat einer ne idee bzw. lösung???:confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Benutzt du Visual C++ / MFC und eine Dialogresource?

Dann kann es sein, dass du in der Dialogresource einfach nur die Höhe der Combobox vergrößern must. Das geht aber erst, nachdem du einmal auf die Schaltfläche zum Aufklappen geklickt hast.

Wenn das nicht hilft, solltest du uns den Code zeigen, mit dem du die Combobox füllst.

Link zu diesem Kommentar
Auf anderen Seiten teilen

//---------------------Füllen der ComboBox------------------------  

   strncpy(f_format, pDbsQ->getF_Format(&MaxUmfo), sizeof(f_format)-1);

     IDC_FORMAT->Text = f_format;


//-----------------------------Prototyp------------------------------

char* CDbsQ::getF_Format(short *pMaxUmfo);


//------------------------------- Funktion-------------------------------------

char* CDbsQ::getF_Format(short *pMaxUmfo)

{

 char f_format[9];

 char f_an_betrieb[7];

 char f_abkuehl[8];

 char f_uebergabe[9];

 char umform[] = "P\tMMAL\tA\tUMFO";  // markiert den logischen Anfang der Formate 


 if (*pMaxUmfo >= 0)

 {

 for (m_line = 0; m_line<= *pMaxUmfo; m_line++)

 {

  if (m_TokenUmfo.tokenUmfoField[m_line][5][0] != '\0') // Format vorhanden ?

  {

   memset(f_format,0,sizeof(f_format));

   memset(f_an_betrieb,0,sizeof(f_an_betrieb));

   memset(f_abkuehl,0,sizeof(f_abkuehl));

   memset(f_uebergabe,0,sizeof(f_uebergabe));


   // Schluessel     

   strncpy (f_format, m_TokenUmfo.tokenUmfoField[m_line][5], sizeof(f_format)-1);

   // Betrieb

   strncpy (f_an_betrieb, m_TokenUmfo.tokenUmfoField[m_line][7], sizeof(f_an_betrieb)-1);


   if (m_TokenUmfo.tokenUmfoField[m_line][8][0] == '1') // Abkühlung Walzwerk?

   {   

    strncpy (f_abkuehl, m_TokenUmfo.tokenUmfoField[m_line][9], sizeof(f_abkuehl)-1);

    strncpy (f_uebergabe, m_TokenUmfo.tokenUmfoField[m_line][10], sizeof(f_uebergabe)-1);

    f_an_betrieb[0] = 'W';

   }

   if (m_TokenUmfo.tokenUmfoField[m_line][11][0] == '1') // Abkühlung Schmiede?

   {   

    strncpy (f_abkuehl, m_TokenUmfo.tokenUmfoField[m_line][12], sizeof(f_abkuehl)-1);

    strncpy (f_uebergabe, m_TokenUmfo.tokenUmfoField[m_line][13], sizeof(f_uebergabe)-1);

    f_an_betrieb[0] = 'S';

   }

  }

 }   

 }

 return m_TokenUmfo.tokenUmfoField[m_line][5];

}


//-------*pMaxUmfo hat in diesem Fall den Wert 2;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich verstehe nicht viel von .NET, aber es müsste wohl so aussehen:

IDC_FORMAT->Items.Add(/*hier dein neuer Eintrag*/);

Übrigens: Ich verstehe nicht, was die Methode CDbsQ::getF_Format macht. Es sieht so aus, als ob sie irgendwas in lokale char-Arrays kopiert, aber mit diesen Arrays geschieht nichts weiter, sie werden am Ende der Funktion wieder zerstört, ohne das mit ihnen irgendwas gemacht worden wäre.

Man könnte die Methode IMHO reduzieren auf:

char* CDbsQ::getF_Format(short *pMaxUmfo)
{
return m_TokenUmfo.tokenUmfoField[m_line][5];
}[/code]

Ich verstehe auch nicht, warum du pMaxUmfo als Zeiger übergibst.

Vielleicht könntest du erklären, was diese Methode tun [i]soll[/i].

Link zu diesem Kommentar
Auf anderen Seiten teilen

erstmal verstehe ich auch nich so viel von .net

also, das is natürlich nicht das ganze programm sondern nur ein ausschnitt!!!

das programm soll daten aus einer analysefile auslesen! in dieser stehen momentan 2 formate die(in einer anderen methode) in *pMaxUmfo gespeichert werden. nun soll das prog. beide formate in der comb. anzeigen. es zeigt aber nur einen wert an. das mit der kurzen fassung hatte ich vorher. es hat auch geklappt, aber wie gesagt wird nur ein wert angezeigt

Link zu diesem Kommentar
Auf anderen Seiten teilen

...in dieser stehen momentan 2 formate die(in einer anderen methode) in *pMaxUmfo gespeichert werden.

*pMaxUmfo ist nur ein short, da kann bestensfalls die Anzahl der Formate drinstehen.

Sehe ich das richtig, dass dann die Formate in

m_TokenUmfo.tokenUmfoField[0][5];

und

m_TokenUmfo.tokenUmfoField[1][5];

stehen?

Dann könntest du das so machen:


//---------------------Füllen der ComboBox------------------------
for(int i=0; i<*pMaxUmfo; ++i)
{
IDC_FORMAT->Items.Add(pDbsQ->getF_Format(i));
}

//-----------------------------Prototyp------------------------------
char* CDbsQ::getF_Format(int line);

//------------------------------- Funktion-------------------------------------
char* CDbsQ::getF_Format(int line)
{
return m_TokenUmfo.tokenUmfoField[line][5];
}[/code]

Alles ohne Gewähr (mangels .NET-Erfahrung).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...