AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Statusbar mit getrennten hints?

Ein Thema von easteregg · begonnen am 12. Mär 2007 · letzter Beitrag vom 12. Mär 2007
Antwort Antwort
Benutzerbild von easteregg
easteregg

Registriert seit: 26. Mär 2005
174 Beiträge
 
#1

Statusbar mit getrennten hints?

  Alt 12. Mär 2007, 14:23
Heyho,

ich möchte meine mehrgeteilte Statusbar mit unterschiedlichen hints ausstatten.
allerdings bekomme ich das nicht hin, habs bis dato nur geschafft, einen globalen hint für die ganze bar zu setzen.

bei mir sieht das so aus

Delphi-Quellcode:
-------------------------------
| zeit | was passierte? | kb |
-------------------------------
und bei dem "kb" würde ich gerne als hint "bytes send" erstellen, für die anderen zwei soll es allerdings kein hint geben.
wie bekpomm ich sowas hin?


Danke schonmal für eure hilfe
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Statusbar mit getrennten hints?

  Alt 12. Mär 2007, 14:34
Ich würd ja im Ereignis onHint die Mausposition abfragen.

(Allerdings dürfte dann noch ein Problem übrig bleiben)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von easteregg
easteregg

Registriert seit: 26. Mär 2005
174 Beiträge
 
#3

Re: Statusbar mit getrennten hints?

  Alt 12. Mär 2007, 14:57
welches problem bleibt da übrig?
und hast du vlt. ne idee wie man das macht? weil wenn du das weist, bist du schneller im erklären, als ich im googlen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Statusbar mit getrennten hints?

  Alt 12. Mär 2007, 17:38
Hallo Richi,

so oder ähnlich sollte es funktionieren:

Delphi-Quellcode:
function GetPanelAt(sb: TStatusBar; x, y: Integer; var index: Integer): Boolean;
var
  r: TRect;
  pt: TPoint;
begin
  Result := not sb.SimplePanel;
  if Result then
  begin
    pt := Point(x, y);
    index := sb.Panels.Count;
    Result := False;
    repeat
      Dec(index);
      if index < 0 then
        Exit;
      sb.Perform(SB_GETRECT, index, Integer(@r));
      Result := PtInRect(r, pt);
    until Result;
  end;
end;

procedure TDemoForm.AppShowHint(var HintStr: string; var CanShow: boolean;
  var HintInfo: THintInfo);
var
  index: integer;
  sb: TStatusBar;
  pt: TPoint;
begin
  if (HintInfo.HintControl is TStatusBar) then
  begin
    sb := TStatusBar(HintInfo.HintControl);
    pt := sb.ScreenToClient(Mouse.CursorPos);
    if GetPanelAt(sb, pt.X, pt.Y, index) then
    begin
      HintStr := IntToStr(index);
      HintInfo.ReshowTimeout := 50;
    end;
  end;
end;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  Application.OnShowHint := AppShowHint;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 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