Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TabSheet Hint funktioniert nicht !? (https://www.delphipraxis.net/97988-tabsheet-hint-funktioniert-nicht.html)

delphipitti 20. Aug 2007 10:24


TabSheet Hint funktioniert nicht !?
 
Hallo miteinander,

ich habe mir einen Webbrowser mit Multitabs gebaut und nutze dazu ein PageControl sowie Tabsheets.

Die Captions der Tabsheets schneide ich nach 15 Buchstaben ab - aus Designgründen. Nun möchte ich den Rest des Captions (b.w. der geöffneten Seite) gern im Hint anzeigen lassen - so wie beim IE 7 , also beim Mausdrüber soll der Rest der Caption erscheinen.

Nur klappt das bei mir gar nicht - selbst ein einfaches Hint eines Tabsheets zeigt er nicht an / was mache ich falsch !?

Viele Grüße, delphipitti...

Andidreas 20. Aug 2007 10:37

Re: TabSheet Hint funktioniert nicht !?
 
hast du etwas source code???


normalerweise ist es ja ganz einfach...
hier mal ein bischen code von mir:

Delphi-Quellcode:
  pagectrl_test.Pages[0].Hint := 'Test';
  Pagectrl_test.Pages[0].ShowHint := True;

delphipitti 20. Aug 2007 10:42

Re: TabSheet Hint funktioniert nicht !?
 
Also momentan mach ich es so:

Delphi-Quellcode:
PageControl.ActivePage.Caption:= Copy(PrevBrows.OleObject.Document.Title,0,15)+ '...';
PageControl.ActivePage.Hint:= PrevBrows.OleObject.Document.Title;
PageControl.ActivePage.ShowHint:=true;

Andidreas 20. Aug 2007 11:54

Re: TabSheet Hint funktioniert nicht !?
 
mit der von dir beschriebenen variante gehts bei mir auch nicht...

warum machst dus nicht so wie ich in meinem beispiel???


bzw. probiers halt mal so

Delphi-Quellcode:
i := pagectrl_test.ActivePageIndex;
pagectrl_desadv.Pages[i].Hint := PrevBrows.OleObject.Document.Title;
pagectrl_desadv.Pages[i].ShowHint := True;

delphipitti 20. Aug 2007 12:37

Re: TabSheet Hint funktioniert nicht !?
 
Zitat:

Zitat von Andidreas
Delphi-Quellcode:
i := pagectrl_test.ActivePageIndex;
pagectrl_desadv.Pages[i].Hint := PrevBrows.OleObject.Document.Title;
pagectrl_desadv.Pages[i].ShowHint := True;

Dat jeht leider auch nich ;(

Ich habe jetzt schon so viel probiert - aber ich bekomme das nicht hin ...

marabu 20. Aug 2007 13:37

Re: TabSheet Hint funktioniert nicht !?
 
Hallo Pitti,

wäre es nicht interessanter die Caption eines BrowserTabs mit einer anderen Information aufwarten zu lassen? Eine verkürzte Ausgabe des URL ist bei dir doch redundant:

Delphi-Quellcode:
procedure TDemoForm.WebBrowserDocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  with pDisp as IWebBrowser2 do
  begin
    PageControl.ActivePage.Caption := LocationName;
    // PageControl.ActivePage.Hint := URL;
    // Hint beim TabSheet macht nur Sinn, wenn der WebBrowser
    // nicht das ganze TabSheet abdeckt, aber genau das ist
    // der Normalfall bei mir...
    with Document as IHTMLDocument4 do
      Focus;
  end;
end;
Den Hint würde ich nicht über ein Hint-Fenster anzeigen wollen. Ich würde stattdessen einen StatusBar mit AutoHint = True verwenden.

Grüße vom marabu

delphipitti 20. Aug 2007 18:13

Re: TabSheet Hint funktioniert nicht !?
 
Zitat:

Zitat von marabu
Hallo Pitti,

wäre es nicht interessanter die Caption eines BrowserTabs mit einer anderen Information aufwarten zu lassen? Eine verkürzte Ausgabe des URL ist bei dir doch redundant:

Probier das mal bei ner ebay-seite -> mächtig viel Info's ...

Ich will aber nur eine kurze Info im Caption des Tab (so das man in etwa weiß was los ist) und beim drüberfahren die gesamte Info!

Eine Statusbar nützt mir nix -> runterschauen iss nich gut ;)

Ich habe es schon mit den LMD-Hint-Kombos probiert - die flakert aber zu viel / und kann nur die aktive ausgeben, nicht eine unaktive :(

Wie könnte ich es sonst noch machen !?

marabu 20. Aug 2007 19:03

Re: TabSheet Hint funktioniert nicht !?
 
Hallo,

Zitat:

Zitat von delphipitti
... Probier das mal bei ner ebay-seite -> mächtig viel Info's ...

Kürzen muss sein, keine Frage - seit 1789.

Zitat:

Zitat von delphipitti
... Ich will aber nur eine kurze Info im Caption des Tab (so das man in etwa weiß was los ist) und beim drüberfahren die gesamte Info!...

So geht es:

Delphi-Quellcode:
procedure TDemoForm.FormCreate(Sender: TObject);
begin
  //  ...
  Application.OnShowHint := AppShowHint;
end;

procedure TDemoForm.AppShowHint(var HintStr: string; var CanShow: boolean;
  var HintInfo: THintInfo);
var
  index: integer;
  pc: TPageControl;
  wb: OleVariant;
  pt: TPoint;
begin
  if (hintinfo.HintControl is TPageControl) then
  begin
    pc := TPageControl(HintInfo.HintControl);
    pt := pc.ScreenToClient(Mouse.CursorPos);
    index := pc.IndexOfTabAt(pt.X, pt.Y);
    if index >= 0 then
    begin
      wb := TWebBrowser(PageControl.Pages[index].Controls[0]).OleObject;
      HintStr := wb.Document.Title;
    end;
    HintInfo.ReshowTimeout := 50;
  end;
end;
Zitat:

Zitat von delphipitti
... Eine Statusbar nützt mir nix -> runterschauen iss nich gut ...

Hier liegt ein Missverständnis vor: In die Statusleiste verbanne ich den URL, denn der soll nicht als gelbe Krankheit auf meinem WebBrowser flattern.

Freundliche Grüße

delphipitti 28. Aug 2007 09:41

Re: TabSheet Hint funktioniert nicht !?
 
mmh - das geht trotzdem nicht ....

Ich glaube ich lasse es sein - ich bastel hier schon seit Stunden an dieser einen Sache, die einfach nicht werden will...

Naja, dann erstmal danke für die Antworten - und wenn jemand was einfällt :coder2: mal melden ...

Tschüüü

EProm 4. Sep 2007 14:39

Re: TabSheet Hint funktioniert nicht !?
 
Hallo


Hast Du Pagecontrol.ShowHint auf True gesetzt? Das wäre für die von marabu genannte Lösung wichtig.



Gruß,
EP.


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