Ja, als Workaround genügt es zur Installation der dclIndyProtocols50.dpk in der Lib\Protocols\IdRegister.pas die Units IdSASL_CRAM_MD5 und IdSASL_CRAM_SHA1 aus der uses zu nehmen und die dann beim Kompilieren bemängelte RegisterComponents Anweisung auch zu löschen.
Ansonsten sehe ich aber ohnehin vor allem Nachteile in der Installation in die Komponentenpalette.
- Denn wenn man sich auf im Objektinspektor eingestellte Werte verlässt und die dann aus irgendeinem Grund, z.B. aus Versehen, ändert, dann sucht man sich schwarz nach dem Fehler. Das kann nicht passieren, wenn man die Komponenten manuell erstellt und die Eigenschaften direkt im Quelltext zuweist.
- Dann muss man Indy auch immer in dem Delphi installiert haben um das Projekt zu kompilieren. Damit funktioniert es mit Turbo Delphi nicht, was zumindest bei Open Source kaum sinnvoll wäre. Wenn man es ohne Installation macht, genügt es die Bibliothekspfade kurz zu ändern und spart sich die Installation auf einem ggf. anderen PC.
- Und dann kann man auch sehr einfach die einzelnen Funktionalitäten kapseln in eigenen Klassen, weil man die Indy-Komponenten dort auch gleich manuell erstellen kann und nicht auf das Formular zugreifen muss. Auf diese Weise ist der Quelltext dann auch sehr viel übersichtlicher, weil die Ereignisprozeduren auch direkt in der entsprechenden Klasse ist und diese nur die entsprechende Funktionalität beinhaltet und daher kleiner ist als ein Hauptformular meistens ist.
Deshalb benutze ich die
Indy-Komponenten ohnehin manuell und das funktioniert ohnehin ohne Probleme, es sei denn du benötigst ausgerechnet die hier betroffenen Komponenten.