Avatar billede mysitesolution Nybegynder
14. januar 2003 - 19:42 Der er 6 kommentarer og
1 løsning

char og date

Jeg har lige to spørgsmål der giver 15 points hver:

1. Hvordan henter man hvorfor en dag, måned og år det er

2. Hvordan gør jeg så man kun kan skrive tal i en edit
Avatar billede razersedge Nybegynder
14. januar 2003 - 20:02 #1
1: TimeToStr(now) ... returnerer som navnet påpeger en string.
2: Der skal du nok have fat i en MaskEdit eller en SpinEdit, de 2 kan let sættes op til at gøre præcis det du vil.
Avatar billede mysitesolution Nybegynder
14. januar 2003 - 20:44 #2
jeg vil gerne have dag, måned og år hver for sig
Avatar billede razersedge Nybegynder
14. januar 2003 - 20:48 #3
hovsa, DateToStr(now) så kan du selv lave noget streng manipulation.

Tag evt et kig på DecodeData proceduren.

<snip>
Unit

SysUtils

Category

datetime routines

Delphi syntax:

procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);

Description

The DecodeDate procedure breaks the value specified as the Date parameter into Year, Month, and Day values. If the given TDateTime value has a negative (BC) year, the year, month, and day return parameters are all set to zero.

</snip>

Spørg hvis du skal have mere hjælp
Avatar billede razersedge Nybegynder
14. januar 2003 - 20:51 #4
Eksempel:

uses SysUtils;


var
  Year : WORD;
  Month : WORD;
  Day  : WORD;
begin
DecodeDate(now,Year,Month,Day);

Edit1.Text := IntToStr(Day);
Edit2.Text := IntToStr(Month);
Edit3.Text := IntToStr(Year);
Avatar billede dkn Nybegynder
14. januar 2003 - 21:23 #5
Prøv at gå i hjælpen efter formatdatetime();
Brug val til det andet.
Avatar billede hreiff Nybegynder
15. januar 2003 - 12:01 #6
Du kan bruge OnChange Eventen:

var
  old: string;

procedure TForm1.Edit1Change(Sender: TObject);
var
  fejl: boolean;
  i: integer;
begin
  fejl := false;
  for i:=1 to length(Edit1.text) do
    if not (Edit1.text[i] in ['0'..'9']) then
      fejl := true;
  if fejl then
    Edit1.text := old;
  else
    Old := Edit1.text;
end;
Avatar billede hinker Nybegynder
15. januar 2003 - 13:32 #7
Eller måske endnu nemmere en OnKeyPress Event :

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  {#8 svarer til backspace denne vil ellers ikke være aktiv}
  If  (Not(Key In ['0'..'9'])) And (Key <> #8) Then
    Key := #0;
end;
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