Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Hint-Geschehen (https://www.delphipraxis.net/3080-hint-geschehen.html)

Haegar 21. Feb 2003 21:11


Hint-Geschehen
 
also ich hab folgendes in meinem quelltext stehen!
Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
 if (Button=mbright) then
  hint:=IntToStr(X)+','+IntToStr(Y);
end;
im FormCreate hab ich Application.HintHidePause(1000) sowie Application.HintPause(0) meinem gebrauch entsprechend angepasst.
nun is aber folgendes zu beobachten:
- beim ersten drücken der rechten Maustaste passiert nix, erst wenn ich maus um 1 Pixel bewege
- auch wenn ich linke Maustaste drücke erscheint der Hint (mit den Werten, die durch letzten rechtsclick angenommen wurden)
alles verstanden?

kann mir einer sagen warum det so is? :?
ciao haegar

e-dancer 21. Feb 2003 22:17

benutz doch einfach kein mousedown!

stattdessen kannst du ja getcurserpos() oder
mouse.x
mouse.y benutzten!!!!!

mfg e-dacner

City Light 21. Feb 2003 22:19

Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  CursorPos: TPoint;
begin
  GetCursorPos(CursorPos);
  hint := Format('%d, %d', [CursorPos.X, CursorPos.Y]);
end;
Gruß Tino

e-dancer 21. Feb 2003 22:25

warum mousedown??

nur unnötige ram verschwendung (auch wenn nur minimal)

mfg e-dancer

City Light 21. Feb 2003 22:29

Ok Hab mich vertan Hab das nur schnell rüber gezogen aus der Unit natürlich gehört der Befehl in OnKlick Ereignis

danke für die schnelle aber koreckte antwort e-dancer :wink:

gruß Tino

Haegar 21. Feb 2003 22:37

aber wie sag ich dem das er das auf knopfdruck der rechten maustaste machen soll, er soll es nur dann anzeigen, nicht immer???

e-dancer 21. Feb 2003 22:40

dann hast du recht....dann ist es sinnvoller mousedown zu benutzen!

Haegar 21. Feb 2003 22:43

und warum passiert dann das was ich oben bemängelt habe?

e-dancer 21. Feb 2003 23:01

wenn du hinklickst und die maus nicht bewegst, wird es auch angezeigt(nach ner sekunde oder so).....das problem ist bei hint!!

ein bsp. wenn du ne toolbar hast und über ein button bei ihr stehenbleibst kommt hint auch nicht sofort, sonder erst nach ner sekunde oder so!!!

es wird dir wohl nichts übrigbleiben als api(um zu schauen welcher maustaste gedrückt wurde) und formclick zu benutzen

e-dancer 21. Feb 2003 23:01

wenn du hinklickst und die maus nicht bewegst, wird es auch angezeigt(nach ner sekunde oder so).....das problem ist bei hint!!

ein bsp. wenn du ne toolbar hast und über ein button bei ihr stehenbleibst kommt hint auch nicht sofort, sonder erst nach ner sekunde oder so!!!

es wird dir wohl nichts übrigbleiben als api(um zu schauen welcher maustaste gedrückt wurde) und formclick zu benutzen

Haegar 21. Feb 2003 23:27

ich habs doch probiert, kann ich warten wie ich will. erst wenn ich ein winziges stückchen bewege kommt der hint (ist nur beim ersten mal so).
und ausserdem habe ich doch mit application.HintPause:=0; gesagt, das er den hint nach 0ms anzeigen soll (nicht erst warten); das geht ja auch, aber eben erst ab 2. drücken :?

naja is ja halb so wild! das is ja das geringere problem, das ander is Thread: undo bei canvas-ereigenissen. das wär mir erstmal wichtiger. :D

trotzdem danke
ciao haegar


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz