1
Generale / Re:Limite massimo righe di un dbmemo o di un memo
« Ultimo post da DragoRosso il Oggi alle 11:39:18 pm »Dovete usare l'evento "keypress":
L'evento viene generato per tutto ciò che è carattere o "stampabile" (compreso il "ritorno" a capo #13 e il "CTRL-C" #3) anche in caso di copia / incolla.
Il tasto DEL, le frecce, etc ... non vengono filtrati quindi può essere usato per cancellare caratteri, così come una selezione. Se si vuole migliorare si può controllare se il carattere è un "backspace" e lasciarlo passare ...
P.S.: porre nell'evento keydown un qualsiasi valore (ad esempio 0) non ha effetto se il contenuto è un carattere, in quanto Windows genera automaticamente anche il messaggio WM_CHAR (processato appunto da keypress).
Codice: [Seleziona]
procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #8 then // <- lascia usare il backspace (modificato)
exit;
if Memo1.Lines.Count > 6 then
Key := #0;
end;
L'evento viene generato per tutto ciò che è carattere o "stampabile" (compreso il "ritorno" a capo #13 e il "CTRL-C" #3) anche in caso di copia / incolla.
Il tasto DEL, le frecce, etc ... non vengono filtrati quindi può essere usato per cancellare caratteri, così come una selezione. Se si vuole migliorare si può controllare se il carattere è un "backspace" e lasciarlo passare ...
P.S.: porre nell'evento keydown un qualsiasi valore (ad esempio 0) non ha effetto se il contenuto è un carattere, in quanto Windows genera automaticamente anche il messaggio WM_CHAR (processato appunto da keypress).