How to prevent large popup hint in Messages Panel? - delphi

In my Delphi IDE (XE2) in the messages panel when hovering over the blank line before the Build Succeeded message, I get a very large popup hint displayed that covers the entire screen in which all my library paths are displayed. This occurs on the Output tab of the Messages pane.
Here is a screen shot of where this is happening:
It is very annoying.
I have some IDE Experts installed:
GExperts
JCL Options
I have looked through the settings and cannot see anything related to where this would be turned off.
Does this happen with anyone else and is there a way to stop it?

What you're seeing is the text of what command line would be sent to the command line compiler, being displayed in a hint window.
Before the hint:
With the hint:
If you look at the first part of that image, it starts with (on my system)
c:\rad studio\5.0\bin\dcc32.exe
which is the Delphi command line compiler.
The solution is to not put your mouse on the line right below the target compile line (which is the only place you can see this - by hovering the mouse over the line below 'Target SomethingCompileentry (in my second screen capture, it's the line belowTarget CoreCompile`).
If you don't want to see that hint window, don't hover your mouse over it in the first place. (It's like hint text over a label - if you don't want to see the hint, don't leave your mouse pointer over that label.) It's not like it's a huge area on the screen you have to avoid - it's just that single line of output in the window.

Related

Why is my Octave GUI editor so buggy? How can I fix it?

The editor for the GUI is a complete mess. When I create a brand new script, the spacing and font are relatively ok.
However, if I open any existing function, it is shown with way too much space between lines, and spaces and tabs show way more space than they should. An example is shown below:
I tried selecting the Edit - Preferences - General - Use custom file editor options, and chose "notepad++ -n%l %f. I have notepad++ installed already on my computer.
When I selected this option and clicked ok, the Octave GUI crashed. When I tried to reopen a file now, I get the error "could not start custom file editor".
If I change the font, it temporarily fixes the issue. But none of the changes persist. Often clicking OK crashes octave. And any time it's reopened, the fonts revert to default, and the spacing problems returns.
How can I make the editor show an appropriate leading and space width?
I would also like to be able to further customize, if possible. For example I'd like it to use a dark theme. But for now just showing a reasonable space between lines would make this at least useable.
I'm using Windows 10, Octave version 6.4.0

Delphi - Activating the Hint from another control of Application

I'm trying to activate Hint from control of different application created from delphi upon focus, I'm using hook to identify the focused control, and then use WM_MOUSEMOVE, which I think will activate the Hint of that control, the handle would be the Control itself and the lParam is the Left and Top of the Control. The Control activate the OnMouseMove Event, but the Hint never shows. but when I use SetCursorPos, Hint show, but I need to show the Hint with out the cursor move on that Control. Can you please help me with this? Thank you in advance... by the way I'm using Delphi XE4
Among the really asked question is how to show the hint of a control that resides on another application (i am afraid without hook that application can not be done), the title is "Delphi - Activating the Hint from another control of Application".
First is first: That can be done without knowing what language the other app was done, but it is very complex to put it here (and i am not an expert on such way of coding, also i hate apps that work that way).
Second: The main idea is to hook the other application, search on Google some code of that apps, that can show you a rectangular hole square of the object the mouse is passing over, that application while doing it is iconized (i do not remember the name of it).
Waht such app does: As you move the mouse over the screen it overlays a rectangular over the control that mouse is over, then if you press the key to print screen, that small region is the only thing that goes to clipboard; on of such apps i saw had an extra funcion, they can move such controls if you press cursors on keyboard, also can hide/enable/disable such control... more, it can also make controls that are invisible to be visible, etc... i saw it working on my computer, and hey, for fun it is pretty and to DeBug or get extra things on some apps is also great (make some menĂºs to be visible and enabled and then can use such funtions).
Please, please, understand i am agaist piracy and also against using such apps to let code to be run... some apps need pay for letting some menus enabled, but they have the code there, no need to change EXE to have/use that menus; just using this kind of apps makes that limited apps to be unlimited (just enable or show hidden menus and voila).
Note: To unhide menus, mouse point is not needed to be over the app, can be anywhere and is not moved.
The idea i want to say is: Any app can move, alter any control on any other app (at least on Windows) that is running, so maybe there can be a way to show such hint.
In the past i had use such app (sorry i do not remember the name) for DeBug my own apps, so i do not need to recompile in such cases where something was wrongly hidden, also work with buttons, labels, texts, combos, memos, etc.
Now my small problem is: I just need exactly what title say, but i can not make it to work.
Must be:
Mouse position must be irrelevant (it also must be able to be outside the application)
Just when a button that has focus is pressed with keyboard (Space or Enter) or just after some code somewhere on my application, i want to show the Hint of a specific TEdit for a short period of time.
I did not get Hint to be shown; not unless mouse point is over such TEdit but i want/need mouse pointer to not be over it, neither it to jump to the TEdit.
Idea Conept for that Hint to be shown: After doing some code that changes something, show extra info associated.
Example:
A button with that loads a file using an open dialog, filename is put on a ReadOnly TEdit (so it let user copy the text, but not change it); i want extra info that i punt on .Hint of such TEdit to be shown inmediatly.
That hint use is for not overload window with a lot of fields (TLabels) for showing such file data.
Simple idea: such Hint shows TimeStamp and size of the selected file.
P.D.: Not much related (since i am trying with a normal plain text hint), but hints can also store a full HTML page and with 3rd party tools be shown as an HTMLhint, so they can show a lot info of that file (also its content, etc) in a web based format; as i say i first try with standard plain text hints.
In order to show hint programatically you need to call TApplications ActivateHint method to which you specify the position parameter.
http://docwiki.embarcadero.com/Libraries/XE3/en/Vcl.Forms.TApplication.ActivateHint
Based on position parameter Application automatically finds which controll is at that position and shows its hint.
NOTE: Position parameter screen coordinates in pixels and not your controll coordinates. So you will have to use ClientToScreen method to change your coordinates apropriately.
You can see simple example of how to use this here: https://stackoverflow.com/a/15031208/3636228
Now if you need to do this from another application then you will have to add some comunication mechanizm to these two application so that one could send a proper message to tell the other to show the hint at specific position. But this does require you to be able to change both applications.
EDIT: This works with VCL applications but I'm not sure if it would work with FireMonkey applications.

Can I have the build dialog in the center of the screen?

Ever since Delphi XE2 (or even before) the build dialog appears in the bottom right corner of the screen.
Because I'm a curious fellow I'd like to see what's going on.
But that's hard when it's way there in a corner.
If I move the dialog to the correct centered position the IDE does not register/remember this and keeps on putting in in the corner every time it compiles.
Is there a way/hack to make this dialog appear in the center of the screen?
You have enabled background compilation: Tools | Options | Environment Options | Background compilation.
The designers presumed that you did that because you did not want the compilation progress to disturb you, and stop you being able to see the editor window. The whole point of background compilation is for you to be able to carry on working in the IDE whilst compilation progresses. If the dialog was shown in the middle of the IDE window then you would not be able to see what you were working on.
If you disable background compilation then the dialog will appear in the centre of the monitor.

Using AutoHotKey to detect focus in Git Gui

I'm trying to write an AutoHotKey script that will activate my Git Gui window, refresh it, and put the focus in the commit-comment text box. Activating and refreshing are no problem, but I'm not having any success changing focus. AutoHotKey doesn't seem to be correctly detecting the child controls in the Git Gui window.
If I run AutoHotKey's Window Spy utility, switch to the Git Gui window, and put the mouse over the commit-comment text box, Window Spy shows the following output (abbreviated):
>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Git Gui (Tyler08) C:/svn/Tyler08
ahk_class TkTopLevel
>>>>>>>>>>>>( Mouse Position )<<<<<<<<<<<<<
On Screen: 808, 727 (less often used)
In Active Window: 816, 735
>>>>>>>>>( Now Under Mouse Cursor )<<<<<<<<
ClassNN: TkChild18
Text:
Color: 0xF0F0F0 (Blue=F0 Green=F0 Red=F0)
So it looks like the class name of that edit box is TkChild18, and I would expect to be able to write the following in my AutoHotKey script:
NumpadAdd::
ControlFocus, TkChild18, Git Gui (Tyler08) C:/svn/Tyler08
return
But when I start this script and then press Numpad +, nothing happens. I expected the focus to move to the commit-comment text box, but the focus doesn't change at all.
In trying to troubleshoot this, I built the following script based on the AutoHotKey docs for ControlGetFocus:
NumpadAdd::
ControlGetFocus, OutputVar, Git Gui (Tyler08) C:/svn/Tyler08
if ErrorLevel
MsgBox, The target window doesn't exist or none of its controls has input focus.
else
MsgBox, Control with focus = %OutputVar%
Now if I activate the Git Gui window and press Numpad +, AutoHotKey pops up a message box that says: "Control with focus = TkChild1". No matter where the focus is -- whether the focus is in the commit-comment text box, or in the diff pane, or in the "New Commit" or "Amend Last Commit" radio buttons, or in any of the buttons -- AutoHotKey always reports that the focus is TkChild1. This disagrees with Window Spy, which is able to see all the child windows (TkChild18, etc.)
The above script does work with at least some other apps (as long as I change the window title in the second line). It shows its "target window doesn't exist..." failure message if a WPF element has focus (e.g. the Output window in Visual Studio 2010) but it succeeds if a WinForms control has focus (e.g. VS2010's Properties grid). So I know I've got the right syntax for the ControlGetFocus command. I suspect that Git Gui is doing something strange with its child windows (it's built with the Tk framework, which may do something weird that AutoHotKey can't handle).
Anyone have any ideas on how I can get AutoHotKey to successfully change focus within the Git Gui window?
Using AutoHotKey Basic v1.0.48.00 and mSysGit version 1.7.3.1-preview20101002 on 64-bit Vista.
I suspect that Git Gui is doing something strange with its child windows (it's built with the Tk framework, which may do something weird that AutoHotKey can't handle).
I suspect you're right. Most of Autohotkey's commands are merely wrappers for MSFT Win32 api calls. In this case, ControlFocus probably just wraps SetFocus(). If the TK framework doesn't respond to normal windows messages such as WM_SETFOCUS then these won't work.
Your code fails on my computer too. I've tried for a half hour to find a workaround, with no luck other than hacks. Obviously you can just send TAB keypresses until your commit message editbox has focus, but this is unreliable since we cannot accurately check which control does have focus.
So, the best I could come up with is to just resort to sending a basic Click to the box. I tried ControlClick which would prevent mouse movement, but alas, it failed just like all the other Control commands. Ironically ControlGetPos works which allows this solution (otherwise if the Git Gui window is resized, a hardcoded coordinate would fail).
SetTitleMatchMode, 2 ;// allow partial window title matches
NumpadAdd::
WinActivate, Git Gui
ControlGetPos, control_x, control_y, , , TkChild18, Git Gui
CoordMode, Mouse, Screen
MouseGetPos, mouse_x, mouse_y ;// grab current mouse screen position
click_x := control_x + 5 ;// we'll click 5 pixels inside the control
click_y := control_y + 5
CoordMode, Mouse, Relative
Click %click_x%, %click_y% ;// click relative to active window (moves mouse)
CoordMode, Mouse, Screen
MouseMove, %mouse_x%, %mouse_y%, 0 ;// restore old mouse position
return

Zoom to full screen?

How to activate/use this feature in D2010 ?!?
I have checked Zoom to full screen in Tools > Option > Editor Option > Display clicked Ok button but nothing happened. Ok, i said to myself, let's see what the help has to say about this. I pressed F1 key, wait a little, help's coming up but as i have expected, it has no idea about this, ironically: the help didn't help. Google did find some old blog posts which provided some outdated information like double click on the editor tab or pressing F5 will do the thick. But, that's not the case, so i'm asking here maybe somebody has more information about this.
That option controls whether the code editor, when zoomed, will zoom to occupy the entire screen. If that option isn't set, then maximizing the edit window will leave space at the top of the screen for the main IDE application window. If you never maximize the editor window, then that setting has no effect. It might also only have an effect when you're using the "classic undocked" layout mode.

Resources