Autor Beitrag
Christoph Englmann
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Do 05.08.04 11:06 
Hallo,

hab ne ganz einfache Funktion:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Button1Click(Sender: TObject);

function Wochentag(Tag :string): string;

begin
  if Tag = '1' then
    begin
      result := 'Montag'
    end;
end;


var
  Guelt_Day :string;

begin
  Guelt_Day := Wochentag('1');
end;


Problem:
nach durchlauf hat die variable Guelt_Day den Wert '' und nicht 'Montag' (if bedingung funzt..)

danke

christoph
patrick
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1481

WIN2k, WIN XP
D6 Personal, D2005 PE
BeitragVerfasst: Do 05.08.04 11:22 
bei dir ist das
procedure TForm1.Button1Click(Sender: TObject);
etwas hochgerutscht.
so ists richtig:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
function Wochentag(Tag :string): string;   
begin   
  if Tag = '1' then   
    begin   
      result := 'Montag'   
    end;   
end;   

procedure TForm1.Button1Click(Sender: TObject);   
var   
  Guelt_Day :string;   

begin   
  Guelt_Day := Wochentag('1');   
end;

_________________
Patrick
im zweifelsfall immer das richtige tun!!!
Christoph Englmann Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Do 05.08.04 13:05 
Danke, habs jetzt folgendermaßen versucht, leider immer noch das gleiche Problem:
die Variable Guelt_Day hat immer noch den Wert ''

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
implementation

function Wochentag(Tag :string): string;

begin
  if Tag = '1' then
    begin
      result := 'Montag'
    end;
end;


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);


var
  Guelt_Day :string;

begin
  Guelt_Day := Wochentag('1');
end;

end.



christoph
Viper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 88



BeitragVerfasst: Do 05.08.04 13:31 
Wenn das dein ganzer Aufruf ist, dann wird der Variablen vom Compiler kein Wert zugeordnet, da sie danach nicht mehr benutzt wird.

Versuch es mal so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
implementation 
 
{$R *.dfm}
 
function Wochentag(Tag :string): string;  
begin  
  if Tag = '1' then  
    begin  
      result := 'Montag'  
    end;  
end;  
 
procedure TForm1.Button1Click(Sender: TObject);  
var  
  Guelt_Day :string;   
begin  
  Guelt_Day := Wochentag('1');  
  Caption := Guelt_Day;
end; 
 
end.

_________________
"Der Sinussatz ist nur was für Leute, die Teichbesitzer mit Insel und Baum sind. Alle anderen können ihn vergessen" (Mein Mathe-Prof.)
Christoph Englmann Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 276



BeitragVerfasst: Do 05.08.04 13:49 
hallo,

danke super das wars... find ich zwar etwas komisch aber....egal

christoph
Viper
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 88



BeitragVerfasst: Do 05.08.04 17:23 
Um nicht unnötig Speicher zu verschwenden, filtert der Compiler Variablen heraus, auf die kein einziges Mal zugegriffen werden. Beim compelieren müsstest du auch eine Warnmeldung erhalten haben, dass der Wert, der der Variable zugeordnet wurde, kein einziges Mal gebraucht wird.

_________________
"Der Sinussatz ist nur was für Leute, die Teichbesitzer mit Insel und Baum sind. Alle anderen können ihn vergessen" (Mein Mathe-Prof.)
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Do 05.08.04 18:03 
Hi,
patrick hat folgendes geschrieben:
bei dir ist das
procedure TForm1.Button1Click(Sender: TObject);
etwas hochgerutscht.

nciht umbedingt, Lokale funktionen sind in Pascal durchaus erlaubt, macht nur kaum jemand, weil es schnell unübersichtlich wird.

Gruß
Klabautermann
it0101
Hält's aus hier
Beiträge: 15

W2k
D6 Enterprise
BeitragVerfasst: Fr 06.08.04 09:20 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
function Wochentag(Tag :string): string;    
begin    
  if Tag = '1' then    
    begin    
      WOCHENTAG:= 'Montag'    
    end;    
end;


warum nich nach guter alter pascal manier....

so müsste das doch auch funzen, da meckert er zwar, dass eventuell kein wert zurückgegeben wird, weil die zuweisung hinter einer bedingung hängt aber is doch egal, ich muss ehrlich zugeben, dass ich noch nie result verwendet habe, bringt das irgendwelche geschwindigkeitsvorteile?


Moderiert von user profile iconPeter Lustig: Code- durch Delphi-Tags ersetzt.