/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Editmask lignende til DBEdit bokse
Fra : Ukendt


Dato : 10-02-06 16:52

Hej.

Kan man sætte begrænsninger for, hvad der kan indtastes i en DBEdit boks.Fx
sørge for, at det kun er tal og endnu bedre, at det kun er hele tal
(positive eller negative er lige meget, men det må ikke være tegn, bogstaver
eller komma mv.)

Kan man give DBEdit'er en default værdi i tilfælde af ingen eller blank
indtastning samt indtastning udenfor det tilladte?

De bedste hilsener (og god vinterferie, til dem, der har det)
Michael



 
 
PØLLE (10-02-2006)
Kommentar
Fra : PØLLE


Dato : 10-02-06 18:50

| Kan man sætte begrænsninger for, hvad der kan indtastes i en DBEdit
boks.Fx
| sørge for, at det kun er tal og endnu bedre, at det kun er hele tal
| (positive eller negative er lige meget, men det må ikke være tegn,
bogstaver
| eller komma mv.)

Brug onKeyPress(Sender: TObject; var Key: Char);

F.eks. Begræns kun til HelTal:
Prodecure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
{onKeyPress}
if (Key < '0') or (Key > '9') then Key := #0;
end;

Forklaring: Key := #0 er det samme som at slette en karakter, hviss den ikke
kal accepteres.

| Kan man give DBEdit'er en default værdi i tilfælde af ingen eller blank
| indtastning samt indtastning udenfor det tilladte?

Det kan laves på flere måder, jeg vil lave det enten sådan:
procedure TForm1.DBEdit1Enter(Sender: TObject); {onEnter}
begin
if DBEdit1.Datafield.value = null then DBEdit1.Datafield.value :=
'7-9-13' // hvis det er DBEdit1.Datafield er at typen "ftString".
end;
Ovenstående eks. vil enten sætte DBEdit1.Datasource.Dataset.State til dsEdit
eller dsInsert
Se efterfølgende eksempel, hvor DBEdit1.Datasource.Dataset.State ikke
ændres.

ellse sådan:
Den Table du bruger kan du i Event "onNewRecord" skrive
procedure TForm1.tForbrugNewRecord(DataSet: TDataSet); // "tForbrug" er den
Table, som DBEdit er knyttet til
begin
DBEdit1.Datafield.value := '7-9-13'
// Når du bruger "onNewRecord"-eventen ændrer, du ikke ved status i
TTable.State
end;






Ukendt (14-02-2006)
Kommentar
Fra : Ukendt


Dato : 14-02-06 10:45

"PØLLE" <NoName@NoMail.com> skrev i en meddelelse
news:43ecd235$0$15784$14726298@news.sunsite.dk...
>| Kan man sætte begrænsninger for, hvad der kan indtastes i en DBEdit
> boks.Fx
> | sørge for, at det kun er tal og endnu bedre, at det kun er hele tal
> | (positive eller negative er lige meget, men det må ikke være tegn,
> bogstaver
> | eller komma mv.)
>
> Brug onKeyPress(Sender: TObject; var Key: Char);
>
> F.eks. Begræns kun til HelTal:
> Prodecure TForm1.DBEdit1KeyPress(Sender: TObject; var Key: Char);
> {onKeyPress}
> if (Key < '0') or (Key > '9') then Key := #0;
> end;
>
> Forklaring: Key := #0 er det samme som at slette en karakter, hviss den
> ikke
> kal accepteres.
>
> | Kan man give DBEdit'er en default værdi i tilfælde af ingen eller blank
> | indtastning samt indtastning udenfor det tilladte?
>
> Det kan laves på flere måder, jeg vil lave det enten sådan:
> procedure TForm1.DBEdit1Enter(Sender: TObject); {onEnter}
> begin
> if DBEdit1.Datafield.value = null then DBEdit1.Datafield.value :=
> '7-9-13' // hvis det er DBEdit1.Datafield er at typen "ftString".
> end;
> Ovenstående eks. vil enten sætte DBEdit1.Datasource.Dataset.State til
> dsEdit
> eller dsInsert
> Se efterfølgende eksempel, hvor DBEdit1.Datasource.Dataset.State ikke
> ændres.
>
> ellse sådan:
> Den Table du bruger kan du i Event "onNewRecord" skrive
> procedure TForm1.tForbrugNewRecord(DataSet: TDataSet); // "tForbrug" er
> den
> Table, som DBEdit er knyttet til
> begin
> DBEdit1.Datafield.value := '7-9-13'
> // Når du bruger "onNewRecord"-eventen ændrer, du ikke ved status i
> TTable.State
> end;

Hej.

Ja det virker.

Kan man også lave en formateret visning i en DBEdit boks. (så 1234567 vises
som 1.234.567). Det er ikke et problem at lave i en label, men hvad med en
editboks og DBEditboks, hvor man direkte indtaster.


Jeg har desuden et problem, som jeg selv synes er mystisk.

Jeg har en pagecontrol med nogle få tabsheets. Jeg vil gerne "slukke" og
nedtone for en enkelt tabsheet og bruger

tabsheet1.enabled:= false;

men der sker INTET ved det.

Er det en forkert løsning?



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste