Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probleme mit parametern (https://www.delphipraxis.net/138109-probleme-mit-parametern.html)

gangs-taas 3. Aug 2009 21:04


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:
[...]
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;
ich übergebe doch als parameter genau das was gefragt ist odeR ?!
wo ist dann der fehler ?

Bernhard Geyer 3. Aug 2009 21:12

Re: Probleme mit parametern
 
Zitat:

Zitat von gangs-taas
ich übergebe doch als parameter genau das was gefragt ist odeR ?!


Zitat:

Zitat von gangs-taas
wo ist dann der fehler ?

Hier:

Delphi-Quellcode:
  prüfen(1,Woche,Text,Textdatei);

function TForm1.Prüfen(var HilfsVar: Integer;
Du übergibst als ersten Parameter einen festen Integerwert (Konstante). Wie soll der Variablel (geändert Wert wird zurückgegeben) sein?

FaTaLGuiLLoTiNe 3. Aug 2009 21:14

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.

gangs-taas 3. Aug 2009 21:21

Re: Probleme mit parametern
 
okay
danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:52 Uhr.

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