Newsgroup: it.comp.lang.delphi
Titolo: tedit e numeri

scusate ma ho cercato nell'help e non ho trovato niente.
La mia domanda č: esiste una proprietą del Tedit che gli consenta di 
accettare solo caratteri numerici?
mi č stato detto che c'č ma io non la trovo!
Grazie 

 mi è stato detto che c'è ma io non la trovo!
Non mi pare che esista.
Prova questo componente che mi sono fatto io (nessuna garanzia :))
Devi agire sulle proprietà AllowChar, che definisce quali tasti accetterà
l'edit.
-------------------------------------------------------------
unit NumEdit;
interface
uses
  Windows, SysUtils, Classes, Controls, StdCtrls;
type
  TCharTypes = (etNumbers, etChars, etComma, etSpace, etSymbols);
  TCharSet = Set of TCharTypes;
  TNumEdit = class(TEdit)
  private
    etSet: TCharSet;
    FAlignment: TAlignment;
  protected
    procedure KeyPress(var Key: Char); override;
    procedure CreateParams(var Params: TCreateParams); override;
    procedure SetAlignment(Value: TAlignment);
  public
    constructor Create(AOwner: TComponent); override;
  published
    property AllowChar: TCharSet read etSet write etSet default [etNumbers];
    property Alignment: TAlignment read FAlignment write SetAlignment
      default taLeftJustify;
  end;
procedure Register;
implementation
constructor TNumEdit.Create(AOwner: TComponent);
begin
  inherited;
  AllowChar := [etNumbers];
end;
procedure TNumEdit.KeyPress(var Key: Char);
var
  sSet: Set of Char;
begin
  inherited;
  sSet := [];
  if etNumbers in etSet then sSet := sSet + ['0'..'9'];
  if etChars in etSet then sSet := sSet + ['A'..'Z', 'a'..'z'];
  if etComma in etSet then sSet := sSet + [#46, #44];
  if etSpace in etSet then sSet := sSet + [#32];
  if etSymbols in etSet then sSet := sSet + ['!'..'/', ';'..'@', '['..'`',
#123..#255];
  sSet := sSet + [#27, #8];
  if not (Key in sSet) then Key := #0;
  if Key = #46 then Key := #44;
end;
procedure TNumEdit.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do
  begin
    case FAlignment of
      taLeftJustify: Style := Style or (ES_LEFT);
      taCenter: Style := Style or (ES_CENTER);
      taRightJustify: Style := Style or (ES_RIGHT);
    end;
  end;
end;
procedure TNumEdit.SetAlignment(Value: TAlignment);
begin
  if FAlignment <> Value then
  begin
    FAlignment := Value;
    RecreateWnd;
  end;
end;
procedure Register;
begin
  RegisterComponents('Additional', [TNumEdit]);
end;
end.
----------------------------------------------------------------
-- 
Jax
====
Chi ama non ha bisogno di sognare perché l'amore è già un sogno.

 mi č stato detto che c'č ma io non la trovo!
c'č TJvIntegerEdit (che accetta anche i float) nella JVCL
-- 
Mauro Falzari 
   [ 
http://digilander.libero.it/mauro.falzari
 ]
 
 "Se guardi nell'abisso, anche l'abisso guarda in te." 
   (Friedrich Nietzsche)

GP
	Ciao
	MassimoB
 
---------------------------------
http://www.massimobeschi.it/
---------------------------------
Se tu pagare come dici tu ...
Io lavorare come dico io ...
Se tu pagare come dico io ...
Io lavorare come dici tu ...
---------------------------------

che intendi ?
copia una stringa da dove ti pare e incollala nel tuo
edit numerico ... cosa succede? 


 hai provato se va con il copia incolla?
dovrebbe interecettare il WM_PASTE se non sbaglio.
Poi c'è il problema se accettare o no il segno meno, il problema della 
digitazione mentre ci sono dei caratteri selezionati, del massimo numero 
(intero o floating point) accettabile, e via dicendo...


Ciao


 di Jax abbia questo problema.
io per un derivato di TCustomEdit che accetta solo input in formato 
<mese/anno> sono arrivato a oltre 500 righe...


A questo link trovi come sviluppare proprio il componente che fa al caso tuo
http://www.camuso.it/sviluppare_componenti.htm
Secondo me fra i siti italiani su delphi (pochini per la verita') e
programmazione in genere, e' uno dei
migliori anche se, a mio modesto avviso, meno conosciuto di quanto
meriterebbe.
-- 
F&R
Govny wrote:
|| scusate ma ho cercato nell'help e non ho trovato niente.
|| La mia domanda č: esiste una proprietŕ del Tedit che gli consenta di



l'ho provato e va alla grande.
Grazie mille 

 di Jax abbia questo problema.
Yes, non ho gestito l'incolla perché a me non serviva...
scusa se non te l'ho detto.
-- 
Jax
====
Ci sono soltanto due specie di uomini: gli uni, giusti, che si credono
peccatori; gli altri, peccatori, che si credono giusti.

 meriterebbe.
Concordo con te, lo sto visitando e direi che ha degli spunti ben fatti e
originali :)
-- 
Morde. 
FAQ di icld (beta-version): 
http://icld.altervista.org
 
M-List di icld: 
http://it.groups.yahoo.com/group/icld/