Autor Beitrag
huhn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 272
Erhaltene Danke: 1

WIN XP
D7Pers
BeitragVerfasst: Sa 11.09.10 16:25 
Hi forum,

ich möchte eine Funktion überladen in dem Sinne, dass ich verschiedene Rückgabewerte bekommen.
Mein bisheriger Versuch hat irgendwie nicht so ganz funktioniert:
ausblenden volle Höhe 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:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
  TKonst =record
    letter: shortstring;
    value: extended;
    vunit: shortstring;
    description: String;
  end;

  function konst(letter: string): extended; overload;
  function konst(letter: string): TKonst; overload;
.
.
.
function konst(letter: shortstring):extended; overload;
var z:integer;
begin
  result:=0;
  for z:=low(konstanten) to high(konstanten) do
    if konstanten[z].letter=letter then
      begin
        result:=konstanten[z].value;
        break;
      end;
end;

function konst(letter: shortstring):TKonst; overload;
var z:integer;
begin
  result.letter:='';
  result.value:=0;
  result.vunit:='';
  result.description:='';
  for z:=low(konstanten) to high(konstanten) do
    if konstanten[z].letter=letter then
      begin
        result:=konstanten[z];
        break;
      end;
end;

aber irgendwie meckert der kompiler rum, steh da irgendwie aufm Schlauch und eine Procedure möchte ich nicht draus machen.

mfg huhn

_________________
Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*
dummzeuch
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 593
Erhaltene Danke: 5


Delphi 5 ent, Delphi 6 bis Delphi XE8 pro
BeitragVerfasst: Sa 11.09.10 16:50 
Hi,

user profile iconhuhn hat folgendes geschrieben Zum zitierten Posting springen:

ich möchte eine Funktion überladen in dem Sinne, dass ich verschiedene Rückgabewerte bekommen.
Mein bisheriger Versuch hat irgendwie nicht so ganz funktioniert:
ausblenden Delphi-Quelltext
1:
2:
  function konst(letter: string): extended; overload;
  function konst(letter: string): TKonst; overload;



Leider verloren. Der Compiler entscheidet alleine anhand der Parameter welche Funktion er aufrufen soll. Da die Parameter Deiner Funktionen aber gleich sind, weigert er sich.
Es bleibt Dir nur uebrig, die Funktionen unterschiedlich zu benennen.

twm
huhn Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 272
Erhaltene Danke: 1

WIN XP
D7Pers
BeitragVerfasst: Sa 11.09.10 18:02 
jo musst ich auch feststellen und habe mich vom compiler geschlagen gegeben ;)
trotzdem danke für die hilfe

mfg huhn

_________________
Quod Erat Demonstrandum-Was zu beweisen war! *THX to Chrissivo!*