Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi var eine Funktion übergibt wert nicht (https://www.delphipraxis.net/95757-var-eine-funktion-uebergibt-wert-nicht.html)

gandime 12. Jul 2007 16:47


var eine Funktion übergibt wert nicht
 
Hi,
also ich habe eine Funktion:

Delphi-Quellcode:
function split_filename(s_filename,s_dir,s_name:string):boolean;
begin
  dir:='aaa';
  s_name:='bbb';
end;
diese Funktion rufe ich so auf:

Delphi-Quellcode:
var
  s_dir,s_name:string;
begin
  split_filename('C:\blabla\a.txt',s_dir,s_name);
  showmessage(s_dir);
  showmessage(s_name);[
aber sowohl s_dir als auch s_name =''

warum?

mfg
gandime

Neutral General 12. Jul 2007 16:49

Re: var eine Funktion übergibt wert nicht
 
Hi,

Du gibst erst mal in deiner Funktion nichts zurück. Das solltest du machen, sonst kannst du auch proceduren benutzen.

Delphi-Quellcode:
procedure split_filename(var s_filename,s_dir,s_name: String);
begin
  s_dir:='aaa';
  s_name:='bbb';
end;
So würde es klappen.

Gruß
Neutral General

mkinzler 12. Jul 2007 16:52

Re: var eine Funktion übergibt wert nicht
 
es sind auch keine Var Parameter

gandime 12. Jul 2007 16:53

Re: var eine Funktion übergibt wert nicht
 
das ist jetzt nicht die richtige Funktion ich hab die blos einmal beispielhalber geschrieben
aber der booleanwert wird benötigt

mkinzler 12. Jul 2007 16:55

Re: var eine Funktion übergibt wert nicht
 
Wie sollen wir den wissen, wie deine Funktion/Prozedur aussieht?Die gepostete funktioniert so nicht.

Delphi-Quellcode:
procedure split_filename(var s_filename; var s_dir, var s_name: String);

Chemiker 12. Jul 2007 16:55

Re: var eine Funktion übergibt wert nicht
 
Hallo,

es wird doch nichts zurückgegeben.

Bis bald Chemiker

SirThornberry 12. Jul 2007 16:56

Re: var eine Funktion übergibt wert nicht
 
wenn du mit deiner richtigen funktion ein problem hast und mit der geposteten nicht solltest du deine richtige posten.

gandime 12. Jul 2007 16:59

Re: var eine Funktion übergibt wert nicht
 
hier:
Delphi-Quellcode:
function split_filename(s_filename,s_dir,s_name:string):boolean;
var
  i_dir_l:integer;
  s_temp:string;
begin
  if (pos('\',s_filename)<>0) then
  begin
    i_dir_l:=length(s_filename);
    s_temp:='';
    repeat
      s_temp:=s_temp+s_filename[i_dir_l];
      i_dir_l:=i_dir_l-1;
    until (i_dir_l=0);
    s_name:=split_vor(s_temp,'\',true);
    s_dir:=split_nach(s_temp,'\',true);
    i_dir_l:=length(s_name);
    s_temp:='';
    repeat
      s_temp:=s_temp+s_name[i_dir_l];
      i_dir_l:=i_dir_l-1;
    until (i_dir_l=0);
    s_name:=s_temp;
    i_dir_l:=length(s_dir);
    s_temp:='';
    repeat
      s_temp:=s_temp+s_dir[i_dir_l];
      i_dir_l:=i_dir_l-1;
    until (i_dir_l=0);
    s_dir:=s_temp+'\';
    result:=true;
  end
  else
  begin
    s_dir:='';
    s_name:='';
    result:=false;
  end;
end;

Christian Seehase 12. Jul 2007 16:59

Re: var eine Funktion übergibt wert nicht
 
Moin gandime,

Du musst zwischen vier Varianten von Parametern unterscheiden:

Konstante-Parameter (const):
Der Wert wird an die Funktion/Prozedur übergeben, und man kann dem Parameter nichts zuweisen (wird schon vom Compiler geblockt).

Wert-Parameter (kein Prefix):
Der Wert wird als Kopie an die Funktion/Prozedur übergeben. Man kann dem Parameter etwas zuweisen, das hat dann aber nur innerhalb der Funktion/Prozedure Gültigkeit.

Var-Parameter (var):
Der Wert wird an die Funktion/Prozedur übergeben, man kann etwas zuweisen, und es wird hierbei in die Variable geschrieben, die angegeben wurde.

Out-Parameter (out):
Es wird kein Wert an die Funktion/Prozedur übergeben. Dieser Paramtertyp dient nur dazu Werte zurückzugeben. (Result reicht ja nicht immer ;-))

gandime 12. Jul 2007 17:08

Re: var eine Funktion übergibt wert nicht
 
danke für die info jetzt hab ichs


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:45 Uhr.
Seite 1 von 2  1 2      

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