Einzelnen Beitrag anzeigen

Ginko

Registriert seit: 30. Aug 2008
208 Beiträge
 
FreePascal / Lazarus
 
#1

In Stringgrid schreiben ohne Text zu markieren

  Alt 22. Dez 2009, 11:33
Hallo ich habe vor einen Stringgrid-Eintrag so zu beschränken, dass der Benutzer maximal 4 Zeichen eingeben kann und minimal 4 Zeichen vorhanden sein müssen. Bei der Eingabe soll der Text überschrieben werden. Das klappt auch im Grunde so wie ich es will mit dem folgenden Quelltext.
Das Problem ist allerdings, dass der gesamte Text nach jeder Eingabe komplett markiert wird und der Text jedesaml komplett gelöscht wird. Meine Frage ist jetzt, ob es eine andere möglichkeit gibt den Text in die Stringgridzelle zurückzugeben, so dass keine markierung Stattfindet, oder die Markierfunktion komplett abzuschalten.

Hier der Quellcode:
Delphi-Quellcode:
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if chr(Key) in['a'..'z','0'..'9'] then
  begin
    keybd_event(VK_DELETE, 0, 0, 0);
  end;
end;

procedure TForm1.StringGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
temp: String;
begin
  temp := StringGrid1.Cells[1,1];
  while Length(temp) > 4 do
    Delete(temp,5,1);

  while Length(temp) < 4 do
    temp := '0' + temp;

  StringGrid1.Cells[1,1] := temp;
end;
  Mit Zitat antworten Zitat