Einzelnen Beitrag anzeigen

tools400

Registriert seit: 3. Nov 2011
3 Beiträge
 
#4

AW: TToolbarButton aus Toolbar entfernen

  Alt 7. Nov 2011, 13:33
Ich habe den Eindruck, dass es für dieses Problem keine vernünftige Lösung gibt oder das es sich möglicherweise sogar um einen Bug der Delphi IDE handelt. Folgendes konnte ich bisher beobachten:

Ausgangszustand:

Frisch installiertes Delphi mit 'TortoiseSVN.bpl' in DELPHI_HOME/Projects/Bpl.
Neues, nicht weiter modifiziertes Anwendungsprojekt, erstellt über 'Datei' -> 'Neu' -> 'Anwendung'. Nennen wird es 'Projekt1'. Das Projekt ist gespeichert und Delphi ist beendet.

Testablauf:

Starte ich nun die IDE für 'Projekt1' und aktiviere den Wizard über 'Komponente' -> 'Packages installieren', so erscheinen die SVN Buttons in der Toolbar und der neue Zustand der Toolbar wird mit dem Beenden von Delphi in folgenden Registry Key geschrieben:

HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Tool bars: "CustomToolBar"

Starte ich nun die IDE für 'Projekt1' erneut und deaktiviere den SVN Wizard, so verschwinden die SVN Buttons aus der Toolbar und und mit dem Beenden von Delphi entspricht die Registry wieder dem Ausgangszustand. Soweit funktioniert alles bestens.

So, und jetzt wird es spannend.

Zunächst wird die IDE wieder gestartet, 'Projekt1' geladen, der SVN Wizard aktiviert und die IDE beendet. Die Registry beinhaltet die neuen SVN Buttons.

Wird die IDE jetzt erneut gestartet, so erzeugt Delphi automatisch ein neues Projekt ohne SVN Wizard (ist ja auch richtig), zeigt jedoch die nun leeren und aktionslosen SVN Buttons an. Das ist falsch!

Die Vermutung liegt nahe, dass die Buttons angezeigt werden, weil sie ja durch 'Projekt1' zuvor in die Registry eingetragen worden sind. Falsch finde ich jedoch, dass Delphi nicht merkt, dass hinter den Buttons keinen Aktionen liegen (Button.Action = nil). Buttons ohne Actions dürften meiner Meinung nach nicht angezeigt werden.

Vielleicht noch wichtiger ist, dass mit dem Beenden des Wizards auch die Buttons aus der Toolbar entfernt wurden, jedoch nicht die Registry unverändert blieb!

Thomas.
  Mit Zitat antworten Zitat