Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   DevExpress cxBarEditItem (Spinedit) (https://www.delphipraxis.net/202684-devexpress-cxbaredititem-spinedit.html)

Gyrospeter 27. Nov 2019 09:46

DevExpress cxBarEditItem (Spinedit)
 
Guten Morgen liebe Delphianer,

ich habe leider mal wieder ein Problem und über die Suche hat sich keine klare Hilfestellung ergeben bzw. haben die darüber versuchten Lösungsansätze leider nichts gebracht.

Ich habe eine Paintbox die in einer Scrollbox liegt. Die Bitmap die darin zu sehen ist, wird ebenfalls in einer separaten Imagebox angezeigt bzw. alle Veränderungen die ich in der Paintbox mache sind ebenfalls im Image zu sehen.

Ich habe einen Zoom, den ich über einen Spinedit eingebaut habe. Ist der Mousecursor direkt in diesem Feld, oder über den 4 Buttons, funktioniert das Mousewheel einwandfrei. Ist er jedoch in der Paintbox, kann ich zwar den Fokus auf das Textedit legen, allerdings inkrementiert er mit dem Wheel leider nicht.

Ebenso wenn ich eine Zahl eingebe und mit Enter abschließe, springt er mit der Enter-Taste leider ins nächste Control, sprich in die Imagebox.

Was mache ich falsch? :?::roll:

Delphi-Quellcode:
procedure TFrmMain.cxBarEditItem4PropertiesChange(Sender: TObject);
begin
  FOriginZoom := cxBarEditItem4.EditValue;
  cxBarEditItem4.Properties.UseMouseWheel := True;
  UpdateOrigin;
end;
ich habe auch schon ein paar Sachen mit dem OnKeyDown und OnKeyPress Events versucht,
leider ebenfalls ohne Erfolg.
In dem UpdateOrigin findet das Zoomen der Bitmap statt.

Edit: Über dem Spinedit liegt ein Barmanager
Edit2: Ich nutze Delphi 7

Gyrospeter 28. Nov 2019 07:58

AW: DevExpress cxBarEditItem (Spinedit)
 
Ok, ich hab es lösen können falls es jemanden interessiert.

zb. beim MouseWheelDown

Delphi-Quellcode:
if PtInRect (Origin.ClientRect, PSc1) and (ssCtrl in Shift) then
  begin
    cxBarEditItem4.EditValue := cxBarEditItem4.EditValue - 0.1;
    cxBarEditItem4.Properties.OnEditValueChanged(nil);
    Handled := True;
  end;
und das Enter hat er nicht angenommen, weil es in die cxBarEditItem4PropertiesChange anstatt in die cxBarEditItem4PropertiesEditValueChanged geschrieben wurde!


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:09 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