StringGrid - GetEditText(..) -- Den Text erst mit Enter übernehmen, aber wie??
-
Hallo zusammen,
wenn ich einen Text im StringGrid ändere, möchte ich diesen dann schließlich in einer Globalen Variablen ablegen,...
Dabei soll das aber erst geschehen, wenn enter betätigt wurde:
Etwa so:
void __fastcall TfrmMain::StringGridGetEditText(TObject *Sender, int ACol, int ARow, AnsiString &Value) { if (KeyDown == ENTER) //<-- ???? { switch (ACol) { case 3: Global[ARow] = Value; break; case 4: /*...*/ break; case 5: /*...*/ break; case 6: /*...*/ break; } } }
Gruß
mc23
-
versuchs mal mit:
Key == VK_RETURN
-> Ereignis OnKeyDown
grüssle
-
Danke
Die Idee hatte ich auch schon,
allerdings hab ich da nicht die Zellen-Position, in der der Wert reingeschrieben wurde,...Ich brauch
&Key, ARow und AColOder bin ich zu dumm die dinger zu verknüpfen?
Gruß
-
Ich habe gerade keinen BCB zur Hand, aber gibt's nicht ein Ereignis
OnFieldChange
oder so aehnlich? Weil dann koenntest du den Text, der im neuen Feld steht in einem temporaeren String uebernehmen und bei OnKeyDown bei anderen Tasten, ausser VK_RETURN und ausser normalen Buchstaben, Zahlen und Zeichen, diesen wieder eintragen, andernfalls den Text so stehen lassen. Aber - wie gesagt - ich weiss nicht, ob es ein solches Ereignis gibt.
-
mc23 schrieb:
Danke
Die Idee hatte ich auch schon,
allerdings hab ich da nicht die Zellen-Position, in der der Wert reingeschrieben wurde,...Ich brauch
&Key, ARow und AColOder bin ich zu dumm die dinger zu verknüpfen?
Gruß
es müsste doch jederzeit möglich sein, die aktuelle Zelle herauszufinden. Also auch im Event OnKeyDown.
Und dann weiter mit Behandlung bei:Key == VK_RETURN
Hab grad kein Projekt mit einem StringGrid da, aber so würde ich es machen.
grüssle
-
Hallo,
mit OnKeyDown kannst Du schon abfragen, aber mit den Ret- und Cursotasten gibts öffter mal Schwierigkeiten. Vielleicht liest Du mal:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-242273-and-start-is-0-and-postdays-is-0-and-postorder-is-asc-and-highlight-is-.htmlgruß
Rudi
-
Statt OnKeyDown könnte man hier auch OnKeyPress verwenden. Die Zellenposition bekommt man mit MouseToCell. siehe auch
http://www.c-plusplus.net/forum/viewtopic-var-t-is-233029.html
-
Hi danke euch allen,...
Die beiden für mich entscheidenden Befehle waren:
StringGrid->Row;
StringGrid->Col;Jetzt kann ich mit der Keyfunktion arbeiten.
Vielen Dank