Autor Beitrag
galagher
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Do 30.08.18 08:24 
Guten Morgen!

Wenn ich mit Delphi 10.2 versuche, eine der Win 3.1-Komponenten TFileListBox, TDirectoryListBox, TDriveComboBox und TFilterComboBox einzufügen, erhalte ich folgende Fehlermeldung:
Zitat:
Registrierungsprozedur, Win31reg.Register in Package
c:\program files (x86)\embarcadero\studio\19.0\bin\dcl31w250.bpl hat die Exception-Klasse
EFilerError: Klasse mit der Bezeichnung TFileListBox existiert bereits ausgelöst


Wenn ich diese Komponenten zur Laufzeit erzeuge oder wenn ich sie mit einer anderen Delphi-Version einfüge, lässt sich die .dproj mit Delphi 10.2 problemlos ohne Fehlermeldung öffnen.

Edit: So klappt es nur mit TFileListBox, bei den anderen Komponenten kommt eine Fehlermeldung "Klasse TDirectoryListBox nicht gefunden.", "Klasse TDriveComboBox nicht gefunden." usw.

Die Datei Vcl.FileCtrl.pas, wo diese Komponenten ja alle drin sind, wird von Delphi übrigens gefunden.

Woran liegt dieser Fehler?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 03.09.18 11:31 
Hallo!

Diese Fehlermeldung kommt auch manchmal beim Öffnen eines Projektes. Wenn man auf "Abbrechen" klickt, wird das Projekt geladen, es kann aber als TForm nicht angezeigt werden. Dann muss man das Projekt schliessen und neu öffnen, das funktioniert dann. Allerdings sind die erwähnten Win 3.1-Komponenten dann nicht verfügbar (fehlen in der Komponentenpalette).

Woran liegt das und wie kann ich das beheben?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 03.09.18 13:30 
Das Zeugs benutzt tatsächlich noch jemand? Die armen Benutzer. :lol:

Aber egal, das Problem scheint zu sein, dass ein anderes Package bereits eine Klasse TFileListBox registriert hat. Welches Package das ist, kannst du z.B. sehen, wenn du auf Komponente --> Neue Komponente schaust und dort nach den Komponenten sucht.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 03.09.18 20:24 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Das Zeugs benutzt tatsächlich noch jemand? Die armen Benutzer. :lol:
Ich benutze sie für kein Projekt, sondern wollte mich in meinem neuen Delphi 10.2 nur mal umschauen! :mrgreen:
Ausserdem: Wenn es sie schon (noch) gibt, sollen sie auch benutzbar sein.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Welches Package das ist, kannst du z.B. sehen, wenn du auf Komponente --> Neue Komponente schaust und dort nach den Komponenten sucht.
Da erhalte ich "Keine Elemente verfügbar", und die gesamte Komponentenleiste verschwindet. :nixweiss: Ich kann sie mir aber durch eintippen eines Zechens in der Suche wiederholen.

Ich habe den Fehler lokalisiert: In JvDriveCtrls.pas ist TJvFileListBox = class(TFileListBox) deklariert, da rührt das Problem wohl her.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 03.09.18 21:46 
user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Ich habe den Fehler lokalisiert: In JvDriveCtrls.pas ist TJvFileListBox = class(TFileListBox) deklariert, da rührt das Problem wohl her.
Das macht Sinn, denn dadurch werden die Komponente und die Unit in das Package eingebunden und damit auch mit installiert.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mo 03.09.18 22:35 
Seltsam, dass das weder in Delphi XE2 noch in 10.1 auftritt, es sei denn, in deren Jedi-Komponenten kommt TFileListBox nicht vor.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Das macht Sinn, denn dadurch werden die Komponente und die Unit in das Package eingebunden und damit auch mit installiert.
Wie kann ich das beheben?

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 05.09.18 10:48 
user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Wie kann ich das beheben?
Ich meine, ausser, das Package der Win 3.1-Komponenten künftig nicht mehr zu laden!

Vorerst habe ich erstmal die betreffenden Komponenten unter neuem Namen in ein separates Package eingebunden, jetzt sind sie zumindest wieder verfügbar. Ich werde das mit den anderen, in Win 3.1 verbliebenen Komponenten auch machen und dann das "Delphi-eigene"-Package (das für die Win 3.1-Komponenten) deaktivieren, nur fürchte ich, dass ich damit das Problem nicht lösen werde...

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 05.09.18 13:00 
Bei mir sind die TJvFileListBox und die TFileListBox beide installiert. Ein grundsätzliches Problem kann es also nicht sein. Ich habe aber gerade mit der GetIt Installation der JEDIs getestet. Damit bekomme ich das Problem tatsächlich auch hin, habe aber weder Zeit noch Lust da lange nach der Ursache zu suchen. Aber da die Installation via GetIt ohnehin nicht viel Sinn macht, ist das ja auch kein großes Problem. Nur halt ein Grund mehr es nicht damit zu machen.

Falls du auch darüber installiert hast, ist das vermutlich die Erklärung. Man bekommt da nun einmal veraltete Pakete, so dass dann Bugfixes ggf. eben fehlen.

user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Ich meine, ausser, das Package der Win 3.1-Komponenten künftig nicht mehr zu laden!
Das wäre allerdings die beste und schnellste Lösung. Denn die Komponenten sind ja wirklich absolut ausschließlich für Kompatibilität mit alten Projekte da, damit man die noch öffnen kann. Das ist so ähnlich wie goto oder with, es ist halt noch da, damit alte Quelltexte noch laufen, aber es ist nicht für neue Projekte gedacht. Wenn man die Komponenten deaktiviert, kann man die nicht aus Versehen benutzen.
galagher Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2510
Erhaltene Danke: 44

Windows 10 Home
Delphi 10.1 Starter, Lazarus 2.0.6
BeitragVerfasst: Mi 05.09.18 21:44 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Aber da die Installation via GetIt ohnehin nicht viel Sinn macht, ist das ja auch kein großes Problem. Nur halt ein Grund mehr es nicht damit zu machen.
Ja, ich habe die Jedis über GetIt installiert, das ist bei Delphi dabei und man klickt bloss drauf, ist halt einfach.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile icongalagher hat folgendes geschrieben Zum zitierten Posting springen:
Ich meine, ausser, das Package der Win 3.1-Komponenten künftig nicht mehr zu laden!
Das wäre allerdings die beste und schnellste Lösung.
Habe ich jetzt gemacht, aber das blosse Entfernen aus der Liste der zu ladenden Packages nützt nichts, beim nächsten Start von Delphi wurde das Package wieder geladen.(?)
Ich musste die Datei dcl31w250.bpl umbenennen, jetzt klappt es.

_________________
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!