AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Toolbar mit Toolbutton mit DblClick-Event

Ein Thema von taaktaak · begonnen am 28. Apr 2009 · letzter Beitrag vom 30. Apr 2009
Antwort Antwort
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#1

Toolbar mit Toolbutton mit DblClick-Event

  Alt 28. Apr 2009, 18:46
Moin, Moin.
Ich benötige eine Toolbar mit Toolbuttons, die auf Doppel-Klick reagieren können. Die Toolbar hat das Event, die Toolbutton aber leider nicht. Eine abgeleitete Klasse, die das gewünschte Event veröffentlicht ist ja nicht das Problem:

Delphi-Quellcode:
TNewToolButton = class(TToolButton)
                   published
                     property OnDblClick;
                   end;
Nützt aber natürlich noch gar nix, da ich ja eine Toolbar-Klasse benötige, die diese neuen Toolbuttons auch verwendet. Tja, und da habe ich nun überhaupt keine Idee wie ich da vorgehen kann - oder funktioniert so etwas ohnehin nicht?

Alternativ sehe ich noch, den Doppelklick "manuell" im zur Verfügung stehenden OnClick() des Toolbuttons "mitzuzählen" - Aber das ist irgendwie "basteln", oder?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Toolbar mit Toolbutton mit DblClick-Event

  Alt 28. Apr 2009, 18:49
Du mußt auch die Toolbar-Klasse ableiten und dort wo mit TToolbutton gearbeitet wird deinen TNewToolButton "einpflanzen".

Beim ElPack (das ich verwende) kann man hierzu einfach die Angabe der zu verwendenden Buttonklasse im Konstruktor der eigenen Toolbar-Klasse. überschreiben
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#3

Re: Toolbar mit Toolbutton mit DblClick-Event

  Alt 28. Apr 2009, 18:54
Ok, danke für die schnelle Antwort. Dass die Toolbar-Klasse ebenfalls abgeleitet werden muss, liegt auf der Hand - könntest du bitte das "einpflanzen" etwas präzisieren. Genau an dieser Stelle hapert es. Ich verstehe es bisher so, dass (nur?) im Konstruktor der abgeleiteten Toolbar-Klasse die "Pflanzaktion" erfolgt?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Toolbar mit Toolbutton mit DblClick-Event

  Alt 28. Apr 2009, 19:03
Zitat von taaktaak:
Ok, danke für die schnelle Antwort. Dass Toolbar-Klasse ebenfalls abgeleitet werden muss, liegt auf der Hand - könntest du bitte das "einpflanzen" etwas präzisieren. Genau an dieser Stelle hapert es. Ich verstehe es bisher so, dass (nur?) im Konstruktor der abgeleiteten Toolbar-Klasse die "Pflanzaktion" erfolgt?
Seh gerade das TToolbar mit TToolbutton fest verwoben ist. Vermutlich musst du den gesamten Toolbar/Toolbutton-Code aus der VCL in eine eigene Unit verfrachten, alles umbennenen und dann entsprechend erweitern.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#5

Re: Toolbar mit Toolbutton mit DblClick-Event

  Alt 28. Apr 2009, 23:01
- ich hab's befürchtet.
Dann ist's vielleicht doch eine Überlegung, dass im OnClick() "manuell" zu erledigen.
Vielen Dank, damit hast du mir erst einmal unnötige Grübelei erspart.
Ralph
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#6

Re: Toolbar mit Toolbutton mit DblClick-Event

  Alt 30. Apr 2009, 09:41
Für die Nachwelt eine kurze abschließende Sachstandsmeldung zu diesem Thema:

Habe zunächst doch den Ratschlag von Bernhard befolgt und eine eigene Unit mit allem(?) notwendigen Code aus ComCtrl erstellt, verändert und als neue Toolbar installiert. Danach war aber das Einfügen neuer Toolbuttons mit Hilfe des Toolbar-Popups zur Entwurfszeit nicht verfügbar?! Nachdem die Toolbuttons ebenfalls als eigenständige Komponente installiert wurden, funktionierte das mit dem Popup immer noch nicht, aber das "hineinziehen" eines neuen Buttons in die Toolbar war danach immerhin möglich. Im OI stand auch das DblClick-Event zur Verfügung - leider wurde es aber offenbar nicht aufgerufen.

Da das Thema für mich nicht die oberste Priorität hat, habe ich dann ohne weitere Ursachenforschung die Alternative "Bastellösung" versucht: Da die Toolbutton eine eigene WinProc haben, kann dort mit minimalem Aufwand der Doppel-Klick erkannt und behandelt werden - das funktioniert ohne Probleme gemeinsam mit dem "normalen" Klick zusammen.

Ungelöst blieb aber meine spezielle Anforderung: Normaler Schalter bei einfachem Klick, rastender Schalter nach Doppelklick und Aufheben der Markierung bei nächstfolgendem einfachen Klick. Es ist zwar mit wenig Aufwand gelungen den Schalter nach einem Doppel-Klick einrasten zu lassen. Das Aufheben der Markierung blieb aber ungelöst, da dieses zwar optisch erfolgt, aber dadurch weder ein WM_LButtonDown noch WM_LButtonUp in der WinProc ankommt - somit habe ich bisher keinen Weg gefunden über die Aufhebung des Einrastens informiert zu werden.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz