AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Koordinaten als Datei speichern

Ein Thema von -lx- · begonnen am 2. Okt 2007 · letzter Beitrag vom 3. Okt 2007
Antwort Antwort
Seite 1 von 2  1 2   
-lx-

Registriert seit: 26. Sep 2005
Ort: Irgendwo in Hessen
88 Beiträge
 
Delphi 7 Personal
 
#1

Koordinaten als Datei speichern

  Alt 2. Okt 2007, 14:37
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:
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.
In din Objekten von TFeld werden die X- und Y-Koordinaten geschrieben.
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
Alex
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Koordinaten als Datei speichern

  Alt 2. Okt 2007, 14:53
Obwohl du OOP testen willst empfehle ich dir den sogenannten TPoint:
Delphi-Quellcode:
TPoint = record
  X, Y : Integer;
end;
Aber ansonsten wäre nur das Delphi spezifische Attribut "property" dort erwähnenswert.

Delphi-Quellcode:
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;
Ansonsten Delphi/DP-Hilfe

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
-lx-

Registriert seit: 26. Sep 2005
Ort: Irgendwo in Hessen
88 Beiträge
 
Delphi 7 Personal
 
#3

Re: Koordinaten als Datei speichern

  Alt 2. Okt 2007, 15:17
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 ?
Alex
  Mit Zitat antworten Zitat
jjep

Registriert seit: 19. Jun 2007
Ort: Wettingen CH
78 Beiträge
 
#4

Re: Koordinaten als Datei speichern

  Alt 2. Okt 2007, 15:29
Also ich würde das ganze mit einer String-Liste realisieren.

Delphi-Quellcode:
  
  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));
Der Nachteil ist, dass du die Datenpaare einfach wieder mit String befehlen auseinander schnippseln must.

Gruss jjep
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.763 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Koordinaten als Datei speichern

  Alt 2. Okt 2007, 15:29
Was ist denn die Pixelgröße einer Koordinate?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#6

Re: Koordinaten als Datei speichern

  Alt 2. Okt 2007, 15:37
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.763 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Koordinaten als Datei speichern

  Alt 2. Okt 2007, 15:44
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?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#8

Re: Koordinaten als Datei speichern

  Alt 2. Okt 2007, 15:59
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.763 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Koordinaten als Datei speichern

  Alt 2. Okt 2007, 16:02
Du meinst die Auflösung. Wozu sollte man die speichern wollen, die ist doch sowieso vom Ausgabemedium abhängig.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
KPBecker

Registriert seit: 1. Mär 2004
Ort: Mannheim
120 Beiträge
 
Delphi 2010 Architect
 
#10

Re: Koordinaten als Datei speichern

  Alt 2. Okt 2007, 16:12
Zitat von DeddyH:
Du meinst die Auflösung. Wozu sollte man die speichern wollen, die ist doch sowieso vom Ausgabemedium abhängig.
richtig, frag lx

KP
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 21:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf