Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - 2 funktionsrückgabewerte - geht das?


bruder jonas - So 05.01.03 13:03
Titel: 2 funktionsrückgabewerte - geht das?
hallo,

habe folgende funktion

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function THauptForm.eingabewert: string; 
begin
  if (cbWerte.text <> '') or (editaname.Text <> '') then
   begin
    result := cbWerte.text or result := editname.Text;
    end
    else
    showmessage("nichts eingegeben');
    halt;
   end;

ich kriege einen fehlerhinweis in der zeile mit result.

ich will (je nach eingabe) entweder cbWerte.text oder editname.text als result zurückgeben.

wie mache ich das?

danke

(05.01. 12:13 Tino) Code-Tags hinzugefügt.


Tino - So 05.01.03 13:12

Hallo,

ist dir klar das die Halt Procedure immer aufgerufen wird?

Versuch mal folgendes:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function THauptForm.eingabewert: string; 
begin
  if cbWerte.text <> '' then
    result := cbWerte.text
  else if editaname.Text <> '' then
    result := editname.Text
  else
    begin 
      showmessage ("nichts eingegeben');
      result := '';
    end;
end;


tommie-lie - So 05.01.03 19:52

der wird nur leider auch nicht gehen, Tino:

Quelltext
1:
2:
  result := editname.Text;
else


Wie war das doch gleich? In einer IF-Abfrage nie ein Semikolon?


Was soll eigentlich geschehen, wenn sowohl in editname, als auch in cbWerte was eingegeben wird? Soll da irgendwas besonderes passieren oder soll irgendeiner Vorrang gegenüber dem anderen haben?


Tino - So 05.01.03 20:25

tommie-lie hat folgendes geschrieben:
der wird nur leider auch nicht gehen, Tino

Passiert schon mal... Habs geändert!


kampfkoloss23 - Di 28.01.03 00:08

man könnte über balablbal(var variable1:string):string;

indirekt zurückgeben.
(var verändert den eingegebnen Parameter und es wird nicht
wie normal nur ne Kopie erstellt)