AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Property mit mehreren Eigenschaften gleichzeit??
Thema durchsuchen
Ansicht
Themen-Optionen

Property mit mehreren Eigenschaften gleichzeit??

Ein Thema von phlux · begonnen am 12. Okt 2003 · letzter Beitrag vom 13. Okt 2003
Antwort Antwort
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#1

Property mit mehreren Eigenschaften gleichzeit??

  Alt 12. Okt 2003, 20:16
Hi!
Ich möchte für meine Komponente eine Property erstellen, die es erlaubt mehrere Eigentschaften gleichzeitig zu haben (anzusehen an der TToolbar Komponente, die Property EdgeBorders kann ebLeft, ebTop, ebBottom, ebRight annehmen). Hat jemand nen Plan wie man das machen kann?

mfg phluphie
Christian "phlux" Arndt
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Property mit mehreren Eigenschaften gleichzeit??

  Alt 12. Okt 2003, 21:50
Moin Phlux,

dazu muss die Eigenschaft nur vom Typ set of TWasAuchImmer sein.
z.B.

Delphi-Quellcode:
type
  TSeite = (Oben,Unten,Links,Rechts);
  TSeiten = set of TSeite;
//...
private
  FSeite : TSeiten;
published // EDIT: public zu published korrigiert. Soll ja im OI erscheinen.
  property Seite : TSeiten read FSeite write FSeite;
//...
Jetzt hat die Eigenschaft Seite im OI die Auswahl Oben, Unten, Links und Rechts mit der jeweiligen Einstellung true/false.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#3

Re: Property mit mehreren Eigenschaften gleichzeit??

  Alt 12. Okt 2003, 22:08
Moin Christian,
Zitat von Christian Seehase:
Jetzt hat die Eigenschaft Seite im OI die Auswahl Oben, Unten, Links und Rechts mit der jeweiligen Einstellung true/false.
Ist das jetzt z.B. wie bei ViewStyle einer ListView wo man im OI so ne ComboBox zur Auswahl hat, oder eher wie bei Font, wo so ein + davor ist, dann alle Optionen gleichzeitig zu sehen sind und sich jedes auf True/False setzen lässt?
  Mit Zitat antworten Zitat
Benutzerbild von Wormid
Wormid

Registriert seit: 26. Aug 2003
Ort: Steinfurt
292 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Property mit mehreren Eigenschaften gleichzeit??

  Alt 12. Okt 2003, 22:26
Sollte ne Combobox werden... Wenn ich mich nicht irre, dann ist das "+" nur vor Unterobjekten zu finden... in deinem Beispiel eben ein Objekt der Klasse TFont.

Gruß

Wormid
Debuggers don't remove Bugs, they only show them in Slow-Motion.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Property mit mehreren Eigenschaften gleichzeit??

  Alt 13. Okt 2003, 00:24
Moin Daniel,

weder wie ViewStyle noch wie Font
Sollte es sein, wie bei ViewStyle, müsste man als Typ TSeite nehmen.
Dann liesse sich eine auswählen.

Wenn es so aussehen soll, wie bei TFont, müsste der Typ der Eigenschaft selber wieder ein Objekt mit Eigenschaften sein.
Bespiel (Fortführung von oben)

Delphi-Quellcode:
type
  TMyObject = class(TObject)
  private
    FiHeight : integer;
    FColor : TColor;
  published
    property Height : integer read FiHeight write FiHeight;
    property Color : TColor read FColor write FColor;
  end;

  // Objekt von oben
  private
    FMyObject : TMyObject;
  published
    property MyObject : TMyObject read FMyObject write FMyObject;
  end;
Jetzt würde im OI eine Eigenschaft

Code:
 + MyObject
   Height
   Color (mit ComboBox)
enthalten sein.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: Property mit mehreren Eigenschaften gleichzeit??

  Alt 13. Okt 2003, 04:06
Zitat von Christian Seehase:
Delphi-Quellcode:
type
  TSeite = (Oben,Unten,Links,Rechts);
  TSeiten = set of TSeite;
//...
private
  FSeite : TSeiten;
published // EDIT: public zu published korrigiert. Soll ja im OI erscheinen.
  property Seite : TSeiten read FSeite write FSeite;
//...
hallo christian, ich habe mich mal gefragt was "set of" bewirkt, wieso muss man ein "TSeiten"-set machen? kann man nicht direkt "TSeite" benutzen?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: Property mit mehreren Eigenschaften gleichzeit??

  Alt 13. Okt 2003, 06:01
Zitat von silent:
...ich habe mich mal gefragt was "set of" bewirkt, wieso muss man ein "TSeiten"-set machen? kann man nicht direkt "TSeite" benutzen?
Was das Set of bewirken soll, verstehe ich jetzt auch nicht. Handelt es sich um einen reinen Aufzählungstyp, so erscheint kein +. Z.B. bei so was :
Delphi-Quellcode:
type
  TLabelPosition = (lpFree, lpAbove, lpBelow, lpLeft, lpRight);
  ...
  TRealLabel = class(TCustomLabel)
  ...
    published
      property Position: TLabelPosition read FPosition write SetPosition;
  end;
Hier würde eine Property "Position" im OI erscheinen, mit einer simplen Combobox. Und bei so was:
Delphi-Quellcode:
TLabeledRealEdit = class(TEdit)
  ...
  published
    property RealLabel: TLabel read FLabel;
  end;
wäre eine neue property namens RealLabel vorhanden mit einem +, ganz einfach weil es sich nicht um einen einfachen Typ handelt, sondern um ein Objekt, das von einem abgeleitet wird, das selber eigene properties hat. Tja, das wars schon. Man vergleiche mal TColor und TFont. Vielleicht ist das auch einfacher. TColor hat kein + weil :
Delphi-Quellcode:
type
  PColor = ^TColor;
  TColor = -$7FFFFFFF-1..$7FFFFFFF;

const
  clScrollBar = TColor(COLOR_SCROLLBAR or $80000000);
  clBackground = TColor(COLOR_BACKGROUND or $80000000);
Das ist also ein Aufzählungstyp. TFont hat auch eine Eigenschaft TColor, aber zusätzlich noch die Schriftart, die Größe usw. deshalb dort ein +. Und genau deshalb ist bei der Property Color von TFont kein + mehr.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Motzi
Motzi

Registriert seit: 6. Aug 2002
Ort: Wien
598 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Property mit mehreren Eigenschaften gleichzeit??

  Alt 13. Okt 2003, 11:00
Der Unterschied zwischen einem Set und einem Enumerations-Typ ist einfach der, dass der Set mehrere Elemente des Enumerations-Typs gleichzeitig enthalten kann.
Delphi-Quellcode:
type
  TSeite = (Oben, Unten, Links, Rechts);
  TSeiten = set of TSeite;

var
  aSeite: TSeite;
  aSeiten: TSeiten;

aSeite := Oben;
aSeiten := [Oben, Unten, Rechts];
Und aus diesen Sets kann man dann auch ganz einfach wieder Elemente rausnehmen oder dazugeben:
Delphi-Quellcode:
var
  aSeiten: TSeiten;

aSeiten := [Oben, Unten, Rechts];
aSeiten := aSeiten + [Links];
aSeiten := aSeiten - [Oben, Unten];
Die andere Möglichkeit "Untereigenschaften" zu erstellen ist mit einem Nachfahren von TPersistent, aber das hab ich in diesem Thread schon mal genauer erklärt: http://www.delphipraxis.net/internal...ect.php?t=9321
Manuel Pöter
  Mit Zitat antworten Zitat
Benutzerbild von phlux
phlux

Registriert seit: 4. Nov 2002
Ort: Witten
1.335 Beiträge
 
Delphi 6 Personal
 
#9

Re: Property mit mehreren Eigenschaften gleichzeit??

  Alt 13. Okt 2003, 16:17

Merci, hat funktioniert :jump:
Christian "phlux" Arndt
  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 17:54 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