AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Properties
Thema durchsuchen
Ansicht
Themen-Optionen

Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Properties

Ein Thema von Bjoerk · begonnen am 29. Jul 2014 · letzter Beitrag vom 30. Jul 2014
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#1

AW: Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Propertie

  Alt 29. Jul 2014, 10:50
Du kannst doch nach meinem Dafürhalten nur die Werte tatsächlich anzeigen, die bei allen Objekten gleich sind. Sind sie das nicht, muss das Feld in Deinem OI eben leer bleiben. Trägt der Benutzer nun einen Wert ein, wirst Du wohl mit einer Schleife über die Objekte gehen und diesen Wert zuweisen müssen.
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
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Propertie

  Alt 29. Jul 2014, 11:27
Das krieg ich nicht hin? Ernsthaft.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#3

AW: Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Propertie

  Alt 29. Jul 2014, 12:25
Aus der Hüfte geschossen: (ich weiß gerade nicht aus dem Kopf, ob es eine solche Struktur oder Klasse schon gibt, notfalls erstellt man sie eben selbst) wir brauchen den Property-Namen, dessen Typ und dessen Wert in einem Record/einer Klasse. Davon erstellen wir eine Liste und gehen nun die markierten Objekte durch. Das erste Objekt befüllt nun diese Liste, bei jedem weiteren wird geprüft:
- Property aus Liste (mit identischem Typ) vorhanden? Nein -> aus Liste löschen
- Wert der Property entspricht dem aus der Liste? Nein -> Wert löschen

Es wird also ggf. lediglich die Liste ausgedünnt, neue Elemente kommen nicht hinzu. Zum Schluss werden im "OI" nur noch die verbliebenen Properties angezeigt und auch nur die Werte, die "überlebt" haben. Nach Änderung durch den Benutzer wird der Wert wieder in einer Schleife der entsprechenden Property der Objekte zugewiesen.
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
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Propertie

  Alt 29. Jul 2014, 13:59
Weiß nicht recht? Wer soll diese Klasse in einem Jahr nochmal verstehen, erweitern, ergänzen, ändern? Kann man vielleicht mit einer IniFile als Schnittstelle was machen? Ich hab echt keine Idee mehr..
Delphi-Quellcode:
[Prop1]
Master = Object1
Slave1 = Object2
Slave2 = Object100
[Prop2]
..
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#5

AW: Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Propertie

  Alt 29. Jul 2014, 14:11
Mir ist ehrlich gesagt nicht klar, wie da nun eine IniFile weiterhelfen soll. Oder aber ich habe das Problem gründlich missverstanden.
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
Jens01

Registriert seit: 14. Apr 2009
675 Beiträge
 
#6

AW: Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Propertie

  Alt 29. Jul 2014, 14:53
Hi,
etwas ähnliches, aber einfacher, habe ich mal mit einer Holzliste gemacht. Da werden Höhe, Breite, Länge usw in jeweiligen Edits angezeigt. Wenn alle Werte der markierten Hölzer -zB die Breite- gleich ist, dann wird der Wert im Edit angezeigt, wenn die Werte unterschiedlich sind, dann ist das Edit-Feld leer. Wenn ins Edit etwas eingetragen wird, dann werden alle markierten Hölzer auf den Wert geändert.
Meinst Du sowas? Ich müßte mal gucken, wie ichs gemacht habe. War aber irgendwas mit Schleifen.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Propertie

  Alt 29. Jul 2014, 14:55
Da du ja die Eigenschaften von mehreren unterschiedliche Objekte zusammenfassen möchtest, brauchst du zunächst etwas, was du vergleichen kannst um gleiche Eigenschaften zusammenzufassen.

Oder anders ausgedrückt, wir benötigen eine Klasse, die eine Eigenschaft darstellen kann (aber nur die Eigenschaft selber, ohne den Wert)
Delphi-Quellcode:
TProperty = class
public
  constructor Create( const PropName : string; PropType : integer );
  function Equals( Obj : TObject ) : Boolean; override;
  function SameValueAs( Other : TProperty ) : Boolean;
published
  property PropName : string read FPropName;
  property PropType : integer read FPropType;
end;

function TProperty.Equals( Obj : TObject ) : Boolean;
begin
  Result := (Self = Obj) or Assigned( Obj ) and ( Self.ClassType = Obj.ClassType ) and SameValueAs( Obj as TProperty );
end;

function TProperty.SameValueAs( Other : Tproperty ) : Boolean;
begin
  Result := (Self = Other) or Assigned( Other ) and SameText( Self.FPropName, Other.FPropName ) and (Self.FPropType = Other.FPropType );
end;
Die nächste Klasse, wäre dann die, wo man auf den Eigenschaftswert zugreifen kann
Delphi-Quellcode:
TPropertyValue = class
public
  constructor Create( Instance : TObject; const PropName : string );
  // True, wenn gleiche Eigenschaft und gleicher Wert
  function Equals( Obj : TObject ) : Boolean; override;
  function SameValueAs( Other : TPropertyValue ) : Boolean;
published
  property Prop : TProperty read FProp;
  property ValueStr : string read GetValueStr write SetValueStr;
end;
Um jetzt ein ganze Instanz zu verwalten benötigen wir eine Klasse, die eine Liste mit den Property-Werten anbietet:
Delphi-Quellcode:
TObjectProperties = class abstract
public
  property Count : Integer read GetCount;
  property PropValue[Index : Integer] : TPropertyValue read GetPropValue;
end;
und diese Klasse benötigen wir für eine Instanz
Delphi-Quellcode:
TSingleObjectProperties = class( TObjectProperties )
public
  constructor Create( Instance : TObject );
end;
und für mehrere
Delphi-Quellcode:
TMultiObjectProperties = class( TObjectProperties )
public
  procedure Add( Object : TSingleObjectProperties );
  procedure Remove( Object : TSingleObjectProperties );
end;
Das ist jetzt alles etwas schematisch, aber das Prinzip sollte jetzt klar geworden sein.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.667 Beiträge
 
Delphi 12 Athens
 
#8

AW: Liste von vielen unterschiedlichen Grafikobjekten mit unterschiedlichen Propertie

  Alt 29. Jul 2014, 15:01
Das ist ja ziemlich genau das, was ich gesagt hatte, in Code gegossen. Nur ist sich Bjoerk nicht sicher, ob er später noch versteht, was er da gemacht hat
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
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 04:20 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-2025 by Thomas Breitkreuz