![]() |
Hint in DBGrid anzeigen
hallo zusammen
habe mir jetzt mehrere Stunden in der OH und in einigen Foren die Augen nach vollgender Lösung wundgesucht. In einem DBGrid zeige ich eine Liste aller Rechnungen an (Datenquelle ist Sql Server mit BetterAdoDataset) in der ersten Spalte steht welche Art von Dokument das ist (zb. Ausgangsrechnung, Gutschrift, Interne Lieferung ...). in dieser Spalte werden je nach Feldinhalt der ersten Spalte des DBGrids unterschiedliche Icons für die diversen Belegarten angezeigt [bis hierher kein Problem :mrgreen: ] Aber ich möchte wenn die Maus auf dieser Spalte (also dem Icon parkt) einen Hint anzeigen wo die Belegart im Klartext steht. Hat irgend jemand einen Lösungsansatz bei einer bestimmten Spalte im DBGrid einen dynamischen Datenabhängigen Hint anzuzeigen :wall: :wall: :wall: Danke schon mal im vorraus |
Re: Hint in DBGrid anzeigen
Hai etom291272,
wie zeigst Du denn das Icon im DBGrid an? Wenn man "auslesen" könnte welches Icon unter dem Cursor ist wäre das anzeigen eines Hints sicher nicht das große Problem. |
Re: Hint in DBGrid anzeigen
Also mit folgendem Eventhandler wird statt des Datenbankfeldes ein entsprechendes Icon angezeigt
Delphi-Quellcode:
p.s mich würde auch interessieren wie das bei einem normalen DbGrid Feld funktioniert und ich möchte nicht auf 3.Komponenten von anderen Herstellern ausweichen. Habe das TMS Components Pro mit deren ADVDBStringGrid liese sich das leicht realisieren. Ich kann auch über kein Stringgrid gehen da das Dataset über 200.000 Records fassen kann und das laden des StringGrid warscheinlich viel länger dauert als mit einem DbGrid (die Sätze sind notwendig - sind alle Belege einen grossen Firma der letzten 10 Jahre)
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState); var Icon: TBitmap; begin Icon:=TBitmap.Create; if (Column.FieldName='SHARES' ) then begin with DBGrid1.Canvas do begin Brush.Color:=clWhite; FillRect(Rect); if (Table1.FieldByName('SHARES').Value>4500) then ImageList1.GetBitmap(1,Icon) else ImageList1.GetBitmap(0,Icon); Draw(round((Rect.Left+Rect.Right-Icon.Width)/2),Rect.Top,Icon); end; end; :wiejetzt: für jeden lösungsansatz bin ich dankbar :coder2: |
Re: Hint in DBGrid anzeigen
Zitat:
![]() |
Re: Hint in DBGrid anzeigen
Danke für den Link hab ihn mir durchgelesen und bin dabei auf ein noch viel grösseres Problem gekommen. wenn der dbgrid angenommen 30 Zeilen hat und die aktive Zeile die 3. ist und der benutzer angenommen in der 20. zeile auf das icon fährt und da dann der hint angezeigt werden soll gibt es keine möglichkeit an die daten die im feld sind in zeile 20 zu kommen da ja die 3. zeile die aktive ist (oder liege ich da falsch) :warn:
:gruebel: :?: :gruebel: |
Re: Hint in DBGrid anzeigen
Noch ein
![]() Das Wichtige bei der Sache ist imho nicht das Anzeigen selber, das bekommt man durch Satzverschiebung und merken der vorher,nacher- Position noch hin. Die optischen Nebenwirkungen störender. |
Re: Hint in DBGrid anzeigen
Ups. Dazwischen gepostet.
Zitat:
|
Re: Hint in DBGrid anzeigen
:coder:
na schon was gefunden ? |
Re: Hint in DBGrid anzeigen
Zitat:
Aber nein, ich habe bis jetzt auch noch nichts zufriedenstellendes gefunden. Ich hatte zwar eine SMDBGid-Kompo. am Wickel die Hints anzeigen kann, musste aber bei genauerer Betrachtung feststellen, dass die auch nur den Satzzeiger auf die Stelle im Grid setzt, wo sich die Maus befindet und einen Hint des aktuellen Datenfeldes ausgibt. Der Tip aus dem 2.Link war ebendfalls eine Sackgasse. Und was hast du in der Zeit so unternommen? |
Re: Hint in DBGrid anzeigen
:oops:
hatte bis jetzt keine Zeit mich mit dem problem weiter zu beschäftigen da ich für ein projekt eine ziemliche Aufwendige Netzwerkkonfiguration mit Fortigate Firewall und Isa Server vorbereiten muss bin aber gestern noch auf eine Komponente gestossen die vielversprechend aussieht X-DBGrid Component Standard 3.3D (Delphi) TXDBGrid, TXDBColumnsDialog ShareIt Program ID: 190431 wie gesagt würde es gerne ohne 3. komponente lösen. werde auch heute noch herrn ua kontaktieren war bei ihm auf einem mehrtägigen individualtrainung was mir sehr viel gebracht hat. werde posten was da rausgekommen ist :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:57 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