[c++] StringGrid füllen

zerberos

Well-known member
ID: 58651
L
30 Mai 2006
75
0
Hallo,

habe gerade im Borland Builder ein TStringGrid erstellt.

Dann habe ich 3 textboxen und einen button

beim klick auf den button soll der inhalt der 3 textboxen jeweils in das TStringGrid eingetragen werden.

Wie mache ich das?
 
Hm, also ich habe ehrlich gesagt von C++ keine Ahnung, aber von Delphi weiß ich, dass man StringGrids über StringGrid.Cells[spalte,zeile] ansprechen kann und auch füllen.

Vielleicht hilft es ja weiter.

Gruß Matthias
 
jo. das geht jetzt

nur ich gebe momentan die zeile immer statisch an.

Ich möchte das aber so haben das der das automatisch in die nächste leere zeile einträgt.

Kann mir da einer ne Anregung geben?
 
hmm mal versuchen ... evl. gehts nicht. Der Code ist so ausm Kopf.

Code:
i := 0;
while StringGrid1.Cells[i,0].Text <> '' do inc(i);
StringGrid1.Cells[i,0] := 'blabla';

Das ist jetzt Delphi / Pascal. Aber ich denke das sollte sich schnell in C umsetzen lassen. Aus den ':=' muessten '=' werden und dann koennte es schon gehen.
 
Bei StringList usw. schon aber nen StringGrid ist sowas wie das, was man bei Excel sieht ;) Also ne visuelle Komponente, keine reine Datenstruktur.
 
hmm komme mit deiner while schleife irgendwie nicht zurecht

in c++ ist ne schleife so aufgebaut

while(bedingung)
{
ausführung
};
 
und? wo is das Problem?

Code:
i = 0;
while (StringGrid1.Cells[i,0] != '' )
 { i = i+1; };
StringGrid1.Cells[i,0].Text = 'bla';

so koennte es gehen. Man merkt, ich kann kein C++ ;)
 
ja.

wir kommen den ganzen schon nächer

das ist der quellcode momentan
Code:
        int i=1;
        while (StringGrid1->Cells[i,0] = '' ) { i = i+1; };
        StringGrid1->Cells[i,0] = 'bla';

das sind die Fehler:
[C++ Fehler] Unit1.cpp(35): E2129 char-Konstanten dürfen ein oder zwei Zeichen lang sein.
[C++ Fehler] Unit1.cpp(35): E2492 Zuweisung von Eigenschaften nur mit einfachen Anweisungen wie \"prop = value;\"
[C++ Fehler] Unit1.cpp(35): E2096 Ungültige Strukturoperation
 
Probier mal doppelte Anführungszeichen und doppelte Gleichheitsszeichen.

Das einfache Gleichheitszeichen ist in C++ eine Zuweisung, das doppelte der Vergleichsoperator.
 
ja stimmt


jetzt bekomme ich nur noch
[C++ Fehler] Unit1.cpp(35): E2193 Zu wenige Parameter im Aufruf von '_fastcall TStringGrid::GetCells(int,int)'


Code:
        int i=1;
        while (StringGrid1->Cells[i,0] == "" ) { i = i+1; };
         StringGrid1->Cells[i,0] = "bla";
 
Dann mach doch mal
Code:
StringGrid1->Cells[i,0]->Text = 'bla';
oder kauf dir gleich nen Buch ;)
 
Delphi
Code:
array[i, j]
entspricht in C++
Code:
array[i][j]
Oder einfach StringGrid1->GetCells(i, j), da ich nicht weiß, wie [] für den Typ überladen ist.