DBGrid Zelleninhalt als Mouseover Hilfe anzeigen

Für Fragen von Einsteigern und Programmieranfängern...

DBGrid Zelleninhalt als Mouseover Hilfe anzeigen

Beitragvon DL3AD » 1. Jun 2017, 12:25 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
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon gladio » 2. Jun 2017, 19:25 Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen

Teste doch mal OnGetCellHint (Objektinspektor-Eigenschaften)
gladio
 
Beiträge: 95
Registriert: 21. Jun 2014, 05:15
Wohnort: Insel Rügen
OS, Lazarus, FPC: Win7/10-32/64 - Laz 1.8 Standard-Edition | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon DL3AD » 2. Jun 2017, 20:32 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
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon theo » 2. Jun 2017, 20:59 Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen

Es gibt noch die Option "dgCellHints"

http://lazarus-ccr.sourceforge.net/docs ... ption.html
theo
 
Beiträge: 8058
Registriert: 11. Sep 2006, 18:01

Beitragvon gladio » 3. Jun 2017, 08:20 Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen

DL3AD hat geschrieben:Hallo gladio,

Kannst du mir eine kleines Beispiel geben ?


Kann ich nicht.
Ich dachte mir, du testet das durch und dann kann ich was lernen. :D
gladio
 
Beiträge: 95
Registriert: 21. Jun 2014, 05:15
Wohnort: Insel Rügen
OS, Lazarus, FPC: Win7/10-32/64 - Laz 1.8 Standard-Edition | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon DL3AD » 3. Jun 2017, 14:30 Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen

... du bist aber gemein :mrgreen:

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;   


Gruß Frank
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon gladio » 3. Jun 2017, 18:17 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 ?
gladio
 
Beiträge: 95
Registriert: 21. Jun 2014, 05:15
Wohnort: Insel Rügen
OS, Lazarus, FPC: Win7/10-32/64 - Laz 1.8 Standard-Edition | 
CPU-Target: 32/64Bit
Nach oben

Beitragvon DL3AD » 3. Jun 2017, 18:45 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. 8)
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

Beitragvon wp_xyz » 4. Jun 2017, 16:22 Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen

DL3AD hat geschrieben:Vieleicht kennt jemand ja noch ne andere Lösung - bzw man muss halt extended Coden. 8)

Was ist denn da "extended"? Es sind doch nur die paar Zeilen, die oben gezeigt sind...

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).
wp_xyz
 
Beiträge: 2642
Registriert: 8. Apr 2011, 08:01

Beitragvon DL3AD » 4. Jun 2017, 17:54 Re: DBGrid Zelleninhalt als Mouseover Hilfe anzeigen

... Danke für den Tip mit dgTruncCellHints - genau soetwas hatte ich gesucht.
DL3AD
 
Beiträge: 368
Registriert: 13. Sep 2013, 11:07
Wohnort: Rügen
OS, Lazarus, FPC: Win7 (L 1.8.0 FPC 3.0.4) und Debian Stretch (L 1.8.0 FPC 3.0.4) | 
CPU-Target: 32Bit/64Bit
Nach oben

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried