/ 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
Dato format
Fra : Kjeld Sørensen


Dato : 27-01-01 21:15

Hjælp Hvad gør jeg galt?
Jeg har brug for at formatere en dato lagret i en tabel i kort datoformat
(fx '15-06-00')
Men det lykkes kun når jeg formatere dagsdato, ved brug af 'Date' fx. . .

procedure xx;
var
Dato: String;
begin
DateTimeToString(Dato, 'dddd" den "d". "mmmm yyyy', Date);
Dato[1]:= upcase(Dato[1]);
end;

.. . . virker ok, men hvis 'Date' udskiftes med en variabel indeholdende det
korte datoformat får jeg følgende fejl:
[Error] xx: Incompatible types: 'TDateTime' and 'String'
eller når jeg retter i typebetegnelserne en eller anden dato fra det 1800
århundrede!

Jeg har datoen i et DBEdit-felt som altid viser den rigtige dato (i det
korte format) og i virkeligheden er det vel nemmere at formatere
DBEdit1.Text direkte, men ak - det kan jeg heller ikke finde ud af. Er der
noget håb for mig?

Mvh Kjeld



 
 
Ulrik Vadstrup (30-01-2001)
Kommentar
Fra : Ulrik Vadstrup


Dato : 30-01-01 11:37


Kjeld Sørensen <kjeld.s@mobilixnet.dk> skrev i en
nyhedsmeddelelse:h2Gc6.122$Wv6.27375668@news.mobilixnet.dk...
> Hjælp Hvad gør jeg galt?
> Jeg har brug for at formatere en dato lagret i en tabel i kort datoformat
> (fx '15-06-00')
> Men det lykkes kun når jeg formatere dagsdato, ved brug af 'Date' fx. . .
>
> procedure xx;
> var
> Dato: String;
> begin
> DateTimeToString(Dato, 'dddd" den "d". "mmmm yyyy', Date);
> Dato[1]:= upcase(Dato[1]);
> end;
>
> . . . virker ok, men hvis 'Date' udskiftes med en variabel indeholdende
det
> korte datoformat får jeg følgende fejl:
> [Error] xx: Incompatible types: 'TDateTime' and 'String'
> eller når jeg retter i typebetegnelserne en eller anden dato fra det 1800
> århundrede!

Bruger du rigtig Type ? - Jeg har konventeret lidt frem og tilbage så du kan
se idden med det

procedure TForm1.Button1Click(Sender: TObject);
Var
tmpDate: TDateTime;
tmpString: String;

begin
tmpString := '1-1-2001 13:00';
tmpDate := StrToDateTime(tmpString);
DateTimeToString(tmpString, 'dddd" den "d". "mmmm yyyy', tmpDate);
edit1.Text := tmpString; file://Kan også være en DBEdit1.Text
end;


Et alternertiv er at bruge en TMaskedit komponent (Under Additional), men du
skal så selv sørge for den peger i din database....


>
> Jeg har datoen i et DBEdit-felt som altid viser den rigtige dato (i det
> korte format) og i virkeligheden er det vel nemmere at formatere
> DBEdit1.Text direkte, men ak - det kan jeg heller ikke finde ud af. Er der
> noget håb for mig?
>
> Mvh Kjeld
>
>

Mvh
Ulrik



Jan (30-01-2001)
Kommentar
Fra : Jan


Dato : 30-01-01 13:30

Hej.
"Kjeld Sørensen" <kjeld.s@mobilixnet.dk> skrev i en meddelelse
news:h2Gc6.122$Wv6.27375668@news.mobilixnet.dk...
> Hjælp Hvad gør jeg galt?
> Jeg har brug for at formatere en dato lagret i en tabel i kort datoformat
> (fx '15-06-00')
function FormatDateTime(const Format: string; DateTime: TDateTime): string;
er din ven

Eks.: FormatDateTime('dd-mm-yy', NOW);

-Jan



Kjeld Sørensen (31-01-2001)
Kommentar
Fra : Kjeld Sørensen


Dato : 31-01-01 16:38

Tak for jeres svar.
Jeg fandt også selv ud af en løsning. Mit problen er Delphi's
Typeerklæringer som jeg ikke har helt styr på.
Men jeg brugte StrToDate(); til at ændre det, hvorefter DateTimeToString()
der formaterer datoen virker perfekt. Om det er 'fagligt korrekt' ved jeg
ikke, med det virker!
Jeg kender (lidt) mere til VB og jeg syntes mange ting er lettere i VB, fx
kan man uden videre tage et heltal og putte ind i en Label.Caption, men ikke
i Delphi. Her skal man bruge IntToStr() for at det virker. Det er også let
nok bare man ved det - jeg var længe om at finde ud af det!

Mvh
Kjeld



Thomas Due (01-02-2001)
Kommentar
Fra : Thomas Due


Dato : 01-02-01 09:01

Det er fordi Delphi er bygget på Pascal, og Pascal har et meget meget stærk
type beskyttelse og det medfører at man ikke bare kan ligge en integer over
i
en string og vice versa.

Det er jo et "levn" om man så må sige som ligger tilbage til Pascals
oprindelse.
Personligt mener jeg jo så at det kan være lidt irriterende nogle gange at
Pascal
er så striks med dens typer, men omvendt så er det en stor hjælp på længere
sigt fordi man ikke risikere at gange 21 med 'a' sammen ...

Mvh
Thomas

"Kjeld Sørensen" <kjeld.s@mobilixnet.dk> wrote in message
news:WmWd6.91$MC6.30422117@news.mobilixnet.dk...
> Tak for jeres svar.
> Jeg fandt også selv ud af en løsning. Mit problen er Delphi's
> Typeerklæringer som jeg ikke har helt styr på.
> Men jeg brugte StrToDate(); til at ændre det, hvorefter DateTimeToString()
> der formaterer datoen virker perfekt. Om det er 'fagligt korrekt' ved jeg
> ikke, med det virker!
> Jeg kender (lidt) mere til VB og jeg syntes mange ting er lettere i VB, fx
> kan man uden videre tage et heltal og putte ind i en Label.Caption, men
ikke
> i Delphi. Her skal man bruge IntToStr() for at det virker. Det er også let
> nok bare man ved det - jeg var længe om at finde ud af det!
>
> Mvh
> Kjeld
>
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste