Autor Beitrag
Thomas_1110
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

Win Vista
Delpi 7 Personal
BeitragVerfasst: So 15.06.03 10:44 
Hallo Forum
1) Gibts eine Möglichkeit eine unbestimmte Anzahl an Parametern einer Prozedur Funktion zu übergeben (die Anzahl der Parameter sollen zur Laufzeit bestimmt werden). Habs irgendwie versucht über ein offenes Array zu lösen, will aber nicht so recht.
2) lassen sich die Parameter in der Prozedur Funktion auch nummerisch ansprechen (Param1, Param2, usw.)?
3) kann man den Namen einer Variable auch aus einem Literal herholen(zb. 'Wert'+'1' ergibt die Variable Wert1.
4) wie kann ich die Größe eines Arrays zur Laufzeit bestimmen? Ja ich weiß, da gibts das schöne Tutorial von Peter Lustig, ich nehm mal an daß wären dann die dynamischen Arrays, aber bei Delphie 3 Pro. wills nicht so recht funktionieren.

Ich hab früher in Profan programmiert und da war 1) , 2) und 4)eigentlich sehr einfach, 3) in der aktuellen Version nicht möglich.

Noch ganz nebenbei möcht ich bemerken, Borland hat mit Delphi eine sehr leistungsfähige Programmiersprache geschaffen, aber mit der Hilfe Datei kanns nicht gerade berühmt werden, nicht in der 3er Version und auch nicht in der 7er die noch katastrophaler ist (deren Trial Version ich mal installiert hatte).
Vielleicht fällt wem was dazu ein wieso ich die Objekt Pascal Hilfe nicht aus der Delphi IDE aufrufen kann (dieser Eintrag wurde nicht gefunden oder so ähnlich) aber aus dem Startmenü kann ichs.

Bin dankbar für jede Hilfe
Gruß Thomas
MathiasH
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: So 15.06.03 11:34 
unbestimmte anzahl an parametern wiederspricht der strengen syntax von Delphi
ich weis nicht genau, was profan ist, aber das mit param1,2,3... erinnert eher an eine skriptsprache, als an delphi.

um welche art von daten handelt es sich denn?
ich würde sagen, das sinvollste wäre ein array zu nehmen, das mit dem resizen ist zwar nervig und oftmals arbeit, aber doch recht praktisch..

IO-sys/MathiasH

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: So 15.06.03 11:40 
Thomas_1110 hat folgendes geschrieben:
1) Gibts eine Möglichkeit eine unbestimmte Anzahl an Parametern einer Prozedur Funktion zu übergeben

Offene Array Parameter.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure Test(const A: array of string);
var Index: Integer;
begin
  for Index := 0 to High(A) do
    if A[Index] = 'Hallo' then ShowMessage('Gefunden');
end;

Wenn du unterschiedliche Typen haben willst, dann lese dir in der OnlineHilfe unter dem Index "Variante offene Array Parameter" den Text durch.


Zitat:
2) lassen sich die Parameter in der Prozedur Funktion auch nummerisch ansprechen (Param1, Param2, usw.)?

Nur wenn du einen offenen Array Parameter benutzt. Andere Parameter kann man nur über den Namen ansprechen.


Zitat:
3) kann man den Namen einer Variable auch aus einem Literal herholen(zb. 'Wert'+'1' ergibt die Variable Wert1.

Delphi ist kein Interpreter. Die Namen werden im lauffährigen Programm durch Adressen ersetzt. Die Variablennamen verschwinden gänzlich aus dem Maschinencode. Wenn du also sowas haben willst, musst du selbst dafür sorgen.


Zitat:
4) wie kann ich die Größe eines Arrays zur Laufzeit bestimmen?

High(ArrayVariable) liefert die den letzten Index
Low(ArrayVariable) liefert dir den ersten Index
Length(Arrayvariable) liefert dir die Anzahl der Elemente im Array


Zitat:
aber mit der Hilfe Datei kanns nicht gerade berühmt werden, nicht in der 3er Version und auch nicht in der 7er die noch katastrophaler ist

Dem muss ich widersprechen. Die Hilfe enthält neben den Beschreibungen auch Hintergrundwissen und Beispiele.

_________________
Ist Zeit wirklich Geld?
Thomas_1110 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

Win Vista
Delpi 7 Personal
BeitragVerfasst: So 15.06.03 12:19 
Hallo
Danke mal für die Antworten.
MathiasH: Du hast Recht Profan ist so etwas wie eine Skriptsprache in Anlehnung an Basic. Na, ist aber in Delphi geschrieben. Bin mir nicht ganz sicher aber ich denk in Version 3.
Daß mit dem resizen funkt nicht in D3, daß wären dann die dynamischen Arrays.
Um welche Daten es sich handelt?.
Versuch mich noch irgendwie in Delphi einzuarbeiten. Zu Lernzwecken schreib ich mal hirvon und davon. Jetzt momentan will ich von Mp3's die Id3 Tags auslesen und in einem Lv anzeigen. Mich störts irgendwie, daß ich nicht zur Laufzeit bestimmen kann was in meinem Lv angezeigt werden soll und was nicht (nehm ich den Id3v1 oder Id3v2 und welche Daten sollen angezeigt werden)
Zu AndyB:
Zitat:
Wenn du unterschiedliche Typen haben willst, dann lese dir in der OnlineHilfe unter dem Index "Variante offene Array Parameter" den Text durch.

Hab ich schon. In meiner Hilfe gehts aber nur bis zum Array of char. Und das ist auch das einzige Beispiel in dem gezeigt wird wie dann der Aufruf der Prozedur aussieht. So wie in deinem Beispiel stell ich mir auch das ganze vor nur wie sieht der Prozeduraufruf aus?
Zitat:
High(ArrayVariable) liefert die den letzten Index
Low(ArrayVariable) liefert dir den ersten Index
Length(Arrayvariable) liefert dir die Anzahl der Elemente im Array

Bestimmen war vielleicht nicht ein passender Ausdruck, eher festlegen.
Zitat:
Dem muss ich widersprechen. Die Hilfe enthält neben den Beschreibungen auch Hintergrundwissen und Beispiele.

Hintergrundwissen? Die Krankheit hat sich Borland wohl von der W32.hlp (Api Hilfe) abgeschaut. Stehen da doch 2 Zeilen auf einer Seite. Und solche Seiten sind keine Seltenheit.
Es mag sicher viel Wissen da drinn stecken. 1. wenn man weiß wo man sucht und 2. ein bischen mehr könnts schon sein.
Ich hab mir einige Bücher zu Delphi besorgt, dort hol ich mir die meisten Infos, hier im Forum lernt man auch sehr viel. Zugegeben auch aus der Delphi Hilfe.
Gruß Thomas
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: So 15.06.03 14:35 
Thomas_1110 hat folgendes geschrieben:
So wie in deinem Beispiel stell ich mir auch das ganze vor nur wie sieht der Prozeduraufruf aus?


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var a: array[0..10of string;
a[0] := '...';
a[1] := '...';
...

Test(a);

Zudem geht es auch so:
ausblenden Delphi-Quelltext
1:
Test( ['Nummer1'' Nummer2''Nummer3'] );					

_________________
Ist Zeit wirklich Geld?
Thomas_1110 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22

Win Vista
Delpi 7 Personal
BeitragVerfasst: So 15.06.03 14:56 
Hallo
Zitat:
Zudem geht es auch so:
Sourcecode:
Test( ['Nummer1', ' Nummer2', 'Nummer3'] );

Danke daß hat mir sehr geholfen, so funktionierts.
Gruß Thomas