AGB  ·  Datenschutz  ·  Impressum  







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

Wertezuweisung Record ohne Punktnotation

Ein Thema von asusbob · begonnen am 5. Okt 2008 · letzter Beitrag vom 5. Okt 2008
Antwort Antwort
asusbob

Registriert seit: 23. Apr 2006
46 Beiträge
 
#1

Wertezuweisung Record ohne Punktnotation

  Alt 5. Okt 2008, 15:06
Huhu,

ich hab wahrscheinlich ne recht simple frage:
ich hab nen record:
Delphi-Quellcode:
myrec = record
          x1,x2,x3,x4 : currency;
        end;
und ich möchte dem werte zuweisen ohne diese Punktnotation also sowas wie:
Delphi-Quellcode:
[...]
var x : myrec;
begin
x := (1.2,2.3,3.4,4.5);
[...]
gibbet da ne Möglichkeit, ich hab leider noch nix gefunden.

Viele Grüße =)
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Wertezuweisung Record ohne Punktnotation

  Alt 5. Okt 2008, 16:01
Du könntest Dir eine Funktion / Prozedur dafür schreiben.

Delphi-Quellcode:
procedure FillRecord(var R: TMyRec; A1, A2, A3, A4: Currency);
begin
  with R do
  begin
    X1 := A1;
    X2 := A2;
    X3 := A3;
    X4 := A4;
  end;
end;
der Aufruf wäre dann:
Delphi-Quellcode:
var
  x: TMyRec;
begin
  FillRecord(x, 1.2, 2.3, 3.4, 4.5);
end;
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
asusbob

Registriert seit: 23. Apr 2006
46 Beiträge
 
#3

Re: Wertezuweisung Record ohne Punktnotation

  Alt 5. Okt 2008, 17:07
Jaaa, das wäre auch ne Alternative... aber eine vorgefertigte Methode gibts da nicht?

Danke schonmal
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Wertezuweisung Record ohne Punktnotation

  Alt 5. Okt 2008, 17:10
Falls du wirklich einen konstanten Record zuweisen willst, kannst du eine typisierte Konstante deklarieren und dann diese zuweisen. Das sähe dann so aus:
const MyRecordConst: TMyRecord = (a: 1; b: 5; c: 4.5);
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Wertezuweisung Record ohne Punktnotation

  Alt 5. Okt 2008, 17:17
Ich glaube ab Delphi 2006 gehen auch solche schmucken Sachen:
Delphi-Quellcode:
type TMyRec = record
  x1,x2,x3,x4 : Currency;
  constructor Create(v1, v2, v3, v4: Currency);
  //oder:
  procedure SetValue(v1, v2, v3, v4: Currency);
end;
...
procedure TMyRec.Create(v1, v2, v3, v4: Currency);
begin
  x1 := v1;
  x2 := v2;
  x3 := v3;
  x4 := v4;
end;

procedure TMyRec.SetValue(v1, v2, v3, v4: Currency);
begin
  x1 := v1;
  x2 := v2;
  x3 := v3;
  x4 := v4;
end;
...
Und benutzt wird es dann so:
Delphi-Quellcode:
var x: TMyRec;
begin
  x := TMyRec.Create(1.2, 2.3, 3.4, 4.5);
  x.SetValue(5.2, 6.3, 7.4, 8.5);
end;
Jan
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Wertezuweisung Record ohne Punktnotation

  Alt 5. Okt 2008, 17:54
Hallo,

Delphi-Quellcode:
FillRecord(x, 1.2, 2.3, 3.4, 4.5);
  
x := TMyRec.Create(1.2, 2.3, 3.4, 4.5);
x.SetValue(5.2, 6.3, 7.4, 8.5);
Wer kann mir in einem Jahr noch sagen, welcher Wert welchem Recordfeld zugewiesen wird?

Man sollte bei aller Liebe zu kompaktem Code die Lesbarkeit nicht aus den Augen verlieren.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Wertezuweisung Record ohne Punktnotation

  Alt 5. Okt 2008, 19:39
Zitat von Hawkeye219:
Wer kann mir in einem Jahr noch sagen, welcher Wert welchem Recordfeld zugewiesen wird?

Man sollte bei aller Liebe zu kompaktem Code die Lesbarkeit nicht aus den Augen verlieren.
Lesbarkeit ist sehr wichtig, das stimmt schon, aber in dem Beispiel handelt es sich ja um einheitliche Zahlenwerte, die dazu noch als x1 bis x4 durchnummeriert sind. Eine logische Reihenfolge ist damit also gegeben (wie z.B. auch bei Rect etc.). Hat man jetzt sogar noch viele derartige Zuweisungen im Code macht es das ganze sogar wesentlich übersichtlicher.

P.S.: Das ganze unter der Vorraussetzung, dass man sich konsequent an einen Weg hält und nicht alles mischt.
Jan
  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 05:59 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