Hallo himitsu,
vielen Dank für die Tipps. Es hat geholfen, das Problem zu lösen.
Ausgelöst durch ein Update auf die neuste Version:
https://github.com/IndySockets/Indy/wiki/Updating-Indy
Hier gab es dauerhaft Runtime-Errors bei der Installation dclIndyProtocols. Daher zurück zur alten Version.
Das Problem hat aber eine Wiederherstellung der „C:\Program Files (x86)\Embarcadero“ - Verzeichnisse aus einem BAK überlebt. Es muss also an der Registry liegen. Und tatsächlich hatte die vorherige, misslungene Installation einige Leichen hinterlassen:
Unter
Code:
[HKEY_CURRENT_USER\SOFTWARE\Embarcadero\
BDS\14.0\
Package Cache\dclIndyProtocols200.bpl\Components]
"
Indy Clients|IdDayTime|System.Classes.TPersistent|TIdDayTime|0|95"="1"
"
Indy-Clients|IdDayTime|System.Classes.TPersistent|TIdDayTime|0|95"="1"
usw.
waren einige Komponenten doppelt angelegt. Und die können eben nicht zwei Mal installiert werden.
Es ist also eine sehr gute Idee, vor einem Update von
Indy folgende Registry-Schlüssel zu sichern:
Code:
HKEY_CURRENT_USER\SOFTWARE\Embarcadero
und natürlich ein Backup von
Code:
C:\Program Files (x86)\Embarcadero\
anzulegen.
Hier noch einige Hintergründe:
jap, da steht zwei mal der selbe
BPL-Name in der Fehlermeldung.
Komponente TIdDayTime kann von Package dclindyprotocols200.bpl nicht registriert werden, weil sie bereits von Package dclindyprotocols200.bpl registriert wurde.
Es gibt nur den Einen, da wo er auch sein soll:
Code:
C:\Program Files (x86)\Embarcadero\Studio\14.0\bin\dclIndyProtocols200.bpl
In Tools > Optionen > Umgebungsoptionen > Komponenten-Symbolleiste
waren unter
Indy alle Komponenten aufgeführt. Allerdings waren dort jeweils zwei Seiten "
Indy-Clients" und "
Indy Clients" und auch "
Indy-Server" und "
Indy Server" angelegt. Die Komponenten waren auf beide verteilt.
Nach einen Neustart waren "
Indy Clients" und "
Indy Server" leer. Wenn ich dann unter "Packages installieren" dclindyprotocols200.bpl mit der bekannten Fehlermeldung anwähle, waren die Komponenten unter "
Indy Clients" und "
Indy Server" wieder vorhanden, lassen sich aber nicht verwenden. (wirft eine
Exception)
Code:
exception class : ENonAIRException
exception message : Komponente TIdDayTime kann von
Package dclindyprotocols200.bpl nicht registriert werden, weil sie bereits von
Package dclindyprotocols200.bpl registriert wurde.
disassembling:
21c66e94
21c66e99 mov eax, [ebp-$3c]
21c66e9c mov [ebp-$30], eax
21c66e9f mov byte ptr [ebp-$2c], $11
21c66ea3 lea edx, [ebp-$40]
21c66ea6 mov eax, [ebp-8]
21c66ea9 mov ecx, [eax]
21c66eab call dword ptr [ecx+$54]
21c66eab
21c66eae mov eax, [ebp-$40]
21c66eb1 mov [ebp-$28], eax
21c66eb4 mov byte ptr [ebp-$24], $11
21c66eb8 lea eax, [ebp-$38]
21c66ebb push eax
21c66ebc push 2
21c66ebe mov ecx, $21c62f1c
21c66ec3 mov
dl, 1
21c66ec5 mov eax, [$21de0694]
21c66eca call -$14c8f ($21c52240) ;
Winapi.Windows.System.SysUtils.Exception.CreateResFmt (delphicoreide200.bpl)
21c66eca
21c66ecf > call -$15d64 ($21c51170) ; System.@RaiseExcept (delphicoreide200.bpl)
21c66ecf
21c66ed4 loc_21c66ed4:
21c66ed4 1523 inc esi
21c66ed5 1510
dec dword ptr [ebp-$14]
21c66ed8 jnz loc_21c66d9a
21c66ed8
21c66ede loc_21c66ede:
21c66ede 1524 lea eax, [ebp-$c]
21c66ee1 mov edx, [$21de1460]
21c66ee7 mov edx, [edx]
21c66ee9 mov ecx, $21c67020
21c66eee call -$15ab3 ($21c51440) ; System.@IntfCast (delphicoreide200.bpl)
21c66eee
21c66ef3 1525 mov eax, [ebx+$24]
21c66ef6 mov eax, [eax+8]
21c66ef9
dec eax
21c66efa test eax, eax
21c66efc jl loc_21c66f1f
21c66efc
21c66efe inc eax
Vielen Dank für die Hilfe!