Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Balloon-Hints die 2548. Ausgabe (https://www.delphipraxis.net/55166-balloon-hints-die-2548-ausgabe.html)

Corelgott 17. Okt 2005 16:30


Balloon-Hints die 2548. Ausgabe
 
Hi @ all,

ich suche mir nun schon seit einiger zeit dir augen rot...

und zwar suche ich nen balloon-hint...
Keinen Balloon-Tip und auch keinen Balloon-Tray-Tip...

Um es an einem Bsp. zu machen ich suche so was, was XP anzeigt, wenn man sich bei windows einloggen will und caps-log an ist...
Dann sagt es bescheid, ohne den fokus auf die Meldung zu setzen...

Genau das will ich ^^...

!ABER! ohne Komponente! (das teil von JEDI habe ich schon gefunden... aber ich würde das gerne selbst machen!)

hat da wer ein tut für mich!?

thx & cya
Corelgott

Luckie 17. Okt 2005 16:34

Re: Balloon-Hints die 2548. Ausgabe
 
In meinen Win32 API Tutorials sollte es ein Kapitel darüber geben.

Corelgott 21. Nov 2005 07:30

Re: Balloon-Hints die 2548. Ausgabe
 
Hi @ all,

thx Lucky für die antwort;

nach langem suchen und wälzen des Tut (nette sachen drin; aber nur balloon tool-tips; nicht balloon-hints)
habe ich immer noch keine lösung für mein problem.

Wenn mich da vielleich nochmal wer in richtung lösung schubsen könnte?
Bzw. hat noch wer nen tip für mich?

thx & cya
Corelgott

MathiasSimmack 21. Nov 2005 08:23

Re: Balloon-Hints die 2548. Ausgabe
 
Wenn ich das richtig sehe, nutzt Microsoft unter XP die "Edit_ShowBalloonTip"-Funktion. Die hat allerdings den Nachteil, dass sie nur unter XP und nur mit Manifest funktioniert:
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit1Enter(Sender: TObject);
  private
    EditBalloonTip : TEditBalloonTip;
    procedure GetVkCapitalState;
  end;

//
// ...
//

procedure TForm1.FormCreate(Sender: TObject);
begin
  ZeroMemory(@EditBalloonTip, sizeof(EditBalloonTip));
  EditBalloonTip.cbStruct := sizeof(EditBalloonTip);
  EditBalloonTip.pszTitle := 'Feststelltaste ist aktiviert';
  EditBalloonTip.pszText := 'Das Kennwort wird eventuell falsch ' +
    'eingegeben, wenn die Feststelltaste aktiviert ist.' + #13#10#13#10 +
    'Sie sollten die Feststelltaste deaktivieren, bevor Sie ein ' +
    'Kennwort eingeben.';
  EditBalloonTip.ttiIcon := TTI_WARNING;
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (Key = VK_CAPITAL) then
    self.GetVkCapitalState;
end;

procedure TForm1.Edit1Enter(Sender: TObject);
begin
  self.GetVkCapitalState;
end;

procedure TForm1.GetVkCapitalState;
var
  kbState : TKeyboardState;
begin
  if not GetKeyboardState(kbState) then exit;

  if kbState[VK_CAPITAL] = 1 then
    Edit_ShowBalloonTip(self.Edit1.Handle, @EditBalloonTip)
  else
    Edit_HideBalloonTip(self.Edit1.Handle);
end;
Zum Testen brauchst du die "CommCtrl_Fragment.pas"-Unit aus den Tutorials und, wie schon erwähnt, ein Manifest (als Ressource oder extern als "*.exe.manifest"-Datei). Die o.g. API-Funktion wird übrigens im Kapitel über Eingabefelder besprochen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:51 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