![]() |
Probleme mit parametern
Hey,
ich habe in meinem programm ein Problem mit parametern... zu erst : ich bekomme die Fehlermeldung " Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" das hier ist mein code:
Delphi-Quellcode:
ich übergebe doch als parameter genau das was gefragt ist odeR ?!
[...]
var Form1: TForm1; Zwischenspeicher : TStringlist; Zwischenspeicher2 : TStringlist; Textdatei,Textdatei2 : String; woche : String ; woche2 : String; Text : String ; const ext = '.txt' ; implementation procedure TForm1.FormCreate(Sender: TObject); begin text := ('Montag' + #13#10 + 'Dienstag' + #13#10 + 'Mittwoch' + #13#10 + 'Donnerstag' + #13#10 + 'Freitag' + #13#10 + 'Samstag' + #13#10 + 'Sonntag'); Textdatei2 := woche+'Termine ' +Edit8.Text + '\' +(IntToStr(KWoche +1))+ext; prüfen(1,Woche,Text,Textdatei); end; function TForm1.Prüfen(var HilfsVar: Integer; Pfad : STring; Text : string; DokumentenOrt : STring): Integer ; var Dokument : Tstringlist; begin Dokument:= Tstringlist.Create; if (Text = 'Kein Dokument') then begin If not FileExists(DokumentenOrt) Then begin result := 1; end Else Result := 0; end Else result := 0; if not DirectoryExists(Pfad) then begin ForceDirectories(Pfad); Dokument.Add(Text); Dokument.SaveToFile(DokumentenOrt); end Else begin If not FileExists(DokumentenOrt) Then begin Dokument.Add(Text); Dokument.SaveToFile(DokumentenOrt); end; end; if (HilfsVar = 1) Then begin if (Dokument.Count = 0) then begin Dokument.Add(Text); Dokument.SaveToFile(DokumentenOrt); end; Dokument.Add('Ende') ; end; end; wo ist dann der fehler ? |
Re: Probleme mit parametern
Zitat:
Zitat:
Delphi-Quellcode:
Du übergibst als ersten Parameter einen festen Integerwert (Konstante). Wie soll der Variablel (geändert Wert wird zurückgegeben) sein?
prüfen(1,Woche,Text,Textdatei);
function TForm1.Prüfen(var HilfsVar: Integer; |
Re: Probleme mit parametern
Du darfst für einen var-Parameter (hier: HilfsVar) keine Konstanten (hier: 1) übergeben.
2 Möglichkeiten zur Fehlerbehebung: - Du deklarierst den Parameter nicht als var-Parameter. Brauchst du in diesem Fall ja auch nicht, weil du die Variable ja innerhalb der Funktion gar nicht änderst. - Du deklarierst dir ausserhalb der Funktion eine weitere Variable, weist ihr den Wert 1 zu und übergibst sie anstelle der konstanten 1 an die Funktion. Davon mal abgesehen solltest du Variablen wenn irgend möglich nicht global deklarieren (hier: Zwischenspeicher, Zwischenspeicher2, Textdatei usw.). Je grösser dein Programm wird, desto öfter wirst du von verschiedenen Punkten des Programms aus auf diese Variablen zugreifen, und desto unübersichtlicher und damit fehleranfälliger wird das Programm. |
Re: Probleme mit parametern
okay
danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 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 by Thomas Breitkreuz