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
Offical launch of the 1 B...
by
Gustavo 'Gus' Carreno
[
Today
at 12:50:46 am]
what to do if my target M...
by
Laksen
[
Today
at 12:49:12 am]
For-in loop over constant...
by
ASerge
[
Today
at 12:36:09 am]
Converting a string/index...
by
TRon
[April 18, 2024, 11:56:37 pm]
exclude ALL packages from...
by
PascalDragon
[April 18, 2024, 11:33:29 pm]
Demoscene The Champs Crac...
by
KodeZwerg
[April 18, 2024, 11:29:50 pm]
Poll: Watches and Display...
by
440bx
[April 18, 2024, 10:55:14 pm]
Database standards OR Am ...
by
dseligo
[April 18, 2024, 10:50:26 pm]
BUG REPORT: Unable to gen...
by
PascalDragon
[April 18, 2024, 10:24:23 pm]
How to: create DLL file f...
by
paule32
[April 18, 2024, 10:23:59 pm]
Have anyone develop UEFI ...
by
PascalDragon
[April 18, 2024, 10:14:15 pm]
Lazarus for Windows on aa...
by
PascalDragon
[April 18, 2024, 10:09:10 pm]
The weird Rewrite bug
by
PascalDragon
[April 18, 2024, 09:58:53 pm]
Assign (textfile) not com...
by
PascalDragon
[April 18, 2024, 09:51:50 pm]
Question for people who h...
by
PascalDragon
[April 18, 2024, 09:44:32 pm]
Linux Workspaces -- StayO...
by
AmatCoder
[April 18, 2024, 08:34:20 pm]
I just released a commerc...
by
Seenkao
[April 18, 2024, 07:57:21 pm]
Access violation when re-...
by
TRon
[April 18, 2024, 07:37:31 pm]
[SOLVED] assembler name i...
by
TRon
[April 18, 2024, 07:26:33 pm]
A fairly simple sound sol...
by
KodeZwerg
[April 18, 2024, 07:01:52 pm]
Step-into the field sette...
by
Martin_fr
[April 18, 2024, 06:54:19 pm]
[Fun Fact] PNG and Micros...
by
Ten_Mile_Hike
[April 18, 2024, 06:24:19 pm]
HTTP/2+HTTP/1.1+WebSocket...
by
iLya2IK
[April 18, 2024, 06:14:30 pm]
Improvement of TFPTimerTh...
by
AlexTP
[April 18, 2024, 05:56:38 pm]
Arabic text, problem on L...
by
nouzi
[April 18, 2024, 05:21:27 pm]
« previous
next »
Print
Pages: [
1
]
Author
Topic: event deactivate component (Read 1941 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: 6130
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: 14373
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: 6130
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: 14373
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: 6130
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