DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
Hallo
in einem DBGrid sind ist die Spaltenbreite fest definiert(soll auch so bleiben)
Nun kommt es aber manchmal vor dass der Zelleninhalt nicht vollständig lesbar ist weil der Text zu lang ist.
Ging es eine Möglichkeit den Zelleninhalt bei Mouseover - so wie bei einer Mouseoverhilfe anzeigen zu lassen ? oder muss man dass extra programmieren.
Gruß Frank
in einem DBGrid sind ist die Spaltenbreite fest definiert(soll auch so bleiben)
Nun kommt es aber manchmal vor dass der Zelleninhalt nicht vollständig lesbar ist weil der Text zu lang ist.
Ging es eine Möglichkeit den Zelleninhalt bei Mouseover - so wie bei einer Mouseoverhilfe anzeigen zu lassen ? oder muss man dass extra programmieren.
Gruß Frank
- gladio
- Beiträge: 223
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
Teste doch mal OnGetCellHint (Objektinspektor-Eigenschaften)
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
Hallo gladio,
unter Eigenschaften ist es nicht zu finden - nur unter Events
Wie verwende ich "OnGetCellHint" ? - muss ich noch andere Eigenschaften setzen ?
Kannst du mir eine kleines Beispiel geben ?
Danke
Gruß Frank
unter Eigenschaften ist es nicht zu finden - nur unter Events
Wie verwende ich "OnGetCellHint" ? - muss ich noch andere Eigenschaften setzen ?
Kannst du mir eine kleines Beispiel geben ?
Danke
Gruß Frank
- gladio
- Beiträge: 223
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
Kann ich nicht.DL3AD hat geschrieben:Hallo gladio,
Kannst du mir eine kleines Beispiel geben ?
Ich dachte mir, du testet das durch und dann kann ich was lernen.

-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
... du bist aber gemein
So habe ich es gemacht
Gruß Frank

So habe ich es gemacht
Code: Alles auswählen
//Wenn Country nicht in die Zelle passt - Anzeige als Hint
procedure TForm1.DBGrid_QSOGetCellHint(Sender: TObject; Column: TColumn;
var AText: String);
begin
If Length(ZQueryLog.FieldByName('Country').AsString) > 20 then
begin
AText:= ZQueryLog.FieldByName('Country').AsString;
end;
end;
- gladio
- Beiträge: 223
- Registriert: Sa 21. Jun 2014, 06:15
- OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
Mußte ein weilchen suchen:
ShowHint vom DBGrid muß true sein
und bei 'Options' muß dgCellHints auch True sein.
Das Hint ist aber nicht auf die Spalte/Zelle beschränkt ?
ShowHint vom DBGrid muß true sein
und bei 'Options' muß dgCellHints auch True sein.
Das Hint ist aber nicht auf die Spalte/Zelle beschränkt ?
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
... Ja, das Hint gilt für die aktive Zeile.
Da ich nur eine beschnittene Spalte habe ist es so OK für meine Anwendung.
Vieleicht kennt jemand ja noch ne andere Lösung - bzw man muss halt extended Coden.
Da ich nur eine beschnittene Spalte habe ist es so OK für meine Anwendung.
Vieleicht kennt jemand ja noch ne andere Lösung - bzw man muss halt extended Coden.

Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
Was ist denn da "extended"? Es sind doch nur die paar Zeilen, die oben gezeigt sind...DL3AD hat geschrieben:Vieleicht kennt jemand ja noch ne andere Lösung - bzw man muss halt extended Coden.
Wenn du lieber klicken willst: es gibt (natürlich) auch eine eingebaute Methode mit Hilfe der DBGrid-Option dgTruncCellHints: das nimmt den Zellinhalt und zeigt ihn als Hint an, wenn der Text nicht in die Zelle passt. Die von dir verwendete Option dgCellHint ist eher dafür gedacht, sich einen speziellen Hint-Text zusammenzubasteln, der vielleicht auch noch andere Informationen enthält. Der Text wird dabei durch das Ereignis OnGetCellText übermittelt. Das Ereignis wurde ursprünglich nur für dgCellHints aufgerufen, es macht aber genauso Sinn für die Option dgTrunCellHints. Daher habe ich eben eine entsprechende Erweiterung für Laz-Trunk hochgeladen.
Da das wahrscheinlich immer wieder zu Verwirrung führt (ich musste selbst einiges herumprobieren, bis mir diese Lösung wieder einfiel), habe ich im Wiki einen Abschnitt über die Hints geschrieben (http://wiki.lazarus.freepascal.org/Grid ... Cell_hints).
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen
... Danke für den Tip mit dgTruncCellHints - genau soetwas hatte ich gesucht.