AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Variable Übergabeparameter

Ein Thema von xZise · begonnen am 28. Okt 2006 · letzter Beitrag vom 30. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

Variable Übergabeparameter

  Alt 28. Okt 2006, 11:48
Ich wollte eine folgende Funktion schreiben:
Delphi-Quellcode:
procedure changeItemsnum(vArray : ??? ; vItems : Integer);
begin
  SetLength(vArray, Length(vArray) + vItems);
end;
Was muss jetzt ansitelle von "vArray", um eben alle arrays zu benutzen? Also integerarrays, stringarrays, oder andere, ohne eine eigene Methode zu schreiben?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
shubbi
(Gast)

n/a Beiträge
 
#2

Re: Variable Übergabeparameter

  Alt 28. Okt 2006, 12:20
Das geht meines Wissens nach nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#3

Re: Variable Übergabeparameter

  Alt 28. Okt 2006, 12:24
gibts da nicht sowas wie array of const

  Mit Zitat antworten Zitat
shubbi
(Gast)

n/a Beiträge
 
#4

Re: Variable Übergabeparameter

  Alt 28. Okt 2006, 12:27
Array of const bedeuted, dass du der Funktion ein Array von verschiedenen Typen übergeben kannst (z.B. bei Format(f: string; arg: array of const) )
Das ist so etwas ähnliches wie "..." in C (z.B. printf(char *fmt, ...) ) und ist nicht mit einem normalen array zu verwechseln
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Variable Übergabeparameter

  Alt 28. Okt 2006, 12:31
Array of Variant
TVarArray
TVarRec
Markus Kinzler
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Variable Übergabeparameter

  Alt 28. Okt 2006, 12:34
Du könntest dir einen Typ TArray basteln, von dem du dann mehrere Typen ableleitest TIntArray, TStringArray, TCharArray usw.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#7

Re: Variable Übergabeparameter

  Alt 28. Okt 2006, 14:10
Man könnte doch auch einfach die Funktion überladen, oder spricht da gerade etwas dagegen?


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

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

Re: Variable Übergabeparameter

  Alt 28. Okt 2006, 14:11
Naja da spricht dagegen das man viel zu tun hätte und das man bei jedem neuen Array Typ noch ne Funktion mehr bauen müsste...

Zitat von mkinzler:
Array of Variant
TVarArray
TVarRec
Habs mal ausprobiert...

TVarArray und TVarRec funktioniert nicht und Array of Variant würde bei Objekten nicht funktionieren
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
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#9

Re: Variable Übergabeparameter

  Alt 28. Okt 2006, 14:20
Zitat von Neutral General:
Naja da spricht dagegen das man viel zu tun hätte und das man bei jedem neuen Array Typ noch ne Funktion mehr bauen müsste...
So musst du eben innerhalb einer Funktion die Unterscheidung treffen, wo ist der Unterschied? Im Grund sind überladene Funktionen ja genau für so etwas gedacht... im Zweifelsfall implementiert man eben die Funktionalität nur in einer Funktion und in den restlichen konvertiert man in das Format dieser einen Funktion und übergibt die Werte an diese...

  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Variable Übergabeparameter

  Alt 30. Sep 2007, 17:37
So Endlich bin ich mal dazu gekommen, aber es funktioniert nicht :
Delphi-Quellcode:
procedure Insert(const AData; AArray : array of const; const AIndex : Cardinal);
var
  i: Cardinal;
begin
  if (AIndex <= Length(AArray)) then
  begin
    SetLength(AArray, Length(AArray) + 1);
    for i := High(AArray) downto AIndex + 1 do
      AArray[i] := AArray[i - 1];
    AArray[AIndex] := AData;
  end;
end;
Zitat:
Inkompatible Typen
Inkompatible Typen: 'TVarRec' und 'procedure, untyped pointer or untyped parameter'
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  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 00:08 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