Hallo Zusammen,
ich nutze folgenden Code, um in Zellen einer StringGrid-Spalte die Eingabe auf 50 Zeichen zu begrenzen:
Delphi-Quellcode:
THackedStringGrid = class(TStringGrid);
procedure TMainForm.StringGrid_InfoTextGetEditText(Sender: TObject; ACol,
ARow: Integer; var Value: string);
begin
If ARow > 0 then
begin
//3. Spalte
If ACol in [2] then
begin
SendMessage(THackedStringGrid(StringGrid_InfoText).InplaceEditor.Handle,
EM_SETLIMITTEXT, 50, 0);
end;
end;
end;
Funktioniert soweit wunderbar.
Nur bräuchte ich diese Begrenzung nicht für 50 Zeichen, sondern für 50 Bytes.
Hintergrund:
Der Text der in den Zeilen steht, wird per UDP an einen ESP geschickt.
Umlaute benötigen im ESP 2 Bytes. Delphi zählt Umlaute aber als 1 Zeichen.
Folgender Beispieltext zählt 50 Zeichen, aber im ESP 51 Bytes.
Zitat:
Das ist ein langer Text mit genau fünfzig Zeichen!
Daher würde ich gerne die Eingabe in der StringGrid-Zelle auf 50 Bytes begrenzen und nicht auf 50 Zeichen.
Wie kann ich das realisieren?