Avatar billede guessw Nybegynder
22. november 2000 - 08:16 Der er 8 kommentarer

Edit-felt

Hejsa!

Hvordan gør jeg sådan at der fx kun kan skrives tal i mit Edit-felt?

Mvh. Peter
Avatar billede torbenthyregod Nybegynder
22. november 2000 - 08:24 #1
Brug en TMaskEdit, som ligger under \"Additional\".

Her kan du i editmask propertien angive hvilket format du vil kunne indtaste I !
Avatar billede picard Nybegynder
22. november 2000 - 08:37 #2
I Edit komponentens onkeypress, skrives følgende:

if (Key NOT in [\'0\'..\'9\']) then
key:=#0

Christian
Avatar billede guessw Nybegynder
22. november 2000 - 10:35 #3
--> picard

Når jeg indsætter din kode på onkeypress får jeg følgende fejl:

[Error] Unit1.pas(141): Missing operator or semicolon

[Error] Unit1.pas(141): Operator not applicable to this operand type

Den sætter markøren ved not så det er nok der er noget galt?
Avatar billede picard Nybegynder
22. november 2000 - 10:37 #4
hmmm måske det her vil hjælpe.........

if NOT (key [\'0\'..\'9\']) then
key:=#0

Christian
Avatar billede picard Nybegynder
22. november 2000 - 10:37 #5
prøver lige igen.......

if NOT (key in [\'0\'..\'9\']) then
key:=#0

Christian
Avatar billede borrisholt Novice
22. november 2000 - 14:16 #6
En lidt mere generel løsning kunne udformes som følger :

procedure ValidateEdit(Sender: TEdit; ValidChars : String =\'0123456789\');
var
  i: integer;
  Buf : string;
begin
  Buf:=\'\';
  for i :=1 to Length(Sender.Text) do
    if Pos(Sender.Text[i], ValidChars) <> 0 then
      Buf:=Buf+Sender.Text[i];

  Sender.Text:=Buf;
  Sender.SelStart:=Length(Sender.Text);
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  ValidateEdit(Sender as TEdit);
end;


Jens B

Avatar billede nico26 Nybegynder
22. december 2000 - 17:11 #7
Lav et nyt komponent og override CreateParams

TMyEdit = class(TEdit)
public
  procedure CreateParams(var Params: TCreateParams); override;
end;

procedure TMyEdit.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := Params.Style or ES_NUMBER;
end;
Avatar billede cope21 Nybegynder
26. december 2000 - 13:37 #8
Guessw...

Du mangler såmænd bare \";\" i eksemplet.

IF NOT (key in [\'0\'..\'9\']) THEN
key:=#0; <-- Det sidste der.

Sig lige til hvis det ikke var den eneste fejl

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester