Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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:

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.

ich arbeite mit visual studio.net 2003

mit forms!!

nicht mit mfc!

ich arbeite erst seit drei monaten und hab hier noch nich so den plan davon. und in meiner firma hier kann mir irgendwie auch keiner helfen(oder es keiner lust dazu).

//---------------------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;

da *pMaxUmfo den Wert 2 hat gibt es also zwei formate

nun sollen diese beiden formate auch in der combobox angezeigt werden

:confused:

Ich denke, das Problem liegt zunächst mal hier:

IDC_FORMAT->Text = f_format;

Eine Zuweisung an das Text-Property einer Combobox ändert nur den Text im Eingabefeld. Wenn du einen String zur Auswahlliste hinzufügen willst, musst du der Items-Collection neue Einträge hinzufügen.

na und wenn du mir jetzt noch einen tipp gibst wie ich das machen soll, bist du der beste!!!

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].

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

...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).

ich werde es ma versuchen, danke schon ma im vorraus!!!

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.