Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi DateTime-Variable einer Funtion übergeben (https://www.delphipraxis.net/113715-datetime-variable-einer-funtion-uebergeben.html)

sventeq 13. Mai 2008 15:01


DateTime-Variable einer Funtion übergeben
 
Hallo zusammen, hab da ein kleines Problem. Ich muss ein Datum auf Samstag oder Sonntag prüfen. Das klappt auch alles ganz prima. Jetzt wollte ich diese Prüfung in einer Funktion auslagern und da bekomme ich jetzt eine Fehlermeldung.

"TMenuItem kann nicht zu TDateField zugewiesen werden"

Delphi-Quellcode:
function sa_so_pruefung(laufdatum1:tdatetime):tdatetime;
begin
  if dayofweek(laufdatum1)-1 = 6 then
                  begin
                    Result:=laufdatum1-1;
                    kapadb.kap001test.Prior;
                  end;
                  if dayofweek(laufdatum1)-1 = 0 then
                  begin
                    Result:=laufdatum1-2;
                    kapadb.kap001test.Prior;
                    kapadb.kap001test.Prior;
                  end;
end;

laufdatum:=sa_so_pruefung(laufdatum);
was mache ich da falsch? Wäre für etwas Hilfe echt dankbar

DeddyH 13. Mai 2008 15:06

Re: DateTime-Variable einer Funtion übergeben
 
Wenn Du uns jetzt noch sagst, was laufdatum, kapadb und kap001test für Komponenten/Datentypen sind, können wir Dir bestimmt helfen.

sventeq 13. Mai 2008 15:11

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von DeddyH
Wenn Du uns jetzt noch sagst, was laufdatum, kapadb und kap001test für Komponenten/Datentypen sind, können wir Dir bestimmt helfen.

Das laufdatum ist tdatetime, kapadb ist eine Unit mit Datenbankzugriff und kap001test ist eine TTable

DeddyH 13. Mai 2008 15:16

Re: DateTime-Variable einer Funtion übergeben
 
Hmm, das scheint soweit alles richtig zu sein. Hast Du evtl. noch ein MenuItem selben Namens?

RavenIV 13. Mai 2008 15:16

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von sventeq
was mache ich da falsch? Wäre für etwas Hilfe echt dankbar

1) Du ignorierst Gross/Kleinschreibung. Das macht den Code nicht besonders leserlich.
2) Du benutzt den "_" im Funktionsnamen. Das macht den Code nicht besonders leserlich.
3) was ist "laufdatum"? Könnte es vielleicht wirklich einen Menueintrag mit diesem Namen geben?
4) Zum Testen:
4a) leg eine neue Variable an -> TestDatum : TDateTime;
4b) mach dann: TestDatum := SaSoPruefung(Now);
4c) was steht dann in TestDatum?

shmia 13. Mai 2008 15:17

Re: DateTime-Variable einer Funtion übergeben
 
Du suchst garantiert an der falschen Stelle.
Ein Doppelklick auf die Fehlermeldung bringt dich genau in die fehlerhafte Zeile im Sourcecode.

tomsel 13. Mai 2008 15:17

Re: DateTime-Variable einer Funtion übergeben
 
Dann würde ich die Fehlerursache mal in kap001testAfterScroll vermuten, falls vorhanden.

sventeq 13. Mai 2008 15:18

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von DeddyH
Hmm, das scheint soweit alles richtig zu sein. Hast Du evtl. noch ein MenuItem selben Namens?

Definitiv nicht.

DeddyH 13. Mai 2008 15:19

Re: DateTime-Variable einer Funtion übergeben
 
Dann versuch mal #6 und nenn uns die monierte Zeile.

RavenIV 13. Mai 2008 15:22

Re: DateTime-Variable einer Funtion übergeben
 
Hallo????
Hat überhaupt einer meinen Post bemerkt?
Es war #5.

sventeq 13. Mai 2008 15:26

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von sventeq
was mache ich da falsch? Wäre für etwas Hilfe echt dankbar

1) Du ignorierst Gross/Kleinschreibung. Das macht den Code nicht besonders leserlich.
2) Du benutzt den "_" im Funktionsnamen. Das macht den Code nicht besonders leserlich.
3) was ist "laufdatum"? Könnte es vielleicht wirklich einen Menueintrag mit diesem Namen geben?
4) Zum Testen:
4a) leg eine neue Variable an -> TestDatum : TDateTime;
4b) mach dann: TestDatum := SaSoPruefung(Now);
4c) was steht dann in TestDatum?

30.12.1899

sventeq 13. Mai 2008 15:28

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von RavenIV
Hallo????
Hat überhaupt einer meinen Post bemerkt?
Es war #5.

Ja, hab ich. Hab grad nur das von RavenIV ausprobiert. Werde ich jetzt machen

sventeq 13. Mai 2008 15:29

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von sventeq
Zitat:

Zitat von RavenIV
Hallo????
Hat überhaupt einer meinen Post bemerkt?
Es war #5.

Ja, hab ich. Hab grad nur das von RavenIV ausprobiert. Werde ich jetzt machen

Ach das warst ja du :oops:

DeddyH 13. Mai 2008 15:31

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

30.12.1899
Logisch, da Result ja nur bei Samstag und Sonntag zugewiesen wird.

Der.Kaktus 13. Mai 2008 15:31

Re: DateTime-Variable einer Funtion übergeben
 
hallo,

also ich stelle fest, dass die TTable-Befehle in der Funktion nicht gebraucht werden.

Delphi-Quellcode:
function sa_so_pruefung(laufdatum1:tdatetime):tdatetime;
begin
  if dayofweek(laufdatum1)-1 = 6 then
                  begin
                    Result:=laufdatum1-1;
                  end;
  if dayofweek(laufdatum1)-1 = 0 then
                  begin
                    Result:=laufdatum1-2;
                  end;
end;

laufdatum:=sa_so_pruefung(laufdatum);
Die Funktion dayofweek(..) bringt als Ergebnis einen Integerwert..was aber nicht bedeutet, dass Du den einfach von Laufdatum abziehen kannst. Im Laufdatum steht ein "double" Wert mit mehr Angaben als dem Wochentag..die sind somit zerstoert.

DeddyH 13. Mai 2008 15:32

Re: DateTime-Variable einer Funtion übergeben
 
Was aber alles die Fehlermeldung noch nicht erklärt.

RavenIV 13. Mai 2008 15:33

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von DeddyH
Was aber alles die Fehlermeldung noch nicht erklärt.

Dann muss halt mehr Code her.
Am besten das ganze Projekt als Anhang.

sventeq 13. Mai 2008 15:34

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von DeddyH
Zitat:

30.12.1899
Logisch, da Result ja nur bei Samstag und Sonntag zugewiesen wird.

Ja, stimmt natürlich, wie dumm. Muss jetzt leider auch zur Arbeit. Werde #5 später nochmal machen und mir die Codezeile ansehen. Danke für eure Hilfe.

Der.Kaktus 13. Mai 2008 15:35

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von DeddyH
Was aber alles die Fehlermeldung noch nicht erklärt.

..stimmt, aber da muesste er schon noch nen bissl mehr Quelltext reinstellen..zB. die Deklarationen. Aber die Funktion geht zumindstens sooo nicht! ;-)

Raven war schneller :thumb:

tomsel 13. Mai 2008 15:36

Re: DateTime-Variable einer Funtion übergeben
 
Zitat:

Zitat von DeddyH
Was aber alles die Fehlermeldung noch nicht erklärt.

Darf ich aus Anlass dieser Feststellung noch ein mal höflichst auf "Afterscroll" zurück kommen? :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz