AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie einem Button einen Hinweis in der StatusBar zuweisen?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie einem Button einen Hinweis in der StatusBar zuweisen?

Ein Thema von dopeline · begonnen am 12. Apr 2003 · letzter Beitrag vom 12. Apr 2003
Antwort Antwort
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#1

Wie einem Button einen Hinweis in der StatusBar zuweisen?

  Alt 12. Apr 2003, 17:48
Hi!

Ich möchte, dass wenn ich mit der Maus über einen Button (öffnen) gehe, unten in der StausBar eine Meldung kommt ("Klicken Sie hier um ein neues Dokument zu öffnen").
Wie stelle ich das am besten an. aus der delphi-hilfe bi ich nicht schlau geworden.

Gruß, dopeline
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2
  Alt 12. Apr 2003, 21:09
Hi,

schau mal in der Hilfe bei TApplication Ereignis OnHint nach. Da ist ein Beispiel bei wie das geht. (Ach, ich kopiers mal hier rüber)

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    StatusBar1: TStatusBar;
    Edit1: TEdit;
    procedure FormCreate(Sender: TObject);
  private
    { Private Deklarationen }
  public
    procedure DisplayHint(Sender: TObject);
  end;

var

  Form1: TForm1;
implementation
{$R *.DFM}

{ Hier ist die Implementierung der Ereignisbehandlungsroutine für OnHint. }

{ Der aktuelle Hinweistext der Anwendung wird in der Statusleiste angezeigt. }
procedure TForm1.DisplayHint(Sender: TObject);
begin
  StatusBar1.SimpleText := GetLongHint(Application.Hint);
end;

{ Hier ist die Ereignisbehandlungsroutine für OnCreate des Formulars. }

{ Die Ereignisbehandlungsroutine für OnHint der Anwendung wird zur Laufzeit }
{ zugewiesen, da Application im Objektinspektor nicht verfügbar ist. }
procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnHint := DisplayHint;
end;
Gruß oki
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#3
  Alt 12. Apr 2003, 21:12
Hallo,
mache den Umweg über Form1.onMouseMove (= FormMouseMove)

Du benötigst einen Button und eine Statusbar, im Objektinspektor schreibst Du beim Button1 in der Eigenschaft "Hint" den Text den Du in der Statusbar einzeigen möchtest hinein.
Den Rest siehe unten


Delphi-Quellcode:
UNIT aUnit1;

INTERFACE

USES
   Windows,
   Messages,
   SysUtils,
   Classes,
   Graphics,
   Controls,
   Forms,
   Dialogs,
   ComCtrls,
   StdCtrls;

TYPE
   TForm1 = CLASS(TForm)
      Button1: TButton;
      StatusBar1: TStatusBar;
      PROCEDURE FormMouseMove(Sender: TObject; Shift: TShiftState; X,
         Y: Integer);
   PRIVATE
    { Private-Deklarationen }
   PUBLIC
    { Public-Deklarationen }
   END;

VAR
   Form1 : TForm1;

IMPLEMENTATION

{$R *.DFM}

PROCEDURE TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
   Y: Integer); // x,y = MousePos in Pixel
VAR
   aRect : TRect;
BEGIN
   aRect := Button1.BoundsRect; // Größe des Buttons
   IF (x >= aRect.Left) AND
      (x <= aRect.Right) AND
      (y >= aRect.Top) AND
      (y <= aRect.Bottom) THEN
      StatusBar1.SimpleText := Button1.Hint // Hint in Statusbar zeigen
   ELSE
      StatusBar1.SimpleText := ''; // Hint in Statusbar löschen
END;
END.
NACHTRAG:
GRRRRRRR, war wieder mal zu langsam, außerdem ist okis Lösung wohl eleganter

[EDIT] Bei meiner Lösung kannst Du immerhin die Hint Anzeige mit ShowHint := False ausschalten, falls dich die Hints stören und Du trotzdem in der Statusbar den Text haben möchtest... [/EDIT]
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
bis
(Gast)

n/a Beiträge
 
#4
  Alt 12. Apr 2003, 21:13
Das in die Form-Create :
Code:
procedure TMainForm.FormCreate(Sender: TObject);
begin
  Application.OnHint := DisplayHint;
end;
Diese Procedure als Public deklarieren :
Code:
procedure TMainForm.DisplayHint(Sender: TObject);      
begin
  StatusBar.SimpleText := GetLongHint(Application.Hint);
end;
Jetzt schreibst Du zu jeder Komponente in die Eigenschaft Hint den Text der in der Statuszeile erscheinen soll.
  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 20:26 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