Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#12

Re: Syntax-Frage: Einem Array mehrere Werte "aufeinmal&

  Alt 15. Okt 2008, 16:13
Hi,

1) Da hast du recht
2) Dachte ich auch, aber scheinbar ist das nicht der Fall.

Folgendes funktioniert:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    arr: Array[3..7] of String;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure FillArray(var Dest: Array of String; Source: Array of String);
begin
  Move(Source[Low(Source)],Dest[Low(Dest)],Length(Dest)*4);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  FillArray(arr,['Hallo','Welt','!','DelphiPraxis','!']);
end;

procedure TForm1.Button2Click(Sender: TObject);
var i: Integer;
begin
  for i:= low(arr) to high(arr) do
    ShowMessage(arr[i]);
end;
Wegen 1) werd ich mal gucken...

@Sherlock

Zitat:
Da passiert mit Zeigern gar nichts.
Doch, es werden nur die Pointer auf die eigentlichen Strings von Array zu Array kopiert

Zitat:
Verschiebe vom ersten Element des Arrays Source an, alle seine Elemente in das Array Dest, aber nur maximal so viele wie in Dest reinpassen.
Richtig.

Zitat:
Und da ist glaub ich noch ein Problem, denn wenn in Source weniger ist als in Dest rein passt, wird unvorhersehbares als weiteres Arrayelement zugeordnet.
Dieser Teil des Arrays wird dann gar nicht angerührt. Von daher kein Problem.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat