AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Array als Referenz einer Methode übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

Array als Referenz einer Methode übergeben

Ein Thema von TheMiller · begonnen am 22. Nov 2009 · letzter Beitrag vom 23. Nov 2009
 
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#13

Re: Array als Referenz einer Methode übergeben

  Alt 22. Nov 2009, 17:24
Also, genau so, wie es jetzt von dir gepostet wurde (DeddyH), hatte ich es von Anfang an gehabt. Hier nochmal meine Version, falls ich was übersehen habe.

Delphi-Quellcode:
type
  TSQLData = array of array of String;

type
  //SQL-Funktionen
  procedure AddSQLField(data: TSQLData; feld: String; wert: String; utf8enc: Boolean = true);
  function InsertSQL(ZQuery: TZQuery; table: String; data: TSQLData): Boolean;

//SQL-Funktionen
procedure AddSQLField(data: TSQLData; feld: String; wert: String; utf8enc: Boolean = true);
begin
  SetLength(data, Succ(Length(data)), 2);
  if (utf8enc) then
  begin
    data[High(data)][0]:=utf8encode(feld);
    data[High(data)][1]:=utf8encode(wert);
  end else
  begin
    data[High(data)][0]:=feld;
    data[High(data)][1]:=wert;
  end;
end;

function InsertSQL(ZQuery: TZQuery; table: String; data: TSQLData): Boolean;
var
  i: Integer;
begin
  for i:=0 to High(data) do
  begin
    ShowMessage(data[i][0]+' '+data[i][1]);
  end;
end;

///////////////////
//// HAUPTUNIT ////
///////////////////

procedure TForm1.frmSchemabtnSaveClick(Sender: TObject);
var
  daten: TSQLData;
begin
  AddSQLField(daten, 'pid', '1');
  AddSQLField(daten, 'titel', frmGesetz.Editor.Text);
  AddSQLField(daten, 'text', 'test2');
  InsertSQL(ZQuery1, 'test', daten);
end;
So, und in der Bibliotheks-Unit wird nicht die lokale Variable "Daten" genutzt, sondern eine völlig neue, gleichen Typs initialisiert und beschrieben.

Ich verstehe aber ehrlich gesagt nicht, wieso das so ist. Denn, ein Array ist doch schon ein Pointer auf eine Adresse und wenn ich diesen übergebe, wie kann dann ein neues Array angelegt werden?

Danke!
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:59 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