Lazarus
Home
Help
TinyPortal
Search
Login
Register
Lazarus
»
Forum
»
Programming
»
General
»
event deactivate component
Free Pascal
Website
Downloads
Wiki
Documentation
Bugtracker
Mailing List
Lazarus
Website
Downloads (Laz+FPC)
Packages (OPM)
FAQ
Wiki
Documentation (RTL/FCL/LCL)
Bugtracker
CCR Bugs
IRC channel
GIT
Mailing List
Other languages
Foundation
Website
Useful Wiki Links
Project Roadmap
Getting the Source
Screenshots
How to use the forum
About donations (wiki)
Bookstore
Computer Math and Games in Pascal
(preview)
Lazarus Handbook
Search
Advanced search
Recent
Generics - correct syntax
by
VisualLab
[
Today
at 01:32:11 pm]
Ho Ho Ho IntraWeb in Laza...
by
VisualLab
[
Today
at 01:28:20 pm]
How to: create DLL file f...
by
paule32
[
Today
at 01:23:18 pm]
FpDebug questions
by
440bx
[
Today
at 01:22:53 pm]
leetcode doesn’t support ...
by
codeninja
[
Today
at 01:16:43 pm]
Can function be used for ...
by
Joanna
[
Today
at 12:48:19 pm]
Parameter passing odditie...
by
Nitorami
[
Today
at 12:42:09 pm]
Access violation when ope...
by
Чебурашка
[
Today
at 12:14:30 pm]
Lazarus features in a non...
by
jollytall
[
Today
at 11:53:17 am]
Access violation when re-...
by
Chris Osborne
[
Today
at 11:43:49 am]
splitting an image
by
Dzandaa
[
Today
at 11:15:40 am]
how to tweek fpmake to co...
by
marcov
[
Today
at 10:35:11 am]
Why isn't TTIRadioGroup's...
by
egsuh
[
Today
at 08:09:35 am]
Lazarus for Windows on aa...
by
Wallaby
[April 23, 2024, 11:46:56 pm]
(Solved) TIndexedAVLTree ...
by
lainz
[April 23, 2024, 10:49:03 pm]
Demo Scene Picture sinwav...
by
KodeZwerg
[April 23, 2024, 10:26:21 pm]
fkInternalCalc
by
zraja
[April 23, 2024, 09:31:07 pm]
A fairly simple sound sol...
by
KodeZwerg
[April 23, 2024, 09:23:37 pm]
add new targets to make
by
marcov
[April 23, 2024, 08:38:42 pm]
Quirky windows
by
ASerge
[April 23, 2024, 07:07:16 pm]
[Request] Demo Scene Sub ...
by
Gigatron
[April 23, 2024, 06:29:39 pm]
Unlocking Files
by
KodeZwerg
[April 23, 2024, 06:03:08 pm]
[SOLVED] trunk bug for mi...
by
Key-Real
[April 23, 2024, 05:56:32 pm]
Demo Scene Bitmap Font Sc...
by
Gigatron
[April 23, 2024, 05:56:27 pm]
Compile/Convert Delphi pr...
by
Martin_fr
[April 23, 2024, 05:43:11 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: event deactivate component (Read 1947 times)
mikutu
New Member
Posts: 14
event deactivate component
«
on:
May 29, 2020, 10:26:17 am »
Have select a component (TEditButton), must execute a specific action when click outside the component. I use events onExit and onDeactivateForm (for click outside form). The problem event onExit is that no work on click mainMenu, toolButton, panel. How can I solve the problem?
Project crossplatfom - windows, linux.
Logged
mikutu
New Member
Posts: 14
Re: event deactivate component
«
Reply #1 on:
June 01, 2020, 05:00:54 am »
In TComboBox OS send message CBN_CLOSEUP by close popup list. It is possible to use CBN_CLOSEUP by my problem?
Logged
jamie
Hero Member
Posts: 6131
Re: event deactivate component
«
Reply #2 on:
June 01, 2020, 12:09:00 pm »
Hmm, does Linux widgets support the non client mouse click messages ?
LM_NCLBUTTONUP for example in the message loop ?
If so you can simply hook the message loop and decide what to do with it there.
Logged
The only true wisdom is knowing you know nothing
Thaddy
Hero Member
Posts: 14387
Sensorship about opinions does not belong here.
Re: event deactivate component
«
Reply #3 on:
June 01, 2020, 01:13:49 pm »
Quote from: jamie on June 01, 2020, 12:09:00 pm
Hmm, does Linux widgets support the non client mouse click messages ?
Which linux widget set are you talking about? There are quite a few....
Logged
Object Pascal programmers should get rid of their "component fetish" especially with the non-visuals.
jamie
Hero Member
Posts: 6131
Re: event deactivate component
«
Reply #4 on:
June 01, 2020, 04:57:38 pm »
How many could there be ? really
gtk2,3, qt etc..
I am not sure where the message delivery comes from with Linux apps, maybe it makes not difference with the widgets but back to the original question, does linux apps via Lazarus support these messages?
if it does then you could hook into them most likely in the Application class
Logged
The only true wisdom is knowing you know nothing
Thaddy
Hero Member
Posts: 14387
Sensorship about opinions does not belong here.
Re: event deactivate component
«
Reply #5 on:
June 01, 2020, 05:50:54 pm »
Quote from: jamie on June 01, 2020, 04:57:38 pm
gtk2,3, qt etc..
Gtk 1,2,3,4,5, Qt 1,2,3,4,5 and quite some more..... even plain X-windows can do...
(Not to mention Windows 1.2.3,3X, NT etc...also all differ... Android? IOS?
Impossible to answer without further information. Period.
«
Last Edit: June 01, 2020, 05:53:55 pm by Thaddy
»
Logged
Object Pascal programmers should get rid of their "component fetish" especially with the non-visuals.
jamie
Hero Member
Posts: 6131
Re: event deactivate component
«
Reply #6 on:
June 01, 2020, 06:11:06 pm »
With windows I can install a Hook to monitor the keyboard and moust while in the app..
its a simple matter..
Logged
The only true wisdom is knowing you know nothing
mikutu
New Member
Posts: 14
Re: event deactivate component
«
Reply #7 on:
June 19, 2020, 10:26:07 am »
Thank you jamie.
I use TApplicationProperties.onUserInput hook event mouse button down. Problem is event not work on caption form, border form, main menu.
I find solution by MS Windows
Code: Pascal
[Select]
[+]
[-]
var
PrevWndProc
:
WNDPROC
;
...
procedure
TForm1
.
FormCreate
(
Sender
:
TObject
)
;
begin
PrevWndProc
:
=
Windows
.
WNDPROC
(
SetWindowLongPtr
(
Self
.
Handle
,
GWL_WNDPROC
,
PtrInt
(
@
WndCallback
)
)
)
;
end
;
...
function
WndCallback
(
HWnd
:
HWND
;
Msg
:
UINT
;
WParam
:
WParam
;
LParam
:
LParam
)
:
LRESULT
;
stdcall
;
begin
if
(
(
(
Msg
=
WM_NCLBUTTONDOWN
)
or
(
Msg
=
WM_NCLBUTTONUP
)
)
and
(
(
wParam
=
HTCAPTION
)
or
(
wParam
=
HTMENU
)
)
)
or
(
Msg
=
WM_INITMENUPOPUP
)
then
begin
...
end
;
Result
:
=
CallWindowProc
(
PrevWndProc
,
HWnd
,
Msg
,
WParam
,
LParam
)
;
end
;
I don't know how to implement this in Linux.
You still need to track the activation of other forms in code main form. How to do this?
Logged
winni
Hero Member
Posts: 3197
Re: event deactivate component
«
Reply #8 on:
June 19, 2020, 11:09:13 am »
Hi
Try this:
Code: Pascal
[Select]
[+]
[-]
procedure
TForm1
.
MyInput
(
Sender
:
TObject
;
Msg
:
Cardinal
)
;
begin
self
.
caption
:
=
IntToStr
(
Mouse
.
CursorPos
.
X
)
+
':'
+
IntToStr
(
Mouse
.
CursorPos
.
Y
)
;
if
MSG
=
513
//WM_LBUTTONDOWN
then
showMessage
(
'Left Mouse Button Down'
)
;
end
;
procedure
TForm1
.
FormCreate
(
Sender
:
TObject
)
;
begin
Application
.
AddOnUserInputHandler
(
@
MyInput
,
True
)
;
end
;
Winni
Logged
mikutu
New Member
Posts: 14
Re: event deactivate component
«
Reply #9 on:
June 22, 2020, 03:11:07 am »
Application.AddOnUserInputHandler and TApplicationProperties.onUserInput do the same thing. I just created it in design mode, and you're in the code. About the problems of this handler I wrote above.
Logged
Print
Pages: [
1
]
« previous
next »
Lazarus
»
Forum
»
Programming
»
General
»
event deactivate component
TinyPortal
© 2005-2018