Delphi - Memo s max. počtom znakov v riadku a riadkov
Potrebujem Meno, v ktorom by mohlo byť maximálne 5 riadkov pri maximálnej dĺžke každého riadka 60 znakov. Nakoľko som nenašiel lepšie riešenie, urobil som toto. Je možné to urobiť jednoduchšie?
procedure TfrmInputPartner.memoAdressKeyPress(Sender: TObject;
var Key: Char);
var
i, j: Integer;
Line: Integer;
begin
with memoAdress do
begin
if (Key = #13) and (Lines.Count = 5) then Key := #0;
if (Key in [#32..#255]) then
begin
j := -1;
Line := 0;
repeat
i := j + 2;
j := PosEx(#$D#$A, Text, i);
if (j > 0) and (SelStart + 1 > j) then Inc(Line);
until (SelStart + 1 <= j) or (j = 0);
if (Line > 4) or (j - i >= 60) then Key := #0;
end;
end;
end;
Neviem či je toto riešenie jednoduchšie ? Skús:
Je tam niekde chyba. Ak dĺžka niektorého riadku bude 60, tak pri zápise akéhokoľvek znaku do akéhokoľvek riadku skočí kurzoír na koniec toho plného riadku a tam prepíše posledné písmeno.
IMHO Jez. je tvoje řešení sice delší na psaní, leč rychlejší na zpracování (zpracování zpráv provede asi víc instrukcí CPU). Já bych toto (patrně zadávání nějaké adresy) řešil pěti TEdity naraženými těsně na sebe. Viz fotka z mého programu: http://img388.imageshack.us/img388/3550/adresarlh4. gif
Išlo mi o jednoduché odriadkovanie.