![]() |
Koordinaten als Datei speichern
Hallo.
Ein Programm liest die Zeigerkoordinaten der Maus alle 0,03 Sekunden. Dabei werden Koordinatenpaare, die doppelt vorkommen, nicht mit aufgenommen. Ich hab lange (relativ) überlegt wie ich die ganzen Koordinaten speichern soll. Da ohnehin etwas Übung in OOP nicht schaden konnte, habe ich dis TList-Klasse gewählt und eine eigene TFeld-Klasse geschrieben.
Delphi-Quellcode:
In din Objekten von TFeld werden die X- und Y-Koordinaten geschrieben.
unit Unit2;
interface type TFeld = class private X : Integer; Y : Integer; public constructor create; procedure SetzeX (x : integer); procedure SetzeY (y : integer); function GibX : Integer; function GibY : Integer; destructor destroy; end; implementation constructor TFeld.create; begin x:= 0; y:= 0; end; procedure TFeld.SetzeX (x : Integer); begin self.X:= x; end; procedure TFeld.SetzeY (y : integer); begin self.Y:= y; end; function TFeld.GibX : integer; begin result:= X; end; function TFeld.GibY : integer; begin result:= Y; end; destructor TFeld.destroy; begin self.Free; end; end. Jene Objekte werden wiederum von einem Objekt der Klasse TList verwaltet. Über diese wird auch auf den Inhalt zugegriffen. 1. Frage: Ist dies eine sinnvolle Art der Datenspeicherung? 2. Frage: Wenn 1. Frage = true, wie kann ich die ermittelten Daten in eine externe Datei schreiben und diese speichern bzw. dann auch wieder laden, ohne dass ich die ganzen Daten einzeln wieder in die Elemente eintragen muss? Also ich will quasi das gesamte TList-Objekt mit all seinen TFeld-Objekten und deren Inhalten speichern und diese wieder mit den gleichen Inhalten laden. Mit freundlichen Grüßen |
Re: Koordinaten als Datei speichern
Obwohl du OOP testen willst ;) empfehle ich dir den sogenannten TPoint:
Delphi-Quellcode:
Aber ansonsten wäre nur das Delphi spezifische Attribut "property" dort erwähnenswert.
TPoint = record
X, Y : Integer; end;
Delphi-Quellcode:
Ansonsten Delphi/DP-Hilfe ;)
TProperty = class(TObject) // Dies wird standardmäßig gesetzt, aber der besseren übersichtlichkeit halber schreibe ich immer "(TObject)" ;)
private FAttribut : TAttributTyp; procedure SetAttribut(Value : TAttributTyp); function SetAttribut : TAttributTyp; public // Wenn der Eintrag nicht im Objekt Inspektor erscheinen soll! property Attribut : TAttributTyp read FAttribut write FAttribut; property AttributProcs : TAttributTyp read GetAttribut write SetAttribut published // Wenn der Eintrag im OI erscheinen soll { aus public hier rein kopieren } end; MfG xZise |
Re: Koordinaten als Datei speichern
Hallo und Danke für deine Antwort.
Also die Klasse TPoint bietet die möglichkeit, 2dimensionale Koordinaten zu speichern. Das wäre genau das was ich bräuchte. Aber wo besteht der Unterschied zu meiner OOP Lösung und zu der Vorgefertigten ? Wenn ich zum Beisiel noch die Pixelgröße und die Farbe der jeweiligen Koordinate speichern will, ist TPoint ungeeignet. Oder bietet TPoint auch die Möglichkeit beliebig viele Elemente zu beherbergen ? Worauf bezieht sich dein zweiter Quelltext? Auf das Problem der Speicherung oder auf TPoint ? |
Re: Koordinaten als Datei speichern
Also ich würde das ganze mit einer String-Liste realisieren.
Delphi-Quellcode:
Der Nachteil ist, dass du die Datenpaare einfach wieder mit String befehlen auseinander schnippseln must.Liste: TStrings; //du kannst die Liste z.B. als TXT-Datei speichern Liste.SaveToFile('c:\meineKoordinaten.txt'); //und wieder öffnen Liste.LoadFromFile('c:\meineKoordinaten.txt'); //Die Datenpaare kannst du mit ".add" einfügen und die verschiedenen Parameter z.B. mit einem Strichpunkt trennen Liste.Add(IntToStr(x)+';'+IntToStr(y)); Gruss jjep |
Re: Koordinaten als Datei speichern
Was ist denn die Pixelgröße einer Koordinate? :gruebel:
|
Re: Koordinaten als Datei speichern
Hallo, Deddy,
eine Koordinate (besser: ein Koordinatenpaar oder -tripel) kennzeichnet einen Punkt in einem Koordinatensystem und hat mit einer Pixelgröße zunächst einmal gar nichts zu tun. Wenn ein Punkt z.B. auf einem Bildschirm angesprochen wird, hat der dann eine konkrete Pixelgröße. KP |
Re: Koordinaten als Datei speichern
Was ich meinte, ist, dass eine (Screen-)Koordinate einen genau definierten Punkt (und somit ein Pixel) auf dem Bildschirm definiert. Und ein Pixel ist immer ein Pixel, da kenn ich keine Größenagaben. Oder denke ich falsch?
|
Re: Koordinaten als Datei speichern
Hallo, Deddy,
Was ich meinte, ist, dass eine (Screen-)Koordinate einen genau definierten Punkt (und somit ein Pixel) auf dem Bildschirm definiert. --> richtig Und ein Pixel ist immer ein Pixel, --> richtig da kenn ich keine Größenagaben. --> Bei einem konkreten Gerät hat ein Pixel schon eine definierte Größe (aus Pixel per inch z.B. zu errechnen) Oder denke ich falsch? --> richtig |
Re: Koordinaten als Datei speichern
Du meinst die Auflösung. Wozu sollte man die speichern wollen, die ist doch sowieso vom Ausgabemedium abhängig.
|
Re: Koordinaten als Datei speichern
Zitat:
KP |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz