Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Bool-Array als Rückgabewert einer Funktion?? (https://www.delphipraxis.net/116448-bool-array-als-rueckgabewert-einer-funktion.html)

cetinbiryoldayim 29. Jun 2008 16:24


Bool-Array als Rückgabewert einer Funktion??
 
Hallo Leute,
ich hätte mal wieder eine Frage an euch :)

Undzwar würde ich gerne folgendes Array zurückgeben:

info: array[0..2] of boolean





Delphi-Quellcode:
function gibArray(): TBoolean;
begin
 info[0] := true;
 info[1] := false;
 info[2] := true;

 result := ???????????????????
end;

DeddyH 29. Jun 2008 16:32

Re: Bool-Array als Rückgabewert einer Funktion??
 
Delphi-Quellcode:
function gibArray(): TInfo;
begin
  Result[0] := true;
  Result[1] := false;
  Result[2] := true;
end;

marabu 29. Jun 2008 16:34

Re: Bool-Array als Rückgabewert einer Funktion??
 
Hallo,

probiere es so:

Delphi-Quellcode:
uses
  Types;

function GibArray(): TBooleanDynArray;
begin
  SetLength(Result, 3);
  Result[0] := True;
  // ...
end;
Grüße vom marabu

mkinzler 29. Jun 2008 16:34

Re: Bool-Array als Rückgabewert einer Funktion??
 
Deklariere dir einen Typ:

Delphi-Quellcode:
TBoolArray = Array of Boolean;

function gibArray(): TBoolArray;

DeddyH 29. Jun 2008 16:35

Re: Bool-Array als Rückgabewert einer Funktion??
 
Ich hatte das falsch verstanden und dachte, TInfo wäre bereits ein Typ.

cetinbiryoldayim 29. Jun 2008 16:39

Re: Bool-Array als Rückgabewert einer Funktion??
 
kommen einige Fehler:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TBoolArray = Array of Boolean;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  strict private
    neuesArray: array[0..3] of boolean;
  public
    function gibArray(): TBoolArray;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  neuesArray := gibArray();
end;

function TForm1.GibArray(): TBoolArray;
begin
  SetLength(Result, 3);
  Result[0] := True;
  Result[1] := True;
  Result[2] := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  showmessage(BoolToStr(neuesArray[0])+' '+BoolToStr(neuesArray[1])+' '+BoolToStr(neuesArray[2]));
end;

end.


Fehler:
[Fehler] Unit1.pas(33): E2010 Inkompatible Typen: 'Array' und 'TBoolArray' --> Zeile 33

mkinzler 29. Jun 2008 16:43

Re: Bool-Array als Rückgabewert einer Funktion??
 
Muss natürlich der selbe Typ sein
Delphi-Quellcode:
neuesArray: TBoolArray;

cetinbiryoldayim 29. Jun 2008 16:45

Re: Bool-Array als Rückgabewert einer Funktion??
 
dann kommen neue Fehler :)

[Fehler] Unit1.pas(33): E2010 Inkompatible Typen: 'Array' und 'TBoolArray'
[Fehler] Unit1.pas(45): E2010 Inkompatible Typen: 'Boolean' und 'TBoolArray'
[Fehler] Unit1.pas(45): E2010 Inkompatible Typen: 'Boolean' und 'TBoolArray'
[Fehler] Unit1.pas(45): E2010 Inkompatible Typen: 'Boolean' und 'TBoolArray'

mkinzler 29. Jun 2008 16:48

Re: Bool-Array als Rückgabewert einer Funktion??
 
Zeig mal den aktuellen Code

cetinbiryoldayim 29. Jun 2008 16:49

Re: Bool-Array als Rückgabewert einer Funktion??
 
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TBoolArray = Array of TBoolArray;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  strict private
    neuesArray: array[0..2] of TBoolArray;
  public
    function gibArray(): TBoolArray;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  neuesArray := gibArray();
end;

function TForm1.GibArray(): TBoolArray;
begin
  Result[0] := True;
  Result[1] := True;
  Result[2] := True;
end;

end.
Fehler:
[Fehler] Unit1.pas(10): E2086 Typ 'TBoolArray' ist nicht vollständig definiert
[Fehler] Unit1.pas(31): E2010 Inkompatible Typen: 'Array' und 'TBoolArray'

DeddyH 29. Jun 2008 16:52

Re: Bool-Array als Rückgabewert einer Funktion??
 
Mach es doch so, wie marabu in #3 vorgeschlagen hat.

cetinbiryoldayim 29. Jun 2008 16:56

Re: Bool-Array als Rückgabewert einer Funktion??
 
alles klar :) jetzt geht alles !!
danke euch allen für die schnellen Antworten

mfg
cetinbiryoldayim

mkinzler 29. Jun 2008 16:57

Re: Bool-Array als Rückgabewert einer Funktion??
 
Wie schon mal geschrieben
Delphi-Quellcode:
neuesArray: TBoolArray;

NickelM 29. Jun 2008 16:59

Re: Bool-Array als Rückgabewert einer Funktion??
 
versuchs mal so
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TBoolArray = Array of Boolean;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    neuesArray: TBoolArray; //oder neuesArray: Array of Boolean;
  public
    function gibArray(): TBoolArray;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm} 

procedure TForm1.Button1Click(Sender: TObject);
begin
  neuesArray := gibArray();
end;

function TForm1.GibArray(): TBoolArray;
begin
  Result[0] := True;
  Result[1] := True;
  Result[2] := True;
end;

end.

mkinzler 29. Jun 2008 17:01

Re: Bool-Array als Rückgabewert einer Funktion??
 
Zitat:

Delphi-Quellcode:
neuesArray: TBoolArray; //oder neuesArray: Array of Boolean;

Nein das ist, wie man an den Fehlern sieht, nicht das selbe!!!!!!

cetinbiryoldayim 29. Jun 2008 17:09

Re: Bool-Array als Rückgabewert einer Funktion??
 
ja ich weiss, hatte es verbessert und es ging

der aktuelle code folgt:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TBoolArray = Array of Boolean;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  strict private
    neuesArray: TBoolArray;
  public
    function gibArray(): TBoolArray;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  neuesArray := gibArray();
end;

function TForm1.GibArray(): TBoolArray;
begin
  SetLength(Result, 3);
  Result[0] := True;
  Result[1] := True;
  Result[2] := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if neuesArray[0] = true then
  begin
    showmessage('1t');
  end;

  if neuesArray[1] = false then
  begin
    showmessage('1f');
  end;

  if neuesArray[2] = true then
  begin
    showmessage('2t');
  end;
end;

end.


->> fehlerfrei


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:17 Uhr.

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