Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Komponente mit TCollection, Item-Duplikate vermeiden (https://www.delphipraxis.net/179932-komponente-mit-tcollection-item-duplikate-vermeiden.html)

Nic2012 11. Apr 2014 15:43

Komponente mit TCollection, Item-Duplikate vermeiden
 
Hallo,
ich habe auf Basis dieses Entwurfshttp://delphi.about.com/library/bluc/text/uc083101d.htm eine Komponente entwickelt. Ein published Property ist vom Typ TCollection. Zur Designzeit lassen sich prima Items hinzufügen oder entfernen. Die Items Klasse hat ein eindeutiges UID-Prop über das ich Duplikate aber vermeiden möchte.

Wie müsste man die Komponente so anpassen, dass schon zur Designzeit anhand der Überprüfung über die UID-Prop keine Duplikate hinzugefügt werden können ?

Verwende nur D7pro.

Gruß,
Nic

DeddyH 11. Apr 2014 15:51

AW: Komponente mit TCollection, Item-Duplikate vermeiden
 
Wenn Du Dich an das Tut gehalten hast, sind die Methoden Add und Insert der Collection ja bereits verdeckt (geht leider nicht anders, da in Vorfahrkasse weder virtuell noch dynamisch deklariert). Hier könntest Du doch eine Prüfung einbauen und bei Doppler einfach nicht einfügen, sofern ich keinen Denkfehler mache.

Sir Rufo 11. Apr 2014 16:09

AW: Komponente mit TCollection, Item-Duplikate vermeiden
 
Zwei Fälle müssen abgedeckt sein:
  • Hinzufügen eines Items
  • Ändern eines Items (direkt und per Assign)

Nic2012 11. Apr 2014 16:30

AW: Komponente mit TCollection, Item-Duplikate vermeiden
 
Add, Insert oder Assign werden aber anscheinend nicht zur Designzeit durchlaufen. Jedenfalls wenn ich dort eine Prüfung mache, kann ich trotzdem weiterhin Duplikate zur Designzeit hinzufügen.

HannesLaie 11. Apr 2014 16:38

AW: Komponente mit TCollection, Item-Duplikate vermeiden
 
Moin,:shock:
Ich hab ne Frage aber wo soll ich sie stellen??

DeddyH 11. Apr 2014 16:47

AW: Komponente mit TCollection, Item-Duplikate vermeiden
 
Such Dir ein zur Frage passendes Unterforum und klick dort auf "Neues Thema erstellen".


Alle Zeitangaben in WEZ +1. Es ist jetzt 16: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