Avatar billede koonz Nybegynder
28. januar 2000 - 22:09 Der er 4 kommentarer og
1 løsning

problemer med Editmask D4

Jeg skulle gerne kunne indataste eks.
999/99

Mask = ___/__

Men jeg kan ikke lave / (Skråsterg) fordi det er et system tegn, jeg kan ikke finde noget i hjælpen, jeg kunne forestille mig man kunne "pakke" tegnet ind, så delphi opfatter den som et "almindeligt" tegn

eks.  %/%

Jeg har prøvet:

procedure TfrmMain.edtDigIOChange(Sender: TObject);
var
str, TempStr: string;
begin
  str := edtDigIO.Text;
  if Length(Str) = 3 then
  Begin
    TempStr := Copy(Str, 1, 3) + '/';
    edtDigIO.Text := TempStr;
    edtDigIO.SelStart := 5;
  end;
end;

Men det giver en masse problemer, hvis værdien skal ændres !
Avatar billede dj Nybegynder
28. januar 2000 - 23:00 #1
uhm.. jeg skal ikke lige kunne sige om det gælder i det her tilfælde, men ofte når det drejer sig om systemtegn skal man bare sætte to systemtegn så opfatter delphi det som regel som et normalt tegn f.eks. // skulle i dit tilfælde blive til /, men det er kun teori, jeg skal ikke kunne sige om det virker .. men du kan da prøve :)
Avatar billede retep Nybegynder
29. januar 2000 - 03:10 #2
Hmmmm, kunne du ikke specificere dit spørgsmål lidt mere???

Hvornår vil du tilføje/fjerne et '/'???

Måske kan nogle andre se idéen :-)) 

Avatar billede sjensen Nybegynder
29. januar 2000 - 08:55 #3
Koonz,

Editmask sætter du i properties for det pågældende felt (der selvfølgeligt skal være af typen EditMask).

Herefter arbejder du med feltet som om det var et alm. felt med 5 tegn, d.v.s. 3 tagl før og 2 tegn efter. Du skal ALDRIG selv hverken sætte eller læse skråstregen. Sæt feltet med edmsk.text := 99999; og læs det på samme måde.

NB! Der er i øvrigt amnge forskellige andre muligheder med et editmask felt så jeg vil anbefale at du læser lidt om disse i hjælpen til editmask editoren.

sjensen
Avatar billede koonz Nybegynder
29. januar 2000 - 10:26 #4
Jeg har gået hjælpen grundig igennem for editmask, så vidt jeg kan se, er det også muligt at inkludere tegn, ihverfald a - z.

Det edit mask jo skal bruges til er at "godkende" indtastningen.

Summa sumarum (pardon my france)

Hvis det ikke kan gøre med editmask, hvad så ?

Det je ønsker er at brugeren skal indtaste 000  så skal / enten stå der eller det skal komme automatisk efter 3. "0", derefter skal brugen så indtaste de næste 2 numre.

Det er faktisk det min procedure gør, MEN den laver volsomme problemer hvis jeg skal ændre i værdien bagefter
Avatar billede retep Nybegynder
29. januar 2000 - 18:11 #5
Hvad med noget i denne stil?

procedure TForm1.Edit1Change(Sender: TObject);
Var i : integer;
    s : String;
    found : boolean;
begin
  found := false;
  s := edit1.Text;
  i := 1;
  while (not found) and (i <= length(s)) do //lokaliser '/'
  begin
    if s[i] = '/' then
      found := true
    else inc(i);
  end;

  Delete(s,i,1);
  insert('/',s,4);

  edit1.Text := S;
  edit1.SelStart := length(S);
end;

Mvh
Retep
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