eigenen Record als Standartparameter.[gelöst]

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

eigenen Record als Standartparameter.[gelöst]

Beitrag von MAC »

Hallo.
Ich habe eine Menge funktionen , bei den ein Record übergeben wird. Jetzt will ich diesen Record als Standartparameter benutzen.
Ungefähr so:
statt:

Code: Alles auswählen

function Ich_funktioniere(aboolean:boolean = TRUE);
begin
end;
was einfach funktioniert und wo der Standartwert von aboolean = True ist soll es bei mir aber so aussehen , mit einem Record...

Code: Alles auswählen

TVarDec = record
  _string,
  _integer,
  _float
  :char;
  end; 
 
const
  stvardec:Tvardec =  (_string:'s';
                       _integer:'i';
                       _float:'f';);  
 
function Ich_funktioniere_nicht(avardec:TVardec =stvardec);
begin
end;
es scheitet bei der zuweisung von stvardec: "Illegal expression" - aber ich hab keine Ahnung wie ich das jetzt schreiben soll...

Danke.
Zuletzt geändert von MAC am Sa 12. Mär 2011, 22:42, insgesamt 1-mal geändert.

Code: Alles auswählen

Signatur := nil;

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: eigenen Record als Standartparameter.

Beitrag von Maik81ftl »

MAC hat geschrieben:Hallo.
Ich habe eine Menge funktionen , bei den ein Record übergeben wird. Jetzt will ich diesen Record als Standartparameter benutzen.
Ungefähr so:
statt:

Code: Alles auswählen

function Ich_funktioniere(aboolean:boolean = TRUE);
begin
end;
was einfach funktioniert und wo der Standartwert von aboolean = True ist soll es bei mir aber so aussehen , mit einem Record...

Code: Alles auswählen

TVarDec = record
  _string,
  _integer,
  _float
  :char;
  end; 
 
const
  stvardec:Tvardec = (_string:'s';
                       _integer:'i';
                       _float:'f';);  
 
function Ich_funktioniere_nicht(avardec:TVardec =stvardec);
begin
end;
es scheitet bei der zuweisung von stvardec: "Illegal expression" - aber ich hab keine Ahnung wie ich das jetzt schreiben soll...

Danke.
will jetzt wirklich nicht Gluck scheißen, aber wenn ich das Richtig verstehe, willst du ein Record, welcher mit Standart's arbeitet???

weiß nicht, ob ich mich da gerade Irre, aber soweit ich das noch im Filter habe müstet du Typen Definieren. Ähnlich wie bei der Erstellung von klassen.

ich klaube ich hab da sogar noch eine uf'n rechner...

mom i Schau mal...

Suche Läuft ............ 10 % Found.

Suche Beendet ......... 100 % Found.

schau mal, ob was da für dich dabei wäre...

Ist allergings noch nicht komplett fertig die file.

Werd mich aber auch mal mit nebenbei schlau machen...

Alternativ in den Sauren Apfel beisen und ggf. Über eine Startvariable versuchen, welche z.B. in der Creat geschrieben wird. Kann man dann ja jederzeit weiter versuchen zu verpessern.

Bin ehrlich, genau durch eben diese Sache hab ich C nie verstanden...
Dateianhänge
bauelemente.pas
Ist noch in Bearbeitung...
(12.84 KiB) 54-mal heruntergeladen
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: eigenen Record als Standartparameter.

Beitrag von MAC »

ok danke, ich schau mir das mal an...

Ich will mir einfach nur das ewige

Code: Alles auswählen

Ich_funktioniere_nicht(stvardec)
sparen
und statt dessen

Code: Alles auswählen

Ich_funktioniere_nicht
schreiben. Aber trotzdem noch die möglichkeit haben mal eine anderen Record einzusetzen...

Eigentlich könnt ich das aber auch über ne Globale Variable erledigen, denn das Programm ist so aufgebaut das es wenig sinn ergibt die Variable oft zu ändern...

Danke.

Code: Alles auswählen

Signatur := nil;

DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: eigenen Record als Standartparameter.

Beitrag von DiBo33 »

Du kannst mit überladenen Proceduren/Funktionen arbeiten

Code: Alles auswählen

type
  TVarDec = record
    _string,
    _integer,
    _float
    :char;
    end;
 
procedure AnTest(avardec: TVarDec); overload;
begin
  ShowMessage(avardec._string);
end;
 
procedure AnTest; overload;
  const
    stvardec:Tvardec =  (_string:'s';
                         _integer:'i';
                         _float:'f';);
begin
  AnTest(stvardec);
end;
 
procedure TForm1.Button1Click(Sender: TObject);
const
  vardec:Tvardec =  (_string:'x';
                       _integer:'y';
                       _float:'z';);
begin
  AnTest;
  AnTest(vardec);
end;

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: eigenen Record als Standartparameter.

Beitrag von MAC »

Stimmt - man wie dumm von mir - erst recht da ich im programm schon sowieso überladene proceduren verwende...
Danke.

Code: Alles auswählen

Signatur := nil;

Antworten