AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi dynamisches array an procedure übergeben
Thema durchsuchen
Ansicht
Themen-Optionen

dynamisches array an procedure übergeben

Ein Thema von messie · begonnen am 16. Sep 2009 · letzter Beitrag vom 16. Sep 2009
Antwort Antwort
Seite 1 von 2  1 2      
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:00
Moin,

habe gerade mal wieder eine kleine Blockade.
Ich habe ein array{Zeile} of array{Spalte} und möchte array[x] {also eine Zeile} an eine Prozedur übergeben. Da renne ich mal wieder mit dem Kopf an die Wand, weil das array in der Prozedurdeklaration ja anders betrachtet wird als das dynamische array. Normalerweise würde ich da Typen benutzen, schon wegen der Übersichtlichkeit. Hier geht das aber nicht.

Kann mir jemand einen Anstoss geben?

Danke, Messie
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:02
Hallo messie,

geht es denn nicht mit einem offenen Array in der Parameterliste der Prozedur?

procedure einName(data: Array of Byte); Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:05
Oder eben doch mit nem Typen:
Delphi-Quellcode:
type
  TSubArray = array of Foo;
.
.
procedure Foobar(peng: TSubArray);
.
.

var
  Bar: array of TSubArray;
begin
  Foobar(Bar[i]);
end;
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:05
[edit] Siehe mein Vorredner [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#5

Re: dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:17
Nee, gibt Compilermecker
Delphi-Quellcode:
var
  Dingens : array of array of variant;

implementation
 
  procedure MachMalWas(Input : array of variant)
wird bei der Übergabe vonMachMalWas(Dingens[0]) abgelehnt.
Zitat:
Inkompatible Typen: Array und Dynamic array
Typen dürfen nicht benutzt werden.

Grüße, Messie
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#6

Re: dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:28
Zitat von messie:
Nee, gibt Compilermecker
Delphi-Quellcode:
var
  Dingens : array of array of variant;

implementation
 
  procedure MachMalWas(Input : array of variant)
wird bei der Übergabe vonMachMalWas(Dingens[0]) abgelehnt.
Zitat:
Inmopatible Typen: Array und Dynamic array
Typen dürfen nicht benutzt werden.

Grüße, Messie
Und was hat das mit dem Thema zu tun? Außerdem benutzt Du doch gar keine Typdefinitionen (type Tdinges = ...)!
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:30
Zitat von messie:
Typen dürfen nicht benutzt werden.
Dann bleibt dir nur noch die C-Variante: Pointer auf's erste Element, und Count übergeben. Warum keine Typen!?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#8

Re: dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:38
Messies Beispiel kann man natürlich so umschreiben, daß es ohne Fehler kompiliert:

Delphi-Quellcode:
type
 TDingens1 = array of variant;
 TDingens2 = array of TDingens1;

var
  Dingens : TDingens2;

procedure MachMalWas(Input : TDingens1);
begin
  //....
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MachMalWas(Dingens[0]);
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#9

Re: dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:39
Delphi-Quellcode:
type TDingens = array of variant;
  TDingens2 = array of TDingens;

var
  Dingens : TDingens2;

implementation

  procedure MachMalWas(Input : TDingens)
[edit]
da is man ma kurz abgelenkt

nja, aber zum Problem: Typen müssen genau übereinstimmen und nicht nur gleich aussehn

also das geht auch, da dort TDidinges GENAU das Gleiche ist
Delphi-Quellcode:
type TDingens = array of variant;

var
  Dingens : array of TDingens;

implementation

  procedure MachMalWas(Input : TDingens)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#10

Re: dynamisches array an procedure übergeben

  Alt 16. Sep 2009, 11:56
Zitat von Medium:
Warum keine Typen!?
Typen dürfen nicht benutzt werden, weil der Code später in ein Script ausgelagert werden soll (FastScript). Und das unterstützt keine Typen. Denn ein Typ ist eine Speicherstruktur, wie soll das dem Script übergeben werden?

Grüße, Messie
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:54 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