AGB  ·  Datenschutz  ·  Impressum  







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

Records

Ein Thema von mumu · begonnen am 7. Mär 2005 · letzter Beitrag vom 7. Mär 2005
Antwort Antwort
Seite 1 von 2  1 2      
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#1

Records

  Alt 7. Mär 2005, 13:34
Delphi-Quellcode:
type
  PData = ^TData;
  TData = record
    test1 : string;
    test2 : integer;
  end;
wie kann ich ein record mit bestimmten werden vorbelegen? ist das möglich?
folgendes funktioniert ja nicht...
Delphi-Quellcode:
type
  PData = ^TData;
  TData = record
    test1 : string='Test';
    test2 : integer=10;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Records

  Alt 7. Mär 2005, 13:38
Eine Variable kannst du mit bestimmten Werten vorlegen. So in etwa:
Delphi-Quellcode:
type
  PData = ^TData;
  TData = record
    test1 : string;
    test2 : integer;
  end;

var MyVar : TData = (test1: 'Halo';test2:5);
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
opfer.der.genauigkeit

Registriert seit: 14. Feb 2005
66 Beiträge
 
#3

Re: Records

  Alt 7. Mär 2005, 13:39
Oder so..

Delphi-Quellcode:
type
  PData = ^TData;
  TData = record
    test1 : string;
    test2 : integer;
  end;
Delphi-Quellcode:
var
  pDataRec: PData;
begin
  New(pDataRec); // oder GetMem(pDataRec, SizeOf(PData));
  
  pDataRec^.test1 := 'Hallo'; // ^ dient zur Abwärtskompatibilität wäre auch pDataRec.test1 möglich seit D5 oder so..
  pDataRec^.text2 := 1;

  Dispose(pDataRec); // oder FreeMem(pDataRec, SizeOf(PData));
end;
Stellen Sie sich bitte Zirkusmusik vor.
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: Records

  Alt 7. Mär 2005, 13:41
Zitat:
// ^ dient zur Abwärtskompatibilität wäre auch pDataRec.test1 möglich seit D5 oder so..
Das ist aber neu für mich.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
opfer.der.genauigkeit

Registriert seit: 14. Feb 2005
66 Beiträge
 
#5

Re: Records

  Alt 7. Mär 2005, 13:49
Zitat:
var MyVar : TData = (test1: 'Halo';test2:5);
Diese Schreibweise hab ich auch grad erst von dir gelernt.

Aber das mit dem ^ gilt bei Records auf jeden Fall.
Wo es noch gilt weiß ich nicht mehr.. der Compiler erkennt das in bestimmten Fällen.
Bin zumindest der Meinung gelesen zu haben, daß das früher nicht möglich war und
heute nur noch der Abwärtskompatibilität dient.

Vielleicht hat das jemand genauer im Kopf und möge sein Wissen mal zum Besten geben.
Stellen Sie sich bitte Zirkusmusik vor.
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#6

Re: Records

  Alt 7. Mär 2005, 13:50
Zitat von sniper_w:
Zitat:
// ^ dient zur Abwärtskompatibilität wäre auch pDataRec.test1 möglich seit D5 oder so..
Das ist aber neu für mich.
Delphi erkennt automatisch, was du eigentlich willst. Sonst müsstest du ja theoretisch auch bei dynamisch instantiierten Objekten ständig dereferenzieren...
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Records

  Alt 7. Mär 2005, 13:56
Zitat von mumu:
wie kann ich ein record mit bestimmten werden vorbelegen? ist das möglich?
folgendes funktioniert ja nicht...
Delphi-Quellcode:
type
  PData = ^TData;
  TData = record
    test1 : string='Test';
    test2 : integer=10;
  end;
Das kann auch nicht funktionerern, weil hier nur der Datentyp deklariert wird (Schlüsselwort type). Werte kann man aber nur an Variablen zuweisen.
var sowas: TData =( test1: 'Text'; test2: 12345); MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
opfer.der.genauigkeit

Registriert seit: 14. Feb 2005
66 Beiträge
 
#8

Re: Records

  Alt 7. Mär 2005, 14:00
Zitat von Oxmyx:
Delphi erkennt automatisch, was du eigentlich willst. Sonst müsstest du ja theoretisch auch bei dynamisch instantiierten Objekten ständig dereferenzieren...
Jap, das ist korrekt.
IMHO gilt das wie gesagt bei Records. Früher wurde wohl immer so auf die Elemente derefferenziert, wenn das nicht der Fall
ist, dann habe ich mal wieder was dazu gelernt.

//Edit: Pointer Derefferenzierung
Stellen Sie sich bitte Zirkusmusik vor.
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#9

Re: Records

  Alt 7. Mär 2005, 17:22
var sowas: TData =( test1: 'Text'; test2: 12345);

ok, also das funktioniert zwar, aber nur für globale variablen, gibt es auch ne möglichkeit für lokale?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Records

  Alt 7. Mär 2005, 17:28
Zitat von mumu:
gibt es auch ne möglichkeit für lokale?
Nein lokale Variablen können nicht vorbelegt werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:45 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