| Autor |
Beitrag |
Narses
      

Beiträge: 10184
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 06.03.12 00:13
Moin!
Folgende Situation: - Ich habe eine Komponente mit ein paar published-Eigenschaften, bei der es Abhängigkeiten im Wertebereich untereinander gibt:
- Es gibt eine boolean-Eigenschaft B (default=FALSE), die erstmal weiter nichts tut, als zu existieren
- Es gibt eine Eigenschaft A, deren Wertebereich von B abhängt. Ist B=FALSE (default), dann darf A nicht z.B. $4711 zugewiesen werden, entsprechende Versuche werden per Exception abgefangen, der Wert nicht übernommen.
- Wird B aber TRUE, dann gibt es keine Einschränkung für A.
- Stelle ich B nun im OI zur Designzeit auf TRUE und setze A auf $4711, kriege ich beim nächsten Laden des Projekts in der IDE eine Exception: scheinbar wird B nach A geladen, so dass der verbotene Wert für A noch nicht "freigeschaltet" ist!

Wie löst man so ein Problem? Ich habe jetzt auch nicht wirklich gute Suchwörter gefunden, um zu recherchieren...  In der Konsistenz-Prüfung bei der Wertzuweisung habe ich bereits die Ausnahme: or (csLoading in Self.ComponentState) drin, das scheint es aber nicht zu tun.  Ist es generell nicht vorgesehen, Abhängigkeiten in den Eigenschaften eines Objekts zu haben?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
      
Beiträge: 19340
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 06.03.12 00:39
Für diesen Beitrag haben gedankt: Narses
|
|
Narses 
      

Beiträge: 10184
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Di 06.03.12 01:11
Moin!
Danke für deinen Einsatz!
Ich hab das Package neu compiliert, jetzt geht´s bei mir auch...  Heisenbug...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 06.03.12 23:08
Man kann IIRC die Serialisierung und Deserialisierung der Properties zum Teil auch selber handhaben. Damit kann man da ggf. auch mit herumarbeiten, indem man die besagten Properties manuell selber deserialisiert/serialisiert in der richtigen Reihenfolge.
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
Narses 
      

Beiträge: 10184
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 07.03.12 00:46
Moin!
Danke für den Hinweis.
Mittlerweile habe ich auch nachvollziehen können, was da passiert ist: ich hatte die Komponente bereits in der IDE registriert und an einer neuen Version gearbeitet, indem ich den Quelltext in einem Projekt separat eingebunden habe, normal halt, sonst muss man ja dauernd zwischen dem Package und dem Testprojekt hin und herswitchen.  Und genau da ist das Problem: im erstellten Test-Binary ist dann zwar die neue Version des Codes enthalten, aber in der IDE wird noch die alte Version aus dem Package verwendet.  Also Package aktualisiert und - siehe da, "Fehler" ist weg...  Also, eigene Doofheit...
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
      
Beiträge: 19340
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 07.03.12 00:52
Das mache ich sehr einfach:
Ich definiere das Package mit der Komponente als Abhängigkeit zu dem Testprojekt und zack, schon wird das Package jedesmal mit dem Programm neu kompiliert und auch in der IDE ist die Komponente ständig aktuell. 
|
|
Narses 
      

Beiträge: 10184
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 07.03.12 00:56
Moin!
jaenicke hat folgendes geschrieben : | | Ich definiere das Package mit der Komponente als Abhängigkeit zu dem Testprojekt |
Spannend, und wo/wie macht man das?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
      
Beiträge: 19340
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 07.03.12 01:06
Im Projektmanager kann man auf das Projekt mit rechts klicken und dann unter Abhängigkeiten die Projekte der Projektgruppe auswählen, die automatisch vor dem betreffenden Projekt kompiliert werden sollen.
Ich habe aber mal zur Sicherheit bei Delphi 7 nachgeschaut. Da gibt es den Punkt zumindest in der Personal Edition nicht. Den gibt es also entweder erst ab der Professional oder erst ab Delphi 2005 (dort existiert er). Du kannst ja schauen, ob du den hast.
|
|
Narses 
      

Beiträge: 10184
Erhaltene Danke: 1256
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Mi 07.03.12 01:21
Moin!
jaenicke hat folgendes geschrieben : | | Im Projektmanager kann man auf das Projekt mit rechts klicken und dann unter Abhängigkeiten die Projekte der Projektgruppe auswählen, die automatisch vor dem betreffenden Projekt kompiliert werden sollen. |
Mal langsam, ich stelle die Abhängigkeit im Testprojekt ein? Also füge ich das Package dem Testprojekt als Abhängigkeit hinzu?
jaenicke hat folgendes geschrieben : | | Ich habe aber mal zur Sicherheit bei Delphi 7 nachgeschaut. Da gibt es den Punkt zumindest in der Personal Edition nicht. Den gibt es also entweder erst ab der Professional oder erst ab Delphi 2005 (dort existiert er). Du kannst ja schauen, ob du den hast. |
Wenn ich einen Rechtsklick auf dem Testprojekt in der Projektverwaltung mache, habe ich dieses Kontextmenü (D7pro):
cu
Narses
Einloggen, um Attachments anzusehen!
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
jaenicke
      
Beiträge: 19340
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 07.03.12 01:29
Einloggen, um Attachments anzusehen!
Für diesen Beitrag haben gedankt: BenBE, Narses
|
|
|