AGB  ·  Datenschutz  ·  Impressum  







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

Hint spezieller Controls in Statuszeile

Ein Thema von oki · begonnen am 21. Okt 2003 · letzter Beitrag vom 22. Okt 2003
Antwort Antwort
Seite 1 von 2  1 2      
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#1

Hint spezieller Controls in Statuszeile

  Alt 21. Okt 2003, 11:02
Hi Leute,

eigentlich ist das so'ne popelige Sache, dass ich mich gar nicht traue zu Fragen. Aber bevor ich lange rumspiele und wichtige Sachen nicht schaffe frag ich lieber.

Problem:

Ich habe mehrere SpeedButton, deren Hint ich in einer Statuszeile (oder sonst wo) anzeigen möchte. Weitere Controls meines Formulars sollen ihren Hint in gewohnter Form anzeigen.

Lösung:

Nun kann ich dem TApplication.OnHint - Ereignes natürlich eine neue Procedur zuweisen. Kein Thema.

in dieser Procedure mache ich jetzt folgendes:

Delphi-Quellcode:
procedure TFahrzEinstForm.ShowSecureButtonHint(Sender: TObject);
begin
  IF Sender is TSpeedButton then begin
    IF ((Sender as TSpeedButton) = SpeedButton28) or
       ((Sender as TSpeedButton) = SpeedButton29) or
       ((Sender as TSpeedButton) = SpeedButton30) or
       ((Sender as TSpeedButton) = SpeedButton31) or
       ((Sender as TSpeedButton) = SpeedButton38) or
       ((Sender as TSpeedButton) = SpeedButton39) then begin
       Memo8.Text := (Sender as TSpeedButton).Hint;
    end else begin
      Memo8.Text := '';
    end;
  end;
end;
Nun kommt wohl mein Fehler. Sender scheint nicht das Control zu sein, das den Hint sendet. Somit liefert bei mir
 IF Sender is TSpeedButton immer False.

Ich habe über den Debugger geprüft, dass meine Procedure angesprungen wird wenn ich über die entsprechenden Button fahre.

Also, ich brauch nur einen Tipp und komme dann bestimmt selber weiter.

dank und Gruß oki
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#2

Re: Hint spezieller Controls in Statuszeile

  Alt 21. Okt 2003, 11:17
Probiers mal mit

Sender.classname = 'TSpeedButton'

dann sollts funktionieren
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: Hint spezieller Controls in Statuszeile

  Alt 21. Okt 2003, 11:19
Ich empfehle Dir einen relativ unbekannten Trick anzuwenden. Die Eigenschaft Hint ist eigentlich eine "Doppeleigenschaft". Dieser Hint nimmt den ShortHint und den LongHint auf. Diese kannst Du mit dem Pipe-Symbol "|" trennen.

Code:
kurzer Popup-Hint | Langer Message-Feld Hint
Wenn Du mit dem Pipe-Symbol startest, wird kein PopUp gezeigt und nur der lange genutzt. Im Application-OnHint-Eventhandler schreibst Du dann

Delphi-Quellcode:
procedure TfrmMain.ApplicationEvents1Hint(Sender: TObject);
begin
  if Pos('|', Application.Hint) > 0 then
    Memo8.Text := GetLongHint(Application.Hint)
  else
    Memo8.Text := '';
end;
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#4

Re: Hint spezieller Controls in Statuszeile

  Alt 21. Okt 2003, 11:21
Zitat von Ghostwalker:
Sender.classname = 'TSpeedButton'

dann sollts funktionieren
Nein, Sender ist die TApplication

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#5
  Alt 21. Okt 2003, 12:58
Hi,

Dank für die Antworten.

Sankuras Trick kannte ich wirklich noch nicht. Den nehm ich (einfach aber schmerzlos). Das Sender TApplication ist war auch meine Vermutung, wußte es nur nicht sicher.

Dank und Gruß oki
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6
  Alt 21. Okt 2003, 13:09
Hi Sancura,

geht nicht!!!!

In Application.Hint ist das Pipe-Symbol nicht mehr vorhanden. Hab im Debug-Modus nachgeschaut.

"Was nun sprach Zeus, die Götter sind besoffen."


Gruß oki
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#7
  Alt 21. Okt 2003, 13:19
Hi,

da abgesehen vom Pipe-Symbol als prüfbares Zeichen in Application.Hint der Rest von Sancuras Aussage stimmt hab ich jetzt folgendes gemach:

Delphi-Quellcode:
procedure TFahrzEinstForm.ShowSecureButtonHint(Sender: TObject);
begin
  if length(GetLongHint(Application.Hint)) > 0 then
    Memo8.Text := GetLongHint(Application.Hint)
  else
    Memo8.Text := '';
end;
Eigentlich ist es ja egal ob man die Maus mit Speck oder Käse fängt, hauptsache man hat sie.
So funzt es aber.

Gruß oki
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#8

Re: Hint spezieller Controls in Statuszeile

  Alt 21. Okt 2003, 13:39
Liegt das jetzt an der Delphi Version oder am OS. Ich hatte erst Deine Lösung und die ging nicht Schließlich habe ich vorm posten getestet...

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#9
  Alt 22. Okt 2003, 10:36
Keine Ahnung.

Mein OS ist Win2000 mit D5.

Noch mal Dank,

Gruß oki
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#10

Re: Hint spezieller Controls in Statuszeile

  Alt 22. Okt 2003, 10:47
Hm, dann bin ich mir nicht sicher, es muss wohl an Delphi liegen... GetLongHint ist eine WinAPI Funktion...

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  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:21 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