AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi StringGrid --> FixedRows nicht neu zeichnen (OnDrawCell?)

StringGrid --> FixedRows nicht neu zeichnen (OnDrawCell?)

Ein Thema von ereetzer · begonnen am 31. Mai 2005 · letzter Beitrag vom 1. Jun 2005
Antwort Antwort
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#1

StringGrid --> FixedRows nicht neu zeichnen (OnDrawCell?)

  Alt 31. Mai 2005, 21:20
Hallo,

Ausgangssituation ist folgende:

per Abfrage im OnMouseUp-Ereignis prüfe ich mit Hilfe von MouseToCell die angeklickte Spalte im StringGrid.

Diese wird dann entsprechend ab- bzw. aufsteigend sortiert.

Nun will ich das ganze aber auch noch visualisieren indem ich eine Art Pfeil in der jeweiligen Zelle darstelle.

Ich schaffe es auch, daß das Bild angezeigt wird. Allerdings nur ganz kurz, da nämlich sofort alles wieder duch das OnDrawCell alles überschreiben wird. Kann ich das irgendwie verhindern?

Ich hoffe, ich hab das Problem gut genug beschrieben

ereetzer
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: StringGrid --> FixedRows nicht neu zeichnen (OnDrawCe

  Alt 31. Mai 2005, 21:31
Du mußt das ACol, ARow überprüfen ! Vermute außerdem, daß das irgendwie falsch deklariert ist. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
ereetzer

Registriert seit: 21. Mär 2003
86 Beiträge
 
Delphi XE Starter
 
#3

Re: StringGrid --> FixedRows nicht neu zeichnen (OnDrawCe

  Alt 31. Mai 2005, 21:33
hmm, hab aber ne Abfrage drin:

if ARow > 0 then... das klappt aber trotzdem nicht.

edit:

hier mal nen bißchen Code aus OnMouseUp:

Delphi-Quellcode:
procedure TForm4.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  iColumn, iRow: integer;
  Bild: TBitmap;
  Rect: TRect;
begin
  sort := not sort;
  StringGrid1.MouseToCell(X, Y, iColumn, iRow);
  if (iRow = 0) and (iColumn <> -1) then
  begin
    SortStringGrid(StringGrid1, iColumn, sort);
  end;

  if iRow = 0 then
  begin
    Bild := TBitmap.Create;
    Bild.LoadFromFile('C:\Blau.bmp'); // TEST
    Rect := StringGrid1.CellRect(iColumn, iRow);
    StringGrid1.Canvas.StretchDraw(Rect, Bild);
  end;
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

Re: StringGrid --> FixedRows nicht neu zeichnen (OnDrawCe

  Alt 31. Mai 2005, 21:40
probiere mal >1 aus oder > FixedRows. Verwechsle das auch immer.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von punker76
punker76

Registriert seit: 11. Jan 2004
Ort: Alsdorf
98 Beiträge
 
Delphi 7 Personal
 
#5

Re: StringGrid --> FixedRows nicht neu zeichnen (OnDrawCe

  Alt 1. Jun 2005, 07:26
Zitat von ereetzer:
hmm, hab aber ne Abfrage drin:

if ARow > 0 then... das klappt aber trotzdem nicht.

edit:

hier mal nen bißchen Code aus OnMouseUp:

Delphi-Quellcode:
procedure TForm4.StringGrid1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  iColumn, iRow: integer;
  Bild: TBitmap;
  Rect: TRect;
begin
  sort := not sort;
  StringGrid1.MouseToCell(X, Y, iColumn, iRow);
  if (iRow = 0) and (iColumn <> -1) then
  begin
    SortStringGrid(StringGrid1, iColumn, sort);
  end;

  if iRow = 0 then
  begin
    Bild := TBitmap.Create;
    Bild.LoadFromFile('C:\Blau.bmp'); // TEST
    Rect := StringGrid1.CellRect(iColumn, iRow);
    StringGrid1.Canvas.StretchDraw(Rect, Bild);
  end;
du solltest das bild im constructor laden und im OnDrawCell (der name sagts ja schon) in die jeweilige zelle in den fixedrows zeichnen!
Jan Karger
Punk's not dead!!!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:00 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