Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#1

StringGrid Zellentext auf 50 Bytes begrenzen

  Alt 5. Mär 2025, 14:40
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?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat