AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Spezielles "Hint"(Window) für nur ein bestimmtes Control
Thema durchsuchen
Ansicht
Themen-Optionen

Spezielles "Hint"(Window) für nur ein bestimmtes Control

Ein Thema von DataCool · begonnen am 25. Jan 2007 · letzter Beitrag vom 8. Apr 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#1

Spezielles "Hint"(Window) für nur ein bestimmtes C

  Alt 25. Jan 2007, 12:44
Hi,

ich habe gerade das Problem, das ich bei einem Treeview(und nur bei diesen),
ein spezieles Hint einblenden möchte(mehrere Zeilen und 2 Images).

Erst habe gedacht ich schreib mir eine eigene Klasse die ich von THintWindow ableite.
^^ Gehe ich so vor dann habe ich diese Art von Hint überall in der App oder gar nicht.

Dann habe ich den Hint durch eine Form simuliert, dabei stosse ich aber auf das Problem
das der Hint aber schon nach ein paar Millisekunden bei OnMouseMove angezeigt wird.
Ich hätte es gerne so wie es normal ist nach ca. 1 sek. dann erst einblenden.

Hat jemand eine Idee oder einen Ansatz wie ich zu meinem Ziel kommen könnte ?

Greetz

DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.170 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 25. Jan 2007, 19:40
Hallo DataCool,

ich hatte da mal was bei den Schweizern gefunden.
Der Autor ist Horst Kniebusch.
http://www.swissdelphicenter.ch/de/p...de.php?id=1390
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 25. Jan 2007, 21:30
Hi Jürgen,

danke für den Hinweis, aber die Klasse THintWindow zu überschreiben/abzuleiten
hatte ich oben ja schon als Möglichkeit beschrieben!

Bei der Lösung ist das Problem das iich dieses spezielle HintWindow dann bei
jeder Komponente habe und nicht nu beim dem Treeview wo ich es haben möchte.

Greetz DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 25. Jan 2007, 22:12
nun du könntest im OnMouseMove oder so einen Timer mit einer Sekunde wartezeit auslösen und den im Timer-Event wieder deaktivieren und dein Hint-Form anzeigen.
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 25. Jan 2007, 22:31
Hi,

der Ansatz hat was

Hatte gerade aus eigener Idee folgendes probiert :

Delphi-Quellcode:
// TreeView XYZ OnMouseMove
Var Node : TTreeNode;
begin
  Node := tv_XYZ.GetNodeAt(x,y);
  if Node.Index <> iLastTvIdx then begin
    dtLastTvMousMove := now;
    iLastTvIdx := node.Index;
    HideHintWindow;
    exit;
  end
  else begin
    if (dtLastTvMousMove + (650/24/60/60/1000)) >= now then exit;
  end;
  ShowHintWindow;
^^ Funktioniert wunderbar, nur bewegt man die Maus über einen node und bewegt die MMaus dann nicht mehr wird kein Hint eingeblendet.
Werde wohl Deinen Vorschlag mit dem Timer realisieren.
Obwohl ich Timer Lösungen immer unschön finde, aber hier gehts wohl nicht anderes.

Danke und Greetz

DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 26. Jan 2007, 13:01
Hi,

mit der Timer-lösung kommt man zum gewünschtem Ergebnis !

Greetz DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 26. Jan 2007, 14:21
Zitat von DataCool:
Erst habe gedacht ich schreib mir eine eigene Klasse die ich von THintWindow ableite.
^^ Gehe ich so vor dann habe ich diese Art von Hint überall in der App oder gar nicht.
Kannst du das nicht mit TApplication.Hint und TApplication.OnHint beeinflussen und flexibel handhaben?

In einer OnHint-Behandlung könntest du über einen speziellen Short- oder LongHint deines TreeViews eben diesen als "Hint aufrufend" identifizieren und entsprechend reagieren.
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 26. Jan 2007, 17:37
Hi,

das könnte ich zwar machen,
aber dann habe ich das selbe Problem wie beim OnMouseMove mit Zeitberechnung,
ich möhte ja einen unterschiedlihen Hint abhängig vom aktuellem TreeItem.

Bis jetzt ist die Timer Variante wirklich die beste Lösung.

Greetz DataCool
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.291 Beiträge
 
Delphi 12 Athens
 
#9

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 26. Jan 2007, 17:44
Und wie wäre es, wenn du entsprechend über OnMouseOver und OnMouseLeave (oder so) deinen Hint nur initialisierts, wenn die Maus über der TreeView ist und beim Verlassen dann wieder den "Originalen".


Also einfach nur HintWindowClass entsprechende der aktiven Controls setzt.


Die Verwaltung und speziell die Zeiten sollten dann ja auch wieder passen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
IngoD7

Registriert seit: 16. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Spezielles "Hint"(Window) für nur ein bestimmt

  Alt 26. Jan 2007, 17:57
Zitat von DataCool:
ich möhte ja einen unterschiedlihen Hint abhängig vom aktuellem TreeItem.

Okay, aber das ist natürlich auch eine neue Aussage. Bisher ging es nur um den Hint des Treeviews, der unterschiedlich zu den Hints der anderen Komponenten dargestellt werden sollte.

Zitat:
(...)
das ich bei einem Treeview(und nur bei diesen),
ein spezieles Hint einblenden möchte
(...)
Bei der Lösung ist das Problem das iich dieses spezielle HintWindow dann bei
jeder Komponente habe und nicht nu beim dem Treeview wo ich es haben möchte.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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:33 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