Code: Alles auswählen
try
wHNDcolor := TColorDialog.Create(nil); // Farbdialog öffnen
wHNDcolor.Title := 'Farbe Vordergrund';
wHNDcolor.Color := fgrgb;
if wHNDcolor.Execute then begin
fgrgb := wHNDcolor.Color; // neue Farbe übernehmen
gIDfcol.ButtonColor := fgrgb;
end;
finally
wHNDcolor.Free();
end;
Nun habe ich den aufrufenden Button durch einen ColorButton ausgetauscht. Ansonsten alles gleich. Allerdings wird der ColorDialog nach dem Beenden nochmals aufgerufen. ColorButton sendet anscheinend das OnClick-Ereignis zweimal.
Rufe ich stattdessen die Routine nicht mit OnClick, sondern OnDblClick auf, wird der ColorDialog wie gewünscht nur einmal ausgeführt. Allerdings fällt auf, dass ein einzelner Klick auf den ColorButton genügt, um ein OnDblClick Ereignis auszulösen.
Ist das ein Bug im OnClick von ColorButton? Oder ist das normal? Kann ich das zweite Ereignis bei OnClick irgendwie abfangen?