AGB  ·  Datenschutz  ·  Impressum  







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

Hint überschreiben

Ein Thema von Rainer Wolff · begonnen am 3. Aug 2010 · letzter Beitrag vom 4. Aug 2010
Antwort Antwort
blackfin
(Gast)

n/a Beiträge
 
#1

AW: Hint überschreiben

  Alt 3. Aug 2010, 13:25
Ah, stimmt...er hat recht.
Das Mouseover funktioniert nicht mehr, sobald man Hint überschreibt.
Wenn man im Constructor die Property mit inherited überschreibt, gehts auch nicht.
Mal überlegen....
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.655 Beiträge
 
Delphi 12 Athens
 
#2

AW: Hint überschreiben

  Alt 3. Aug 2010, 13:57
Funktioniert es so?
Delphi-Quellcode:
type
  TmyHintEdit = class(TEdit)
  private
    function GetHint: string;
    procedure SetHint(const value: string);
  published
    property Hint: string read GetHint write SetHint;
  end;

...

function TmyHintEdit.GetHint: string;
begin
  Result := inherited Hint;
end;

procedure TmyHintEdit.SetHint(const value: string);
begin
  if not (csDesigning in ComponentState) then
    inherited Hint := value + ' Test'
  else
    inherited Hint := value;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Hint überschreiben

  Alt 3. Aug 2010, 14:15
Wie ich die VCL kenne wird sicherlich innerhalb der Klasse auf den Hint nur über die private FHint-Variable verwiesen.
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#4

AW: Hint überschreiben

  Alt 3. Aug 2010, 15:00
Jup, sieht ganz so aus
  Mit Zitat antworten Zitat
Benutzerbild von guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#5

AW: Hint überschreiben

  Alt 3. Aug 2010, 15:12
Beim MouseEnter Alten Hint merken, ergänzen
Beim MouseLeave Alten Hint zurückschreiben
Oder, wenn du z.B. beim überfahren der Items einer Listbox die Caption des Items als Hint haben möchtest :
Delphi-Quellcode:
procedure TForm1.ListBoxMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  item : integer;
  HS : string;
  LB : TListBox;
begin
  LB := Sender as TListbox;
  item := LB.itemAtpos(Point(x, y), true);
  if item >= 0 then
  begin
    HS := LB.Items.Strings[Item];
    if HS <> LB.Hint then
    begin
      LB.Hint := HS;
      Application.ActivateHint(Point(x, y));
    end;
  end;
end;
Lässt sich sicherlich auch auf andere Controls ausweiten ohne eine neue Klasse abzuleiten
Glückauf

Geändert von guinnes ( 3. Aug 2010 um 15:16 Uhr)
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Hint überschreiben

  Alt 3. Aug 2010, 19:12
Beim MouseEnter Alten Hint merken, ergänzen
Beim MouseLeave Alten Hint zurückschreiben
Das wars nun gar nicht, was ich wollte.
Inzwischen hab ich meinen Code in den Komponenten noch etwas hin und her geschoben und mache es so: Alle Komponenten, für die ich das ganze brauche (Abgeleitet von Shape, Label, Bitmap, Edit...) haben sowieso ein gemeinsames Interface.

Ich verwende ein TApplicationEvents-Objekt und in OnShowHint:
Delphi-Quellcode:
procedure TMainWindow.ApplicationEvents1ShowHint(var HintStr: string;
  var CanShow: Boolean; var HintInfo: THintInfo);
begin
  if Supports(HintInfo.HintControl, IMyInterface) then
  begin
    HintStr:=Hintstr+' '+(HintInfo.HintControl as IMyInterface).myZusatzHint;
  end;
end;
Aber ich wollte das ganze halt am liebsten in die Komponenten rein schieben, damit ich nicht in jedem Projekt im Hauptformular an den zitierten Code denken muss.
Da vermute ich jetzt einfach, dass es mit dem Hint überschreiben nicht geht, wenn nicht noch jemand eine geniale Idee hat.

Gruß Rainer

Geändert von mkinzler ( 3. Aug 2010 um 20:20 Uhr) Grund: Code-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Hint überschreiben

  Alt 3. Aug 2010, 19:25
Wieso muß man eigentlich einen eigenen Hint-Property erstellen?

Die VCL kennt nur "ihr" Property und nutzt auch dieses für die Anzeige.
Was sie nicht kennt, das kann die VCL nicht nutzen.
Ein Therapeut entspricht 1024 Gigapeut.
  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 06:20 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 by Thomas Breitkreuz