Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Informationsblasen für Komponenten (https://www.delphipraxis.net/164925-informationsblasen-fuer-komponenten.html)

ByTheTime 6. Dez 2011 12:45

Informationsblasen für Komponenten
 
Hallo,
vorab: Ich habe wirklich nichts zu meiner Frage gefunden :)
Und zwar möchte ich, wenn man mit der Maus über bestimmte Komponenten fährt (z.B. TButton) eine "Infoblase" anzeigen, in der Informationen über die Funktion der Komponente, etc. drinstehen. Allerdings habe ich keinen Ansatz... Ich würde das ganze ins DragOver-Ereignis schreiben aber mehr hab ich leider nicht.

DeddyH 6. Dez 2011 12:47

AW: Informationsblasen für Komponenten
 
Meinst Du evtl. einen Hint?

[edit] Beispiel:
Delphi-Quellcode:
procedure TFormTest.FormCreate(Sender: TObject);
const
  DEF_HINT = 'Dies ist die Komponente %s vom Typ %s.';
var
  aButton: TButton;
  aEdit: TEdit;
  aMemo: TMemo;
  aComboBox: TComboBox;
  i: integer;
begin
  //Button anlegen
  aButton := TButton.Create(self);
  aButton.Left := 10;
  aButton.Top := 10;
  aButton.Name := 'TestButton';
  aButton.Parent := self;

  //Edit anlegen
  aEdit := TEdit.Create(self);
  aEdit.Left := 100;
  aEdit.Top := 10;
  aEdit.Name := 'TestEdit';
  aEdit.Parent := self;

  //Memo anlegen
  aMemo := TMemo.Create(self);
  aMemo.Left := 10;
  aMemo.Top := 40;
  aMemo.Name := 'TestMemo';
  aMemo.Parent := self;

  //ComboBox anlegen
  aComboBox := TComboBox.Create(self);
  aComboBox.Left := 250;
  aComboBox.Top := 10;
  aComboBox.Name := 'TestComboBox';
  aComboBox.Parent := self;

  //allen Controls Hint zuweisen
  for i := 0 to ControlCount - 1 do
    begin
      Controls[i].Hint := Format(DEF_HINT, [Controls[i].Name, Controls[i].Classname]);
      Controls[i].ShowHint := true;
    end;
end;
[/edit]

ByTheTime 6. Dez 2011 13:17

AW: Informationsblasen für Komponenten
 
Ja genau das meinte ich, vielen Dank. Leider viel mir der Begriff nicht mehr ein... Unter 'Hint' finde ich jetzt natürlich was, danke :)

ByTheTime 6. Dez 2011 13:46

AW: Informationsblasen für Komponenten
 
Aber kann ich nicht eigentlich auch im Objektinspektor was in 'Hint' schreiben und dann im DragOver:
Delphi-Quellcode:
MyButtonOrLabelOrEdit.ShowHint;

DeddyH 6. Dez 2011 13:48

AW: Informationsblasen für Komponenten
 
Natürlich kannst Du den Hint auch im OI vergeben. Und wenn Du ShowHint auf true setzt, dann brauchst Du nichts weiter zu tun, dann erscheint der Hint ganz automatisch beim Überfahren mit der Maus.

ByTheTime 6. Dez 2011 13:59

AW: Informationsblasen für Komponenten
 
Dann aber noch eine Frage: Habe in meinem Prog. ein MainMenu. Den verschiedenen Menüpunkten kannst du zwar ein Hit zuweisen, aber die Funktion ShowHInt gibt es nicht?!

DeddyH 6. Dez 2011 14:02

AW: Informationsblasen für Komponenten
 
Ist Deine Hilfe kaputt?
Zitat:

Der Hinweistext erscheint in der Statuszeile, wenn der Benutzer den Mauszeiger über einen Menüeintrag führt, sofern Hilfehinweise aktiviert sind (d.h., wenn die ShowHint-Eigenschaften des Formulars und der Anwendung true sind). Er steht auch dem Quelltext der Anwendung in der Ereignisbehandlungsroutine OnHint zur Verfügung.

stahli 6. Dez 2011 14:11

AW: Informationsblasen für Komponenten
 
Willst Du den Hint selbst einblenden? Ich wüsste jetzt nicht, wie man das am besten realisiert.
Normalerweise kümmert sich Windows darum, Hints einzublenden.
Du musst dazu einen Hint-Text zuweisen und ShowHint auf True setzen.

Selbst die Kontrolle über die Hints zu übernehmen, ist standardmäßig nicht vorgesehen.
Sicher gibt es dafür auch Möglichkeiten, aber nicht eine Methode wie MyControl.ShowHintNow;

DeddyH 6. Dez 2011 14:16

AW: Informationsblasen für Komponenten
 
Mit Application.ActivateHint ginge das wohl, ist aber meist unnötig, es sei denn, man hat einen ganz speziellen Spezialfall.

ByTheTime 6. Dez 2011 15:13

AW: Informationsblasen für Komponenten
 
Es geht ja fast alles, hatte vergessen, ParentShowHint auf true zu setzten. Allerdings habe ich nach wie vor das Problem mit dem MainMenu. OnHint existiert weder in den Ereignissen der Form, der TMainMenu Komponente noch in anderen Komponenten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 Uhr.
Seite 1 von 2  1 2      

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