Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
Delphi XE2 Professional
|
AW: StringGrid Zellentext auf 50 Bytes begrenzen
7. Mär 2025, 11:24
Hallo und Danke für die Antworten.
Hab es nun wie folgt gelöst:
Delphi-Quellcode:
procedure TMainForm.StringGrid_InfoTextSetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: string);
const
max_Bytes = 50;
var
Encoding: TEncoding;
Bytes: TArray<Byte>;
len_Bytes: Integer;
max_Chars: Integer;
begin
max_Chars := 50;
If ARow > 0 then
begin
//3. Spalte
If ACol in [2] then
begin
Encoding := TEncoding.UTF8;
Bytes := Encoding.GetBytes(Value);
len_Bytes := length(Bytes);
If len_Bytes > max_Bytes then
begin
max_Chars := length(Value);
THackedStringGrid(Sender).Selection := TGridRect(Rect(-1,-1,-1,-1));
THackedStringGrid(Sender).Cells[ACol, ARow] := copy(Value, 1, max_Chars - 1);
end;
//Eingabe begrenzen
SendMessage(THackedStringGrid(Sender).InplaceEditor.Handle, EM_SETLIMITTEXT, max_Chars, 0);
end;
end;
end;
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
|
|
Zitat
|