Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Вниз

Почему хинт не появляется!   Найти похожие ветки 

 
Алёна   (2003-11-07 14:37) [0]

Вот в ФАКе прочитала чтобы хинт появился нужно Application.ActivateHint(Point(50,50)) написать. Пишу, ничерта не получается. Помогите плиз разобратся.


 
han-bratan   (2003-11-07 14:42) [1]

Тебе нужно принудительно светить Hint или просто чтоб надо control"ом светиласт подсказка при наведении на него мыши?


 
Алёна   (2003-11-07 14:45) [2]

2 han-bratan
Принудительно, и чтобы этот хинт за мышкой бегал. Кажется я правильно выразилась.


 
Алёна   (2003-11-07 15:05) [3]

Может кто ответит? А то очень нужно.


 
Vemer   (2003-11-07 18:12) [4]

ShowHint -> true у кнопки, формы и т. д.


 
Игорь Шевченко   (2003-11-07 18:27) [5]

procedure TForm1.Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var
APoint : TPoint;
begin
APoint := Edit1.ClientToScreen (Point(X,Y));
Application.ActivateHint(APoint);
end;


 
Игорь Шевченко   (2003-11-07 18:34) [6]

У Control"а должно быть установлено в True свойство ShowHint, разумеется


 
Floppy   (2003-11-07 18:41) [7]

И, что еще более естесственно задан сам ХИНТ (strings)


 
Алёна   (2003-11-08 06:55) [8]

Спасибо всем и особенно Игорь Шевченко ©, но моя задача была чуть по другому поставлена. Мне не на control"ом должен хинт появлятся, а влюбом месте куда мышка бегает, даже если мышь за формой, то есть и на десктопе. Наверно все правильно сказала и вы меня поняли, помогите плиз!!!


 
WithOut Any ...   (2003-11-08 08:29) [9]

А когда же будет работать программа и пользователь, если всюду сплошной хинт (даже вне формы)?


 
Алёна   (2003-11-08 16:04) [10]

Блин как ещё объяснить, я со своей проги тащу текст drag&drop"ом в Word, и когда я тащу этот текст чтобы под мышкой хинт тоже тащился, этот хинт описывает этот текст. Понятно??? ПОЖАЛУЙСТА помогите!!! Впервые села за серьёзную программу.


 
Игорь Шевченко   (2003-11-08 19:07) [11]

Кричать не надо.

Про DragCursor читать.


 
Алёна   (2003-11-09 05:33) [12]

2 Игорь Шевченко

Извините что раскричалась. Спасибо за совет, но где именно нужно прочитать про этот DragCursor???


 
Dmitry   (2003-11-09 06:15) [13]

Из чего ты его тащишь, каким образом вставляешь, напиши поподробнее.


 
Dmitry   (2003-11-09 06:23) [14]

Ну где ты спишь что-ли?
Рано еще, начинающие программисты ложаться спать в 7:00.


 
WithOut Any ...   (2003-11-09 08:46) [15]

How to show a hint that follows the mouse and that hides properly...
This is how to use it :

evtTrack: tagTRACKMOUSEEVENT;
with evtTrack do
begin
cbSize := sizeOf(tagTRACKMOUSEEVENT);
dwFlags := TME_LEAVE;
hwndTrack := form1.Handle;
dwHoverTime := HOVER_DEFAULT;
end;
if not isTracking then
begin
if not TrackMouseEvent(evtTrack) then
MessageDlg("Sorry, I" + #39 + "m not in the mood of tracking"

+ #13 + #10 + "your stupid events.", mtError, [mbOK], 0);
isTracking := True;
end;

The TME_LEAVE flag asks windows to post us WM_MOUSELEAVE message. We
keep track with the isTracking := True that we have already asked
windows. I don"t know if it matters. So next time the cursor leaves
the form we get the message. We handle it with the following proc :
private
{ Private declarations }
procedure MouseLeavesTheForm(var m: TMessage); message
WM_MOUSELEAVE;
procedure TForm1.MouseLeavesTheForm(var m: TMessage);
begin
inherited;
hwHint.ReleaseHandle; //we release the hint here
isTracking := False;
m.Result := 1;
end;

Sorry, but I don"t know if I have to call inherited and if I shall
tell with m.Result := 1 that I handled the message. Here we are. The
first problem is solved.
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
var
pt: TPoint;
sText: string;
begin
if not isTracking then
begin
if not TrackMouseEvent(evtTrack) then
MessageDlg("Sorry, I" + #39 + "m not in the mood of
tracking"
+ #13 + #10 + "your stupid events.", mtError, [mbOK],
0);
isTracking := True;
end;
getCursorPos(pt);
sText := Format("%d,%d", [pt.x, pt.y]);
hwHint.ActivateHint(Rect(pt.x + 10, pt.y + 10, pt.x +
hwHint.Canvas.TextWidth(sText) + 19,
pt.y + hwHint.Canvas.TextHeight(sText) + 10), sText);
UpdateTracking;
end;
You may have noticed the UpdateTracking procedure ? This is
something I snipped from the method used is speedbuttons to look if
the cursor is over the speedbutton. This will help us to release the
hint whenever the mouse is not over the nude background but still
inside of the form.
//check if the cursor is no longer over the background
//e.g.. he is over a button or something
procedure TForm1.UpdateTracking;
var
P: TPoint;
begin
GetCursorPos(P);
if not (FindDragTarget(P, True) = Self) then
Perform(WM_MOUSELEAVE, 0, 0);
end;

When the cursor leaves the background we post us a WM_MOUSELEAVE
message, the speedbutton is using a CM_MOUSELEAVE. That way the hint
is working properly over the other controls.
Unfortunately the MSDN help file says : not for windows 95. This is
sad because many of you are still using it I suppose. The work
around is to use a TTimer, but this is not very clean. Another
solution would be to use the SetCapture function to capture mouse
events even when the mouse is not over the form.


 
Алёна   (2003-11-09 15:27) [16]

2 WithOut Any ... ©

Вам конечно большое спасибо за предоставленную инфу. Ваша прога работает только на форме, но как я уже сказала я тащу мышкой текст с Edit"a моей проги в Word. И в это время я выхожу из своей формы, ну как мне сделать так чтобы и за формой хинт бегал за мышкой??? Кстати откуда Вы взяли ту инфу, если можно дайте адрес.
ПОМОГИТЕ плиз...

2 Dmitry

Я не спала, я уже на работе была!!! А насчёт уточнения моей проги смотрите выше где я написала WithOut Any ...


 
WithOut Any ...   (2003-11-09 15:36) [17]

<Ваша прога работает только на форме>
Прога не моя. www.delphi3000.com А там в разделах разобраться не составит особого труда


 
Алёна   (2003-11-09 16:39) [18]

В каком смысле разобраться, Вы имеете в виду что можно сделать так что и за пределами формы будет работать???


 
WithOut Any ...   (2003-11-09 17:01) [19]

Я имел в виду найти этот топик и прочитать


 
ricks   (2003-11-09 18:02) [20]

А может сделать еще одну маленькую форму, без border"a и, например, по таймеру сделать чтобы она двигалась за мышой, а на форме label или еще что-то поставиь.....


 
Игорь Шевченко   (2003-11-09 22:33) [21]

1) Свое окошко (без border), c Parent=HWND_DESKTOP
2) SetCapture в момент начала таскания и показ этого окошка
3) WM_MOUSEMOVE (если нажата кнопка) в процессе таскания с изменением позиции окошка
4) ReleaseCapture и уничтожение окошка в момент отпускания кнопки мыши

5) Может, не стоит браться ? :)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.013 c
3-65736
man
2003-11-03 11:49
2003.11.20
помогите с селектом


1-65828
AlexanderSK
2003-11-06 14:44
2003.11.20
Проблемма с SaveDialog.


3-65797
AlexenderG
2003-10-30 12:53
2003.11.20
У кого есть DsgnIntf.pas и DsgnIntf.dcu? Пожалуйста очень надо!!!


1-65859
Ricks
2003-11-09 11:59
2003.11.20
Office11 или ExpressBars Suite v5


1-65912
Alexious
2003-11-08 13:53
2003.11.20
Закрытие формы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский