![]() |
Maus-Ereignisse im Sringgrid
Hi,
ich will in einem Grid in der Titelzeile einen Hint bringen. Deshalb habe ich ShowHint des Grids auf true gesetzt und bei Row = 0 den Hint gesetzt (im OnMouseMove), also so:
Delphi-Quellcode:
Tja, der Hint hat sich versteckt und taucht nicht auf. :mrgreen:
procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer); begin if StringGrid1.Row = 0 then begin case StringGrid1.Col of 1 : StringGrid1.Hint := 'Nr. eingeben'; 2 : StringGrid1.Hint := 'keine Eingabe möglich'; end; end; end; [edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit] |
Moin Hansa,
schau Dir mal Application.OnHint an. So eine Routine erstellen, und darin prüfen, wo sich denn jetzt gerade der Cursor befindet. Anhand des Prüfungsergebnisses kannst Du dann den Hinttext festlegen. (hoffentlich, ist nur eine ungeteste Idee ;-) ) |
So, habe mir nochmals den blöden Hund/Hint angeschaut. Wieso muß ich da an die Application dran ? Das ist mir doch etwas suspekt.
Es geht jetzt, aber nicht immer. :mrgreen: Aber mir fällt da etwas anderes auf: Ist ein Hint etwa ein Ressourcenfresser ? Wenn das blöde Ding überhaupt auftaucht, braucht der Rechner ewig. Ist das normal, also gewollt? Es könnte nämlich auch sein, daß ich das StringGrid in dieser Richtung untersuchen muß. |
Moin Hansa,
schau Dir doch mal die Hilfe zu TApplication an, speziell die Eigenschaften. |
Delphi-Quellcode:
procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer); var MyRow, MyCol: Integer; begin StringGrid1.MouseToCell(x, y, MyCol, MyRow); if MyRow = 0 then StringGrid1.Hint := 'Hello world' else StringGrid1.Hint := ''; end; |
Re: Maus-Ereignisse im Sringgrid
@Luckie
Wie kann ich dass Teil beständig machen, so dass es auch die Hints wechselt wenn man von einer Zelle zu einer anderen geht ? Leider wird dort erst ein Hint angezeigt wenn man die Zelle markiert oder das Grid komplett verlässt und dann wieder zurückkehrt aufs Grid. Aber wenn man sich nur im Grid bewegt verändert sich der Hint irgendwie nimmer :( mein Code dazu
Delphi-Quellcode:
procedure Tfrm_Objektuebersicht.stg_patenschaftenMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); var MyRow, MyCol: Integer; betrag : currency; waehrung, helpstring : String; begin stg_patenschaften.MouseToCell(x, y, MyCol, MyRow); if (Mycol = 1) then begin stg_patenschaften.showhint := true; if (MyRow > 0) then begin helpstring := trim(stg_patenschaften.cells[MyCol,MyRow]); while(POS('.',helpstring) > 0) do delete(helpstring,POS('.',helpstring),1); waehrung := Trim(copy(helpstring,POS(' ',helpstring),length(helpstring))); if (trim(waehrung) = '?') then waehrung := 'EUR'; try betrag := strtoCurr(Copy(helpstring,1,POS(' ',helpstring))); stg_patenschaften.Hint := FORMAT('%12.2n',[Waehrungenanpassenfueranzeige(betrag,'EUR',waehrung)])+' '+euro(global_wkz); except // Ist keine Zahl also kann man auch nix anzeigen ! stg_patenschaften.showhint := false; end; end; end else stg_patenschaften.showhint := false; end; |
Re: Maus-Ereignisse im Sringgrid
Zitat:
am Beispiel von Luckie wärs so : (jede Zelle als Hint anzeigen)
Delphi-Quellcode:
Mfg Frank
procedure TForm1.StringGrid1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer); var MyRow, MyCol: Integer; oldhint:string; begin oldhint:=StringGrid1.hint; StringGrid1.MouseToCell(x, y, MyCol, MyRow); if (MyRow<>-1) and (Mycol<>-1) then StringGrid1.hint:=StringGrid1.Cells[mycol,myrow] else StringGrid1.hint:=''; if oldhint<>StringGrid1.hint then Application.CancelHint; end; |
Re: Maus-Ereignisse im Sringgrid
dess klappt ja wunderbar :) Dank Dir.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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