Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   C++ Faszinierendes Problem mit Virtual String Trees (BCB6) (https://www.delphipraxis.net/167639-faszinierendes-problem-mit-virtual-string-trees-bcb6.html)

Assarbad 10. Apr 2012 20:25

Faszinierendes Problem mit Virtual String Trees (BCB6)
 
Hallöchen,

also ich habe derzeit ein faszinierendes Problemchen mit VSTs (aktuellste Version von Soft-Gems) zusammen mit BCB6.

Die Header welche Mike mitliefert, verursachen Fehler (im speziellen VirtualTrees.hpp), so daß ich meine lokale Version einbinde. Funzte bis vor kurzem wunderbar, aber nun bekomme ich einen Fehler, der sich vermutlich auf die verschiedenen Versionen der Header zurückführen läßt (Vermutung!).

Folgender Schnipsel:

Code:
#pragma option push -b-
enum TVTLineType { ltNone, ltBottomRight, ltTopDown, ltTopDownRight, ltRight, ltTopRight, ltLeft, ltLeftBottom };
#pragma option pop
gehört nämlich vor:

Code:
struct TVTPaintInfo;
struct TVTImageInfo;
typedef DynamicArray<TVTLineType > TLineImage;
und nicht dahinter, wie in den mitgelieferten Headern.

Allerdings - und obwohl dies nachweislich der einzige Unterschied zwischen meinen Headern und den mitgelieferten ist - bekomme ich jetzt eine Ausnahme vor den Kopf gehauen wenn ich OnHeaderClick meines VST setzen will. Die mitgelieferten Header und meine deklarieren das so ...

Code:
struct TVTHeaderHitInfo;
typedef void __fastcall (__closure *TVTHeaderClickEvent)(TVTHeader* Sender, const TVTHeaderHitInfo &HitInfo);
meine Deklaration (die der Definition entspricht):

Code:
void __fastcall vstQuarantineHeaderClick(TVTHeader *Sender, const TVTHeaderHitInfo &HitInfo);
Ich seh nicht wo das Problem ist.

Habe auch versucht den Virtualtress-Namensraum vor die Typen zu stellen um zu qualifizieren was ich genau haben will, aber es bringt alles nichts. Dieser Fehler wird geworfen (nur eben in BCB6): Property and method <MethodName> are not compatible.

Hat jemand eine Idee?

Gausi 10. Apr 2012 20:37

AW: Faszinierendes Problem mit Virtual String Trees (BCB6)
 
Ich kann das zwar nur über Delphi sagen, aber so ein Problem hatte ich mit dem VST auch mal. ;-)

IIRC hat sich die Parameterliste dieses Events in den letzten paar Versionen mehrfach geändert. Um die Parameterliste kurz zu halten, wurden mal diverse Parameter in das struct/record HitInfo zusammengefügt.
Dann hat Mike festgestellt, dass das nicht so gut abwärtskompatibel ist, hat das wieder rückgängig gemacht und die Parameterliste wieder in die alte Version zurück geändert.

Da bleibt wohl nur, die Events im Code anzupassen. Ich hab das zweimal machen müssen - einmal hin und wieder zurück.

Assarbad 10. Apr 2012 20:50

AW: Faszinierendes Problem mit Virtual String Trees (BCB6)
 
Zitat:

Zitat von Gausi (Beitrag 1161070)
Da bleibt wohl nur, die Events im Code anzupassen. Ich hab das zweimal machen müssen - einmal hin und wieder zurück.

Aber wie? Würde ich ja machen, wenn ich begreifen könnte wo die sich unterscheiden. Deshalb habe ich ja Prototyp und meine Ereignisfunktion beigefügt. Die sind doch quasi identisch oder bin ich betriebsblind?

Gausi 10. Apr 2012 21:01

AW: Faszinierendes Problem mit Virtual String Trees (BCB6)
 
Hängt da vielleicht noch irgendwo eine alte Version rum, die die anderen Parameter nutzt? In meiner Version 4.8.7 sieht das so aus:

Code:
typedef void __fastcall (__closure *TVTHeaderClickEvent)(TVTHeader* Sender, TColumnIndex Column, Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);

Assarbad 10. Apr 2012 21:03

AW: Faszinierendes Problem mit Virtual String Trees (BCB6)
 
Zitat:

Zitat von Gausi (Beitrag 1161081)
Hängt da vielleicht noch irgendwo eine alte Version rum, die die anderen Parameter nutzt? In meiner Version 4.8.7 sieht das so aus:

Code:
typedef void __fastcall (__closure *TVTHeaderClickEvent)(TVTHeader* Sender, TColumnIndex Column, Controls::TMouseButton Button, Classes::TShiftState Shift, int X, int Y);

Hmm, interessant. In meiner Version 4.8.7 so wie oben dargestellt. Ich werde mal systemweit nach Headern suchen.

Assarbad 10. Apr 2012 21:34

AW: Faszinierendes Problem mit Virtual String Trees (BCB6)
 
Gausi, ich danke dir :thumb: ... es war wie du schon vermutetest ...


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