AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Record zu Class umschreiben (Getter/Setter)

Record zu Class umschreiben (Getter/Setter)

Ein Thema von Glados · begonnen am 12. Jul 2017 · letzter Beitrag vom 12. Jul 2017
Antwort Antwort
Seite 2 von 4     12 34   
EWeiss
(Gast)

n/a Beiträge
 
#11

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 17:35
Zitat:
Du kannst auf properties in records verwenden.
Ich denke so wie herausgelesen weis er das alles..
Er möchte so wenig ändern wie möglich, darum geht es ihm.
Zitat:
OHNE 1000 Stellen im Code ändern zu müssen
Nur wie soll das gehen

gruss
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 17:38
Zitat:
Nur wie soll das gehen
genau deshalb..... Properties in den Record, dann muss er nur die Record Definition anpassen.....
Fritz Westermann
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#13

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 17:40
Ist es irgendwie auch möglich den TMultiReadExclusiveWriteSynchronizer den ich nutze in diese Unit, welche dann mein Record enthält, einzubinden?
Ich möchte in diese Unit nämlich nur ungern andere Units per uses einbinden.

Frage: wenn ich dennoch eine Class daraus mache mit Propertys und allem drum und dran - dann könnte ich den TMultiReadExclusiveWriteSynchronizer doch im überschriebenen Create() erstellen und meine Klasseninstanz im FormCreate meiner Hauptform, sehe ich das richtig? Und ändern müsste ich auch nicht viel da wo ich meine Variablen abrufe.
(bzw im Initialization meiner Globals-Unit)

Geändert von Glados (12. Jul 2017 um 18:14 Uhr)
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#14

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 18:12
Im Prinzip kann man records ja fast wie Klassen verwenden (mit ein paar Einschränkungen):
http://docwiki.embarcadero.com/RADSt...8erweiterte.29

Da könntest du deine Variablen einfach in Setter/Getter verpacken, mit den jeweiligen Aufrufen drin. Ob das dann wirklich schön ist, sei mal dahin gestellt...
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#15

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 18:14
Edit
Ok ich habs. Habe Fi: Integer in Private vergessen.
Ich denke ich werde Class verwenden und dann doch hier und da ein wenig umschreiben.
Ich mache es lieber einmal richtig, als dass ich später 100 Fehler drin habe.


Das hier funktioniert jedenfalls nicht

Delphi-Quellcode:
unit classTest_;

interface

uses System.SysUtils;

type
 TTest_ = class
 private
  Fi: Integer; // VERGESSEN!
  Test: TMultiReadExclusiveWriteSynchronizer;
  function Geti: Integer;
  procedure Seti(const Value: Integer);
 public
  constructor Create; overload;
  destructor Destroy; override;

  property i: Integer read Geti write Seti;
 end;

implementation

constructor TTest_.Create;
begin
 Test := TMultiReadExclusiveWriteSynchronizer.Create;
end;

destructor TTest_.Destroy;
begin
 Test.Free;

 inherited;
end;

function TTest_.Geti: Integer;
begin
 Test.BeginRead;
 Result := Fi; // Fi, nicht i
 Test.EndRead;
end;

procedure TTest_.Seti(const Value: Integer);
begin
 Test.BeginWrite;
 Fi := Value; // Fi, nicht i
 Test.EndWrite;
end;

end.
Delphi-Quellcode:
var
 TestInstance: TTest_;
begin
 TestInstance := TTest_.Create;

 TestInstance.i := 123;
 ShowMessage(TestInstance.i.ToString);

 TestInstance.Free;

Geändert von Glados (12. Jul 2017 um 18:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.017 Beiträge
 
Delphi 12 Athens
 
#16

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 19:18
Zitat:
Du kannst auf properties in records verwenden.
Ich denke so wie herausgelesen weis er das alles..
Er möchte so wenig ändern wie möglich, darum geht es ihm.
Zitat:
OHNE 1000 Stellen im Code ändern zu müssen
Nur wie soll das gehen

gruss
Bei Record belassen, die Felder umbenennen und die Property so wie das Feld nennen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#17

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 19:22
Hat ein Record hier denn vernünftige Vorteile gegenüber einer Klasse?
Dass ich eine Klasseninstanz erstellen und wiederfreigeben muss, damit habe ich kein Problem.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 19:23
Du musst ein privates Feld fI als Datenspeicher nutzen.
Sorry, ich habe die Änderung übersehen...

Eine Klasse finde ich übersichtlicher, da die Speicherverwaltung m.E. einfacher ist.
Aber das ist vermutlich einfach Geschmacksache (sofern man keine Vererbung oder Interfaces benötigt).
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)

Geändert von stahli (12. Jul 2017 um 19:27 Uhr)
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#19

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 19:26
Zitat:
Du musst ein privates Feld fI als Datenspeicher nutzen.
Das ist doch schon lange erledigt Habe sogar noch Edit an meinen Beitrag geschrieben
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.336 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Record zu Class umschreiben (Getter/Setter)

  Alt 12. Jul 2017, 19:29
Ja, die Korrektur ist doch auch schon lange erledigt...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23: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