![]() |
TToolbarButton aus Toolbar entfernen
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo Zusammen,
ich versuche nun schon seit einigen Tagen, dem SVN Wizard von 'scdevelop' ( ![]() a) Der Wizard funktioniert, wenn er für ein Projekt aktiviert oder deaktiviert wird. b) Er funktioniert nicht, wenn ein oder mehrere Projekte den Wizard einbinden und andere Projekte nicht. In den Projekten ohne Wizard werden dann in der 'Custom Toolbar' leere Buttons ohne Icon und Action angezeigt. Erzeugt werden die Buttons mit diesem Code ( ![]()
Code:
Und entfernt werden Buttons wie im "Component Writer’s Guide" (
procedure TTortoiseSVN.AddActionToToolbar(var bar: TToolBar; action: TAction);
var newbtn: TToolButton; lastbtnidx: integer; begin newbtn := TToolButton.Create(bar); newbtn.Action := action; lastbtnidx := bar.ButtonCount - 1; if lastbtnidx > -1 then newbtn.Left := bar.Buttons[lastbtnidx].Left + bar.Buttons[lastbtnidx].Width else newbtn.Left := 0; newbtn.Parent := bar; tSvnToolbarActions.Add(action); end; ![]()
Code:
Screenshot_1.jpg zeigt, wie die Toolbar bei aktivem Wizard aussieht. Screenshot_2.jpg demonstriert die leeren 'Geister-Buttons'.
procedure TTortoiseSVN.RemoveActionFromToolbar (Action: TAction; ToolBar: TToolBar);
var i: Integer; Btn: TToolButton; begin for i := ToolBar.ButtonCount - 1 downto 0 do begin Btn := ToolBar.Buttons[I]; if Btn.Action = Action then begin { Remove "Btn" from "ToolBar" } ToolBar.Perform(CM_CONTROLCHANGE, WPARAM(Btn), 0); Btn.Free; end; end; end; Hat jemand eine Idee, wie das Problem gelöst werden kann? Die verwendete IDE ist Delphi 7, bzw. Delphi 7 Personal. Thomas. |
AW: TToolbarButton aus Toolbar entfernen
Sind die Buttons noch da, d.h. reagiert da etwas auf MouseOver, oder hat die Toolbar nur vergessen, sich neu zu organisieren? Könnte ja auch sein, das die Toolbar zu blöd ist, sich automatisch zu verkleinern. Da könnte man ja nachhelfen.
|
AW: TToolbarButton aus Toolbar entfernen
Liste der Anhänge anzeigen (Anzahl: 1)
Leider sind die Buttons noch vorhanden und reagieren auf MouseOver. Lediglich die Icons sind verschwunden und wenn man auf einen Button klickt, wird keine Aktion ausgelöst. Soll ich eventuell mal meinen Projektordner (74k) anhängen?
|
AW: TToolbarButton aus Toolbar entfernen
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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 by Thomas Breitkreuz