Avatar billede telep Nybegynder
03. maj 2004 - 13:56 Der er 15 kommentarer og
1 løsning

Data i en listview med kolonner

Hejsa,

Der er sikkert spurgt om det her en millard gange, men jeg kan sgu ikke finde noget om det.

Jeg har en listview med kolonner (3 styks) som er oprettet således:

  TListColumn  *NewColumn;

  lsvSpm->ViewStyle = vsReport;
  NewColumn = lsvSpm->Columns->Add();
  NewColumn->Caption = "Spørgsmål";
  NewColumn->Width = 336;

  NewColumn = lsvSpm->Columns->Add();
  NewColumn->Caption = "Nummer";
  NewColumn->Width = 58;

  NewColumn = lsvSpm->Columns->Add();
  NewColumn->Caption = "Vægt";
  NewColumn->Width = 58;

Nu vil jeg gern on-click på listview have de data ud der står i den valgte record/række...

Nogen der kan hjælpe?
Avatar billede telep Nybegynder
03. maj 2004 - 14:14 #1
Således at jeg i tre strings kan få det der står i hhv. "Spørgsmål", "Nummer" og "Vægt".

Jeg går udfra, at det er noget med lsvSpm->Items->Index->subitems->text eller noget i den stil, men jeg har stort set forøgt mig med alle kombinationer jeg kan finde på... og det vil ikke lykkes.

Det skal måske lige nævnes at vi taler Borland Builder 6
Avatar billede telep Nybegynder
03. maj 2004 - 15:24 #2
Ingen der vil hjælpe :-(
Avatar billede segmose Nybegynder
03. maj 2004 - 16:29 #3
Det er nok mere tale om at så få har hørt om TListColumn,
Start din hjælp, søg på TListColumn, vælg under punktet "OnColumnClick, AlphaSort, OnCompare, CompareText example" jeg tror det du vil have kan udledes af Item1->SubItems->Strings[ix].
Avatar billede telep Nybegynder
03. maj 2004 - 21:37 #4
Kan du komme med noget nærmere? Jeg kan nemlig ikke hitte ud af det...
Avatar billede telep Nybegynder
03. maj 2004 - 22:23 #5
Hvis nogen skulle få lyst at blande sig så har jeg fundet ud af følgende:

        string yy;
        yy = lsvSpm->Selected->Caption.c_str();

Det giver mig i yy det der står i den første kolonne. Så mangler jeg bare det der står i anden og tredje kolonne.

Følgende giver mig det der står i både anden og tredje kolonne... og jeg kan ikke finde ud af hvordan jeg kun får det der står i ENTEN anden eller tredje kolonne...
        yy = lsvSpm->Selected->SubItems->GetText();
Avatar billede bertelbrander Novice
03. maj 2004 - 23:16 #6
I mangel af bedre kunne man hente sub items som en , adskilt streng og selv splitte den op:

  String D = ListView1->Selected->SubItems->CommaText;
  String First = D.SubString(1, D.Pos(",") - 1);
  MessageBox(0, First.c_str(), "First Part", MB_OK);
  String Second = D.SubString(D.Pos(",") + 1, D.Length() - D.Pos(","));
  MessageBox(0, Second.c_str(), "Second Part", MB_OK);

Et alternativ kunne være at huske hvad man havde puttet i listview'en
Avatar billede segmose Nybegynder
04. maj 2004 - 08:48 #7
Det du søger er nok:
Item1->SubItems->Strings[ix]
Avatar billede telep Nybegynder
04. maj 2004 - 10:39 #8
segmose: du behøver ikke skrive det samme igen... det virker stadig ikke!
bertelbrander: kigger på det snart!
Avatar billede telep Nybegynder
04. maj 2004 - 16:17 #9
bertelbrander: der er noget galt med din sidste kode

Pos not a member of string
Avatar billede bertelbrander Novice
04. maj 2004 - 19:29 #10
Jeg har brugt String med stort S, dvs en Borland Builder String og ikke en std::string, der er med lille s. String bør have en Pos, string har ikke.

Jeg kan godt lave et eksempel med std::string, hvis det er nødvendigt.

Mit eksempel kompilerer med BCB 5.0
Avatar billede telep Nybegynder
05. maj 2004 - 20:10 #11
hvad er det så man includer?

Jeg bruger Borland Builder 6.0 og har
#include <string>

Skal jeg så bare:
#include <String>

???
Avatar billede bertelbrander Novice
05. maj 2004 - 21:06 #12
Jeg bruger 5.0 og har ikke brug for at inkludere noget.
Avatar billede bertelbrander Novice
05. maj 2004 - 22:00 #13
Du kan også lave en ren C løsning:

#include <stdio.h>
#include <string.h>

  char Buffer[1024], *s, S1[1023], S2[1023];
  strcpy(Buffer, ListView1->Selected->SubItems->CommaText.c_str());
  sscanf(Buffer, "%[^,],%[^,]", S1, S2);
  MessageBox(0, S1, "First Part", MB_OK);
  MessageBox(0, S2, "Second Part", MB_OK);
Avatar billede telep Nybegynder
09. juli 2004 - 14:17 #14
vil du have points?
Avatar billede bertelbrander Novice
09. juli 2004 - 16:05 #15
Jeg vil helst ikke have point.
Avatar billede telep Nybegynder
09. juli 2004 - 17:34 #16
Så bliver du fri :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester