Wie erstelle ich ein Open Array of TModifiier..

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Wie erstelle ich ein Open Array of TModifiier..

Beitrag von corpsman »

Servus,

ich habe folgende Deklaration :

Code: Alles auswählen

 
Type
  TModifiier = Record
    FromOP, ToOP: String;
  End;
 
Procedure Blub(UnaryModifierList: Array Of TModifiier);     
begin
end;
 
Nun möchte ich Blub aufrufen. Und würde gerne die Parameter im Code angeben

Code: Alles auswählen

 
          Blub(['asd', 'asd']);
        Blub([[FromOP: 'asd', ToOP: 'asd']]);
 
so gehts nicht, auch mit diversen anderen Klammern gehts nicht.

Weis einer von euch wie ich das richtig schreiben muss ?
--
Just try it

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Wie erstelle ich ein Open Array of TModifiier..

Beitrag von Socke »

corpsman hat geschrieben:Weis einer von euch wie ich das richtig schreiben muss ?
Du musst deine Werte wohl zuerst in einer Konstante ablegen:

Code: Alles auswählen

const
  am: TModifiier = (FromOp: 'Hallo'; ToOP: 'Blub');
begin
  Blub([am]);
end.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Wie erstelle ich ein Open Array of TModifiier..

Beitrag von corpsman »

Danke, sowas hatte ich befürchtet.

Ich hatte die Hoffnung es komplett ohne die Const machen zu können.
--
Just try it

wp_xyz
Beiträge: 5167
Registriert: Fr 8. Apr 2011, 09:01

Re: Wie erstelle ich ein Open Array of TModifiier..

Beitrag von wp_xyz »

Man sollte die Hoffnung nie aufgeben: Deklariere das Array in der Parameterliste als "const", dann geht's. Beispiel:

Code: Alles auswählen

 
procedure Blub(const Data: array of string);
var
  i: Integer;
  s : String;
begin
  s := '';
  for i:=0 to Length(Data)-1 do
    s := s + ' ' + Data[i];
  ShowMessage(s);
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Blub(['Hallo', 'Welt']);
end;  
 

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Wie erstelle ich ein Open Array of TModifiier..

Beitrag von corpsman »

Mit einfachen String Array's gehts auch ohne const

mein Problem ist das ich array of Record habe.
--
Just try it

Benutzeravatar
theo
Beiträge: 10899
Registriert: Mo 11. Sep 2006, 19:01

Re: Wie erstelle ich ein Open Array of TModifiier..

Beitrag von theo »

Was willst du eigentlich erreichen?
Ich verstehe das Ziel nicht so ganz. Kannst du nicht nur mit Strings arbeiten?
'eins,zwei,drei'

Benutzeravatar
corpsman
Lazarusforum e. V.
Beiträge: 1629
Registriert: Sa 28. Feb 2009, 08:54
OS, Lazarus, FPC: Linux Mint Mate, Lazarus GIT Head, FPC 3.0
CPU-Target: 64Bit
Wohnort: Stuttgart
Kontaktdaten:

Re: Wie erstelle ich ein Open Array of TModifiier..

Beitrag von corpsman »

Die Idee war, es möglichst "Leserlich" im Code zu haben.

Wenn ich es hätte aufrufen können und die Konstanten direkt als übergabeparameter geschrieben hätte, könnte man es eben einfacher lesen.

Mitlerweile konnte ich das Problem anders Lösen, so ist die Frage rein Theoretischer Natur *g*, und eigentlich ja gelöst.

Gruß

Corpsman
--
Just try it

Antworten