Cita:
Empezado por jjfgg
Una mejor forma y más sencilla es:
Código Delphi [-]
uses
StrUtils;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Edit1.SelStart = 0) or (Edit1.Text[ Edit1.SelStart ] in WordDelimiters) then Key := UpCase(Key);
end;
|
Como quisquilloso que pretendo ser... Si SelStart es cero y se intenta acceder a la segunda comprobación (Edit1.Text[ Edit1.SelStart ]... recordemos que el string empieza en el índice 1, y estamos accediendo al cero ==> Access violation
Esto dependerá tambien de si tenemos marcada la casilla "Complete Boolean Eval" (evaluación perezosa) del compilador. Si no la tenemos marcada, nunca nos dará error, ya que cuando el índice sea cero, ya es true, y no comprueba lo demás, y cuando sea distinto de cero, no tendremos problemas al evaluar la segunda condición.
ea, ya que he soltado mi rollo, me voy
.
saludos
saludos