![]() |
Nochmal Komponenten und Delphi 12
Hallo Freunde/innen,
ich wollte in meinem Programm noch schnell zwei RadioGroups durch zwei ComboBoxen ersetzen. Sieht besser aus und ist funktionaler. Aber mit schnell ist nicht. Sobald ich ComboBox auf der Hauptseite einfüge, crasht es hier in einem anderen Fenster:
Delphi-Quellcode:
TEg = string[3];
TErgeb = record Ergeb: TEg; SptNr: Byte; WoTag: Byte; {Spieltag in der Woche unbekannt=0 1=Fr, 2=Sa ...7=Do} end;
Delphi-Quellcode:
Ich habe es gerade bei Delphi 10 ausprobiert. Da kann ich ohne Problem RadioBox durch ComboBox ersetzen. Ich kann auch überhaupt nicht den Zusammenhang sehen.
type
TErgebEing = class Erg: TErgeb;//<----------------------- private procedure SetErgebn(Zei,Spa: Integer; Eg: TErgeb); public property Setzen[Z,S: Integer]: TErgeb write SetErgebn; default; end; Nur zur Nachlese: Ich habe mit Delphi 10 und eingeschalteter Bereichsüberprüfung erfolgreich kompilieren können. Aber Das Fass ist für mich zu. Es bestehen offensichtlich doch große Unterschiede zw. D10 und d12. Gruß Willie. |
AW: Nochmal Komponenten und Delphi 12
Hallo,
"Crash" verstehe ich so, dass zur Laufzeit ein Abbruch passiert. Die Komponente Combobox arbeitet wahrscheinlich sehr, sehr korrekt. Ich schätze, es gibt in Deinem Programm noch Bezüge auf die gelöschten Radioboxen und vermutlich sind diese auch noch irgendwo deklariert, auch wenn sie von dem Form weg sind. Ich hatte ähnliche Probleme mit einer älteren Delphi-Version auch mal nach einer umfangreichen Löscherei. Suche mal (mit einem externen Tool!) in allen (ja, allen) Dateien im Projekt nach den Namen der gelöschten Radiogroups. Gruß GuaAck Zitat:
|
AW: Nochmal Komponenten und Delphi 12
Guten Morgen,
Zitat:
Ich habe es:
Delphi-Quellcode:
So ist es richtig! Der D10 Compiler hat es akzeptiert, D12 nicht. Aber warum es erst ging und dann plötzlich nicht, weiß ich allerdings nicht. Vielleicht wurde es erst jetzt neu kompiliert.
type
TErgebEing = class private Erg: TErgeb; procedure SetErgebn(Zei,Spa: Integer; Eg: TErgeb); public property Setzen[Z,S: Integer]: TErgeb write SetErgebn; default; end; Willie. |
AW: Nochmal Komponenten und Delphi 12
Erg: TErg; ist schlicht am falschen Ort deklariert, dies sollte auch in D10 nicht funktioniert haben.
Delphi-Quellcode:
So ist es korrekt.
type
TErgebEing = class Erg: TErgeb;//<----------------------- private procedure SetErgebn(Zei,Spa: Integer; Eg: TErgeb); public property Setzen[Z,S: Integer]: TErgeb write SetErgebn; default; end;
Delphi-Quellcode:
type
TErgebEing = class private Erg: TErgeb; procedure SetErgebn(Zei,Spa: Integer; Eg: TErgeb); public property Setzen[Z,S: Integer]: TErgeb write SetErgebn; default; end; |
AW: Nochmal Komponenten und Delphi 12
Und jemand hat auch noch am {$M} bzw. {$TYPEINFO} rumgepfuscht.
Normal ist die Standard-Sichbarkeit PUBLIC, es sei denn jemand aktiviert das vorher und sie ändert sich zu PUBLISHED. Und für PUBLISHED sind nunmal gewisse höhere Typen "verboten", da dort standardmäßig keine Serialisierung für vorhanden ist. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz