Nun muss ich mich wieder einmal mit einem Problem an euch wenden.
Zur Information: Ich programmiere mit dem C++ Builder 11.2 Alexandria und verwende für Ausdrucke die List&Label28-Komponete TListLabel28 (Version vom Mai 2023).
Ich möchte zur Laufzeit eine 1:n Tabellenrelation im DataController erzeugen. Die für diesen Zweck u.a. notwendige Anweisung
wird fehlerlos (mit dem klassischen Borland-Compiler) compiliert (und dann gelinkt), führt aber bei ihrem Aufruf zur Laufzeit zu einer (mir unverständlichen) Fehlermeldung:
—> Ungültige Typumwandlung
Der Datentyp des Rückgabewerts dieser Anweisung ist doch TDetailSourceItem !! —> ???
Ich habe dies durch Screenshots eines Testprogramm dokumentiert, die sich im Anhang befinden:
Testformular-Header.png
Testformular-ccp-Datei.png
Testformular-Gestartet.png
Fehlermeldung-nach dem Button1-Click.png
Debuggeranzeige-zur-Fehlermeldung.png
Wer kann mir helfen?
Schöne Grüße an das Team!
Helmut Schüßler
tmetternich
(combit Support - Thomas Metternich)
2
Hallo Helmut,
wir konnten die Fehlermeldung reproduzieren. Bei einem kurzen Test mit Delphi, hat das allerdings funktioniert.
Warum es hier zu der Fehlermeldung “Ungültige Typumwandlung” kommt, ist uns hier noch nicht ganz klar. Wir werden dies noch weiter untersuchen und evtl. auch Embarcadero mit ins Boot holen müssen. Ich bitte dich hier um etwas Geduld und werde dich hier auf dem Laufenden halten.
tmetternich
(combit Support - Thomas Metternich)
3
Add() kann hier in diesem Zusammenhang nicht verwendet werden, da es beim C++ Build der Komponente als HIDESBASE TDetailSourceItem __fastcall Add();* deklariert wurde. Man sollte hier stattdessen AddItem() verwenden und entsprechend casten.