Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Kill the Global Variable


Smartie - Mo 04.07.05 08:59
Titel: Kill the Global Variable
Hallo,

ok, inzwischen beider Kosmetik angelangt, sollte mein Teilprojekt bissel schönes aussehen, bevor es ins große Projket eingebunden wird.

Mein Hauptproblem: Ich habe hier HAUFENWEISE globaler Variablen.
Gut, jetzt mal ganz doof, wenn ich Rückgabewerte ausgeben möchte, sollte ich ja aus einigen meiner Prozeduren Funktionen machen.
Nur, wie mache ich das, wenn ich merh als einen Rückgabewert habe? Wie übergebe ich das in eine Prozedur wenn ich das Ding ausführe, ohne auf globale Variablen zurückzugreifen?

Herzlichsten Dank und Gruß


Smartie


uall@ogc - Mo 04.07.05 09:04


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure blub(var a,b,c: integer);
begin
  a := a*2;
  b := b*b;
  c := c/2;
end;


procedure main;
var a,b,c: integer;
begin
  a := 1;
  b := 2;
  c := 3;
  blub(a,b,c);
end;


Smartie - Mo 04.07.05 09:15

Alles klar, herzlichen Dank! Bisher habe ich imemr nur Variablen an eine Prozedur weitergegeben, noch nie umgekehrt, nur bei Funktionen.

Dabei ist es so simpel *An Hirn fass*

Gruß und Danke


Smartie


BenBE - Mo 04.07.05 12:41

Ergänzung:
Es gibt noch zwei weitere Möglichkeiten:


Delphi-Quelltext
1:
Procedure blub(ain, bin, cin: Integer; out aout, bout, cout: Integer);                    

Wobei aout, bout und cout vom Compiler am Anfang der Routine als undefiniert betrachtet werden.

Oder per Record:

Delphi-Quelltext
1:
2:
3:
4:
5:
type TResult = record
    A, B, C: Integer;
end;

function blubb(InParams:ParamList): TResult;