Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Infobox oder so? (https://www.delphipraxis.net/85921-infobox-oder-so.html)

fr0g 6. Feb 2007 23:34


Infobox oder so?
 
Wenn man Programm hat ist es ja of so das wenn man über ein button oder so geht ein kurze Erläuterung erscheint mit dem was passiert wenn man da rauf klickt oder so.

Quasi eine Art PopUp. Aber gibts da keine besseren Varianten weil in einem Popup kommen ja keine ganzen Texte.

Hoffe auf schnelle Antwort.


mfg fr0g

Blackheart 6. Feb 2007 23:41

Re: Infobox oder so?
 
Delphi-Quellcode:
procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  Button1.Hint:='Text'+#13#10+'Noch Mehr Text'+#13#10+'Viel Mehr Text';
end;

ErazerZ 6. Feb 2007 23:42

Re: Infobox oder so?
 
Neues Formular? Oder vielleicht Balloon Tooltips.

fr0g 6. Feb 2007 23:54

Re: Infobox oder so?
 
das mit dem .hint funktioniert nicht. Da zeigt er mir nix an. War aber eine gute Idee. Und sowas wie Balloon Tooltips suche ich. Haargenau sowas! Haste da was?

mfg fr0g

Blackheart 6. Feb 2007 23:55

Re: Infobox oder so?
 
ShowHint auf True

fr0g 7. Feb 2007 00:06

Re: Infobox oder so?
 
Manchmal sieht man den Wald vor lauter Bäume nicht.


VIELEN DANK!

ErazerZ 7. Feb 2007 00:13

Re: Infobox oder so?
 
Delphi-Quellcode:
uses CommCtrl;

const
  TTS_BALLOON    = $40;
  TTI_NONE       = 0;
  TTI_INFO       = 1;
  TTI_WARNING    = 2;
  TTI_ERROR      = 3;
  TTM_SETTITLEA  = WM_USER + 32;

procedure SetHint(Handle: hWnd; dwIconType: DWORD; lpText, lpTitle: PChar; dwFlags: DWORD = TTS_BALLOON);
var
  TI: TToolInfo;
  trRect: TRect;
  hHint: THandle;
begin
  if (Handle <> 0) and (GetClientRect(Handle, trRect)) then
  begin
    hHint := CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, nil, TTS_NOPREFIX or WS_POPUP or dwFlags,
                            Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),
                            Handle, 0, hInstance, nil);
    SetWindowPos(hHint, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
    ZeroMemory(@TI, sizeof(TToolInfo));
    with TI do
    begin
      cbSize := sizeof(TToolInfo);
      hwnd := Handle;
      uId := Handle;
      hInst := hInstance;
      uFlags := TTF_SUBCLASS or TTF_IDISHWND;
      Rect := trRect;
      lpszText := lpText;
    end;
    SendMessage(hHint, TTM_ADDTOOL, 0, LPARAM(@TI));
    SendMessage(hHint, TTM_SETTITLEA, dwIconType, LPARAM(PChar(lpTitle)));
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SetHint(Button1.Handle, TTI_INFO, 'My Text ...', 'Info');
end;

fLaSh11 6. Apr 2007 22:20

Re: Infobox oder so?
 
Dieser Balloonhint kommt ja erst beim MouseOnMove. Wie kann ich ihn so kreieren, dass er sofort aufpoppt, und sich vllt. nach 2 Sekunden wieder schließt?

Mackhack 7. Apr 2007 18:24

Re: Infobox oder so?
 
Warum hat Erazer denn bei GetClientRect 2 Argumente uebergeben? Ich dachte das hat keine Parameter?

bitsetter 7. Apr 2007 20:23

Re: Infobox oder so?
 
Zitat:

Zitat von Mackhack
Warum hat Erazer denn bei GetClientRect 2 Argumente uebergeben? Ich dachte das hat keine Parameter?

Doch bei
Delphi-Quellcode:
windows.GetClientRect()
schon.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 Uhr.

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