AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Image in DBGrid zeichnen - Problem mit Text

Ein Thema von Jack and the Juice · begonnen am 5. Feb 2011 · letzter Beitrag vom 29. Mai 2011
Antwort Antwort
Seite 1 von 2  1 2      
Jack and the Juice

Registriert seit: 15. Jan 2011
Ort: Lübeck
52 Beiträge
 
#1

Image in DBGrid zeichnen - Problem mit Text

  Alt 5. Feb 2011, 15:01
Hallo,
ich zeichne mit folgendem Code ein Image in die Zeilen eines DBGrids.

Delphi-Quellcode:
    fixRect := Rect;
    if Column.Field = dbgrid1.Fields[0] then
       begin
         bitmap := TBitmap.Create;
          try
            ImageList5.GetBitmap(imgIndex,bitmap);
            bmpWidth := (Rect.Bottom - Rect.Top);
            fixRect.Right := Rect.Left + bmpWidth;
            DBGrid1.Canvas.StretchDraw(fixRect,bitmap);
          finally
          bitmap.Free;
          end;
       fixRect := Rect;
       fixRect.Left := fixRect.Left + bmpWidth;

       DBGrid1.DefaultDrawColumnCell(fixRect,
               DataCol,
               Column,
               State);
        end;
Funktioniert auch alles bestens, allerdings würde ich gerne DrawingStyle:=gdsGradient setzen. Sobald ich diese Eigenschaft setze, wird der Text nicht mehr richtig dargestellt. Sobald die entsprechende Zeile ausgewählt wird, wird sowohl der verschobene Text, als der der Ursprungstext angezeigt, was natürlich zu einer unschönen Überlappung führt. Wird DrawingStyle:=gdsClassic ausgewählt, funktioniert alles problemlos. Im Notfall würde ich auf die Classic-Variante zurückgreifen, aber imho macht die Gradient-Variante doch mehr her.

Vielen Dank für Eure Hilfe,
Jackandthejuice
  Mit Zitat antworten Zitat
Jack and the Juice

Registriert seit: 15. Jan 2011
Ort: Lübeck
52 Beiträge
 
#2

AW: Image in DBGrid zeichnen - Problem mit Text

  Alt 18. Feb 2011, 15:33
Hallo,

ich müsste den Thread leider nochmal nach oben holen. Habe bisher leider keine Lösung gefunden. Es wäre nett, wenn sich jemand meinem Problem annehmen würde.

Vielen Dank schonmal,
jackandthejuice
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: Image in DBGrid zeichnen - Problem mit Text

  Alt 18. Feb 2011, 16:09
Ist das Property DefaultDrawing = False?
Sollte so sein, denn du rufst ja DBGrid1.DefaultDrawColumnCell() auf,
was leicht zu doppeltem Ausgeben der Zelle führen kann.
Andreas
  Mit Zitat antworten Zitat
Jack and the Juice

Registriert seit: 15. Jan 2011
Ort: Lübeck
52 Beiträge
 
#4

AW: Image in DBGrid zeichnen - Problem mit Text

  Alt 19. Feb 2011, 23:23
Hallo,

vielen Dank, ich glaub das wird's gewesen sein. Ich hab DefaultDrawing:=false gesetzt und zeichne die anderen Felder jetzt ebenfalls bei DrawColumnCell, allerdings wird nun die markierte Reihe nicht mehr blau unterlegt angezeigt. Irgendeine Ahnung, ob ich da noch etwas ergänzen muss?

Beste Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Image in DBGrid zeichnen - Problem mit Text

  Alt 20. Feb 2011, 02:52
Schau doch in dem Quelltext von DBGrid nach und kopiere dir die DrawRoutine von dort.
Diese erweiterst du noch um deinen Part mit den Grafiken und alles sollte perfekt sein.

Wenn du DefaltDrawing auf False setzt, dann musst du dich um das ganze Zeichnen-Geraffel kümmern.
Default Drawt der nix mehr
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Jack and the Juice

Registriert seit: 15. Jan 2011
Ort: Lübeck
52 Beiträge
 
#6

AW: Image in DBGrid zeichnen - Problem mit Text

  Alt 20. Feb 2011, 11:00
OK, für alle, die ein ähnliches Problem haben sollten.

Einfach in OnDrawColumnCell folgenden Code ergänzen:
Delphi-Quellcode:
if (gdSelected in State) then
      begin
        with DBGrid1.Canvas do
        begin
          Brush.Color := clHighlight;
          Font.Color := clHighlightText;
        end;
      end;
So funktioniert es bei mir nun auch.

Besten Dank
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: Image in DBGrid zeichnen - Problem mit Text

  Alt 28. Mai 2011, 12:42
Eine Frage hierzu:
In meinem DbGrid wird in der Spalte wo ich das Icon anzeigen lasse auch noch der Text dargestellt. Wie kann ich den Text entfernen so das anstatt dem Text das Icon angezeigt wird?
Der Text soll nur in der anzeige im DbGrid entfernt werden nicht in der Datenbank.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Image in DBGrid zeichnen - Problem mit Text

  Alt 29. Mai 2011, 12:30
Das Zeichnen komplett selber übernehmen
Markus Kinzler
  Mit Zitat antworten Zitat
BBoy

Registriert seit: 17. Jan 2007
418 Beiträge
 
Delphi 10 Seattle Professional
 
#9

AW: Image in DBGrid zeichnen - Problem mit Text

  Alt 29. Mai 2011, 14:31
gibt es keine andere Möglichkeit
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Image in DBGrid zeichnen - Problem mit Text

  Alt 29. Mai 2011, 14:44
Warum sollte es eine andere geben? Und vor allem: Wie stellst du dir das vor?

Du willst einen nicht standardmäßigen Inhalt drin haben, dann musst du auch im Code schreiben welchen. Eben indem du hineinzeichnest was du möchtest.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
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