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 Function X (a: integer ): RECORDtyp ; (https://www.delphipraxis.net/7026-function-x-integer-recordtyp-%3B.html)

st2000 30. Jul 2003 16:31


Function X (a: integer ): RECORDtyp ;
 
Hallo, ich versuchte, in einer function eine record-variable als Rückgabevariable zu definieren.

Erhalte immer den Fehler : Incompatible types : recordtyp and integer

Kann eine function etwa gar keine records zurückgeben ?
Muss ich mit Zeigern arbeiten ?
Geht es den mit Pointern zumindest ?

Die Delphi-Help redet um den heissen Brei herum .... ;-))

HELP !!!

Gruss,
ST2000
:|

Chewie 30. Jul 2003 16:32

Re: Function X (a: integer ): RECORDtyp ;
 
Das müsste eigentlich gehen.
Poste doch mal die Deklaration deiner Funktion (zumindest der Kopf).

Hansa 30. Jul 2003 16:48

Re: Function X (a: integer ): RECORDtyp ;
 
Eine Funktion gibt als Wert einen Record zurück, sagenhaft. 8) Ich bitte um Mitteilung, wie das gehen soll.

jungdelphin 30. Jul 2003 18:35

Re: Function X (a: integer ): RECORDtyp ;
 
Delphi-Quellcode:

type
 test = record
        test1,test2 : string;
end;

//  ...

function testen(string1, string2: string): test;
var
test1 : test;
begin
        test1.test1 := string1;
        test1.test2 := string2;
        result := test1;

end;

// z.B.

procedure TForm1.Button1Click(Sender: TObject);
begin
        Label1.Caption := testen('Hallo, ', 'Welt!').test1;
        Label2.Caption := testen('Hallo, ', 'Welt!').test2;
end;

Luckie 30. Jul 2003 22:12

Re: Function X (a: integer ): RECORDtyp ;
 
Zitat:

Zitat von Hansa
Eine Funktion gibt als Wert einen Record zurück, sagenhaft. 8) Ich bitte um Mitteilung, wie das gehen soll.

Hier die Mitteilung:
Delphi-Quellcode:
type
  TMyRecord = record
    String1: String;
    String2: String;
end;

function foo(s1, s2: String): TMyRecord;
var
  bar: TMyRecord;
begin
  bar.String1 := s1;
  bar.String2 := s2;
  result := bar;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(foo('hello', 'world').String1);
end;

Hansa 30. Jul 2003 22:56

Re: Function X (a: integer ): RECORDtyp ;
 
Da habe ich doch glatt was verpaßt. :mrgreen: Seit wann geht denn das ?

-Amazeroth- 30. Jul 2003 23:04

Re: Function X (a: integer ): RECORDtyp ;
 
Es ging schon immer. (Sogar in Pascal 7, soweit ich mich entsinne)

Im übrigen wäre es cleverer direkt in "result" zu schreiben, statt eine extra Stackvariable anzulegen ;)

Mahlzeit.

Hansa 30. Jul 2003 23:41

Re: Function X (a: integer ): RECORDtyp ;
 
hoffe, Dich nicht beim Mittagessen zu stören. :mrgreen: Unter BP 7 geht das hier nicht:

Delphi-Quellcode:
type

test = record
  test1,
  test2 : string;
end;

function test1 : test;
begin

end;

end.

-Amazeroth- 30. Jul 2003 23:59

Re: Function X (a: integer ): RECORDtyp ;
 
@Hansa: Ich laß mich gern überzeugen. Hab eh kein BP7 mehr drauf :) ... mir war nur so, als ob das ginge.

Hansa 31. Jul 2003 00:30

Re: Function X (a: integer ): RECORDtyp ;
 
Zitat:

Zitat von -Amazeroth-
... mir war nur so, als ob das ginge.

ja, Mittagessen war nicht gut genug, es geht nicht. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 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