Forum > Spanish

Manejo de Edit1.Text

(1/1)

mav:
Hola, buenas noches:
    La pregunta es ¿Cómo operaria máximo con diez caracteres ( desde 1 hasta 10) independientemente
de que se introdujeran en el Edit1 , 12, 16 etc?
   

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---procedure mensajito(); begin  Form3.Hide;  Application.MessageBox('No, no esta bien!', 'ERROR!', MB_OK + MB_ICONEXCLAMATION);  halt; end; procedure TForm3.BitBtn1Click(Sender: TObject);var  i, j, k, n : integer;begin    if (Edit1.Text='') or (Edit2.Text= '') then    halt;     i:= 0;               // n := length(Edit1.Text) <=10 ;               // ¿Como operar maximo con 10 caracteres????__________________________________      for j:= 1 to length (Edit1.Text) do     begin       k:= (Ord(Edit1.Text [j]));        if k < $41 then        begin          mensajito;        end else         if (k) >= $5A then          k:= k - $20;          i := i+ k;     end;       if (i xor $5678) = (StrToInt(Edit2.Text) xor $1234) then       begin       Form3.Hide;       Application.MessageBox('PERFECTO!'+#13'MUY BIEN LO HAS LOGRADO!', 'Good Work!', MB_OK + MB_ICONEXCLAMATION);       halt;      end else       mensajito;end;     //...esto es Windows.procedure TForm3.FormCreate(Sender: TObject); //Parece que se llevarán las esquinas redondeadas                                              // esta temporada.... :)var  regn: HRGN;begin  Form3.BorderStyle:= bsNone;  regn:= CreateRoundRectRgn(0, 0, ClientWidth, ClientHeight, 20, 20);  SetWindowRgn(Handle, regn, True);end;             //Para poder mover la ventana por la pantallaprocedure TForm3.FormMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin  ReleaseCapture;   SendMessage(Form3.Handle, WM_SYSCOMMAND, 61458, 0) ;end;                                                              
Saludos y gracias.. :) :)

GAN:
Hola, TEdit tiene una propiedad MaxLength la puedes establecer en 10 y listo.
Eso sí, no usaría Halt,

Saludos.

mav:
Hola, gracias por responder, en efecto si limitas la propiedad MaxLength a10, son sólo diez los caracteres que puedes escribir/operar
en el Edit1, pero la cuestión es poder escribir mas de diez y operar como máximo con diez, sin que el usuario sea consciente de ello...
¿Porqué no deberíamos utilizar Halt?

Saludos

lucamar:

--- Quote from: mav on August 10, 2021, 03:38:10 pm ---[...] la cuestión es poder escribir mas de diez y operar como máximo con diez, sin que el usuario sea consciente de ello...
--- End quote ---

Fácil: mira a ver si hay más de 10 caracteres y en ese caso trunca la cadena:

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---StrToProcess := AnsiLeftStr(Edit1.Text, 10);for i := 1 to Length(StrToProcess) do {... etc ...}

--- Quote ---¿Porqué no deberíamos utilizar Halt?
--- End quote ---

Porque Halt para sin ejecutar bloques try...finally ni try...except y, además, puede dejar la aplicación en un estado inestable. En un programa GUI es mejor llamar a Close, si estás en el form principal, o directamente ejecutar Application.Terminate.

Halt sólo debería usarse en programas de consola y con mucho cuidado; generalmente es mejor reorganizarr tu código de modo que termine normalmente y dejar Halt para situaciones excepcionales en que quieres devolver un código de error/resultado al sistema.

mav:
Vale, perfecto está funcionando sin problemas, he incluido en el uses StrUtils y he eliminado el Halt, como no estoy en la ventana principal
lo he sustituido por Form3.Close... :) :)

Navigation

[0] Message Index

Go to full version