AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Verschiedene Arrays als Parameter unterscheiden
Thema durchsuchen
Ansicht
Themen-Optionen

Verschiedene Arrays als Parameter unterscheiden

Ein Thema von dizzy · begonnen am 12. Okt 2004 · letzter Beitrag vom 13. Okt 2004
Antwort Antwort
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#1

Verschiedene Arrays als Parameter unterscheiden

  Alt 12. Okt 2004, 17:12
Mahlzeit miteinander.
Folgender Code vorweg:
Delphi-Quellcode:
type
  TFFTData512 = array[0..512] of Double;
  TFFTData1024 = array[0..1024] of Double;
  TFFTData2048 = array[0..2048] of Double;
  TFFTData4096 = array[0..4096] of Double;
  TWaveData512 = array[0..512] of SmallInt;
  TWaveData1024 = array[0..1024] of SmallInt;
  TWaveData2048 = array[0..2048] of SmallInt;
  TWaveData4096 = array[0..4096] of SmallInt;
Diese Array-Typen hab ich, und möchte sie als Übergabeparameter an eine Prozedur haben. So weit kein Problem:
procedure getData(out data); Aaaaber: Ich möchte jetzt innerhalb der Prozedur wissen, mit welchem der o.g. Typen ich es nun zu tun habe! Der is-Operator klappt nicht, da es sich ja nicht um Objekte handelt, und auch "TypeOf()" verweigert aus selbigem Grunde den Dienst.

Wüsste da jemand wie ich an diese Infos heran komme?

Danke schomma!
Fabian
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Verschiedene Arrays als Parameter unterscheiden

  Alt 12. Okt 2004, 20:24
Moin,

intern brauchst du zwei Prozeduren, nach aussen sieht es dann aber so aus, als ob du nur eine Prozedur hast...

Delphi-Quellcode:
type
  TFFTData512 = array[0..512] of Double;
  TFFTData1024 = array[0..1024] of Double;
  TFFTData2048 = array[0..2048] of Double;
  TFFTData4096 = array[0..4096] of Double;
  TWaveData512 = array[0..512] of SmallInt;
  TWaveData1024 = array[0..1024] of SmallInt;
  TWaveData2048 = array[0..2048] of SmallInt;
  TWaveData4096 = array[0..4096] of SmallInt;
  :
  :
  private
    procedure getData(data:array of double); overload;
    procedure getData(data:array of SmallInt); overload;
  public
  :
  :
procedure TForm.getData(data:array of double);
begin
  case sizeof(data) of
    sizeof(TFFTData512): showmessage('TFFTData512');
    sizeof(TFFTData1024): showmessage('TFFTData1024');
    sizeof(TFFTData2048): showmessage('TFFTData2048');
    sizeof(TFFTData4096): showmessage('TFFTData4096');
  end;
end;

procedure TForm.getData(data: array of SmallInt);
begin
  case sizeof(data) of
    sizeof(TWaveData512): showmessage('TWaveData512');
    sizeof(TWaveData1024): showmessage('TWaveData1024');
    sizeof(TWaveData2048): showmessage('TWaveData2048');
    sizeof(TWaveData4096): showmessage('TWaveData4096');
  end;
end;
und der Aufruf...

Delphi-Quellcode:
procedure TForm.ButtonClick(Sender: TObject);
var a1:TFFTData512;
    b1:TFFTData1024;
    c1:TFFTData2048;
    d1:TFFTData4096;
    a2:TWaveData512;
    b2:TWaveData1024;
    c2:TWaveData2048;
    d2:TWaveData4096;
begin
  getData(a1);
  getData(b1);
  getData(c1);
  getData(d1);
  getData(a2);
  getData(b2);
  getData(c2);
  getData(d2);
end;
vielleicht hilft es dir ja...

MfG
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Verschiedene Arrays als Parameter unterscheiden

  Alt 13. Okt 2004, 00:11
Bist'n Schatz!

Da hätt' man drauf kommen können...


Dankee!
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Verschiedene Arrays als Parameter unterscheiden

  Alt 13. Okt 2004, 10:01
Moin!

Ich bezweifle das SizeOf(Data) funktioniert, da er dort IMHO nur eine 4 zurück liefern sollte bei allen 4 Typen. Daher könnte man es dort doch einfach mit High() oder Length() unterscheiden anhand der unterschiedlichen Array Längen (wie in dem Beispiel auch).

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Verschiedene Arrays als Parameter unterscheiden

  Alt 13. Okt 2004, 15:18
Japp, mit High() ists richtig. Hatte ich auch so bei mir eingebaut. SizeOf() liefert natürlich immer nur 4, da es ja nur'n Pointer ist.

Aber gut dass du das nochmal ansprichst, falls jemand für selbiges Problem eine Lösung sucht!
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:20 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