![]() |
Delphi-Version: 7
Mehrere Formobjekte mit Focused = True?
Hallo,
ich habe ein seltsames Phänomen. Und zwar will ich im FormKeydown abfragen, ob ein bestimmtes Objekt den Focus hat oder nicht. Wenn der Key dann ein VK_Return is, soll er was bestimmtes machen. Irgendwie macht er das aber immer und nicht nur, wenn das feld fokusiert ist... Habe dann im debuger geschaut, ob Focused wirklich true ist. Wenn ich den cursor über das Focused halte, wird angezeigt: Nicht verfügbarer Wert Wenn ich im Debug-Inspektor nachschaue, steht dort True. Das ist bei mehreren Objekten gleichzeitig und ich steh da momentan zugegeben ziemlich auf dem schlauch ... Die meisten Objekte sind TMaskEdits, das selbe habe ich aber auch bei einer TRadioGroup und einem cxGridDBTableView ... Hat jemand eine Idee, woran das liegen könnte? würde mich über hilfe sehr freuen, mfg Freiwilderer |
AW: Mehrere Formobjekte mit Focused = True?
Es kann immer nur ein Control den Fokus haben. Zeig doch einmal Deinen Code.
|
AW: Mehrere Formobjekte mit Focused = True?
naja, das hab ich auch gedacht ;)
sinngemäß steht da das hier, der komplette code wäre zu komplex, aber mehr macht der an der stelle nicht.
Delphi-Quellcode:
procedure TfParcel.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState); var intTemp: int64; begin inherited; if ButtonMode in [bmBrowse, bmSearch] then begin case Key of vk_Return: begin if (ButtonMode in [bmSearch]) and (qParcelLocal.Active) and (meSenderID.Focused or meClientRef.Focused or ieEplIdFrom.Focused or ieEplIdTill.Focused or dtpOutboundDateFrom.Focused or dtpOutboundDateTill.Focused or meReceiverCtrCode.Focused or meReceiverZipcode.Focused or RadioGroup1.Focused) then showmessage('Hallo'); end; end; end; |
AW: Mehrere Formobjekte mit Focused = True?
Die Bedingung trifft ja zu, wenn eines der angegebenen gefühlten 23.000 Controls den Fokus hat (sofern die anderen Bedingungen zutreffen).
|
AW: Mehrere Formobjekte mit Focused = True?
Ja, ich weiß
Aber die sind alle true^^ auch, wenn ich gar keinen ausgewählt hab ... Eigentlich sollte das nur das Grid abfragen, aber das ging ja nich, weil das auch immer fokussiert war ;) |
AW: Mehrere Formobjekte mit Focused = True?
Und wenn Du statt auf Focused einmal das ActiveControl abfragst? Macht in meinen Augen zwar nicht viel Sinn, einen Versuch ist es aber wert.
|
AW: Mehrere Formobjekte mit Focused = True?
Hmm, ich werd das mal testen, bin leider oder eher zum Glück nich mehr auf der Arbeit ;)
Vielleicht klappt's ja damit, kann mir das auch nich erklären ... Danke schonmal für den tip |
AW: Mehrere Formobjekte mit Focused = True?
Bist du sicher, dass .Focused bei allen True ist? Wenn keine vollständige Boolean-Evaluierung aktiviert ist, dann bricht er bei or beim 1. wahren Term ab, da das ergebnis dann ja insgesamt wahr wird
|
AW: Mehrere Formobjekte mit Focused = True?
Ich hab im Debugger ja nachgeschaut ...
Ich glaub auch nich wirklich, dass die alle true sind, aber es wird da nunmal so angezeigt und das programm verhält sich auch so als ob ... |
AW: Mehrere Formobjekte mit Focused = True?
so gehts ....
Delphi-Quellcode:
verstehs zwar immer noch nicht (zumal das mit dem control des express grid views nich funktioniert hat)
if (ButtonMode in [bmSearch]) and (qParcelLocal.Active) and NOT(ActiveControl = meSenderID) and NOT(ActiveControl = meClientRef) and NOT(ActiveControl = ieEplIdFrom)
and NOT(ActiveControl = ieEplIdTill) and NOT(ActiveControl = dtpOutboundDateFrom) and NOT(ActiveControl = dtpOutboundDateTill) and NOT(ActiveControl = btnRestrictParcels) and NOT(ActiveControl = meReceiverCtrCode) and NOT(ActiveControl = meReceiverZipcode) and NOT(ActiveControl = RadioGroup1) then danke für den tip :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:34 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-2025 by Thomas Breitkreuz