AGB  ·  Datenschutz  ·  Impressum  







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

Stringgrid: bestimmte Zeile färben

Ein Thema von michaelarban · begonnen am 16. Apr 2011 · letzter Beitrag vom 19. Dez 2014
Antwort Antwort
michaelarban

Registriert seit: 8. Jun 2010
9 Beiträge
 
#1

Stringgrid: bestimmte Zeile färben

  Alt 16. Apr 2011, 19:40
Hallo Leute,

auf die Gefahr, dass ihr mich steinigt, weil ich eurer Meinung nach nicht gegoogelt habe; aber ich habe es gemacht, aber nichts passendes gefunden, obwohl mein Problem ziemlich simpel ist:

Ein User soll in einer Edit-Feld eine Zeilennummer (z.B: 4) eingeben, dann auf ein Button klicken und im Stringgrid wird die 4.Zeile rot markiert .

Zwar habe ich oft gelesen, dass es die Funktion "OnDrawCell" gibt, aber ich weiss nicht, wie ich sie aufrufen soll:

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);

--> wie rufe ich diese Fubnktion auf? was kommt als Parameter Rect? was ist State?


danke
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#2

AW: Stringgrid: bestimmte Zeile färben

  Alt 16. Apr 2011, 19:49
Hallo...

Zitat:
wie rufe ich diese Fubnktion auf?
...die Funktion wird aufgerufen, wenn eine Zelle, warum auch immer, neu gezeichnet wird. Das Zeichnen kann man z.B. durch Repaint erzwingen.
Zitat:
was kommt als Parameter Rect?
...ist das Rechteck deiner Zelle als Koordinaten...falls du selbst drin rummalen möchtest.
Zitat:
was ist State?
gdSelected
Die Zelle ist aktuell ausgewählt.
gdFocused
Die Zelle hat den Eingabefokus.
gdFixed
Die Zelle befindet sich im fixierten Bereich des Gitters.
gdRowSelected
Die Zeile ist ausgewählt.
gdHotTrack
Die Zelle wird hervorgehoben, wenn der Mauszeiger darüber bewegt wird.
gdPressed
Auf die Zelle wird geklickt.
...aus der Delphi Hilfe
  Mit Zitat antworten Zitat
michaelarban

Registriert seit: 8. Jun 2010
9 Beiträge
 
#3

AW: Stringgrid: bestimmte Zeile färben

  Alt 16. Apr 2011, 20:02
Hi,

danke für die antwort.


rufe ich innerhalb des ButtonClicks diese Funktion so auf?

procedure TForm1.btnFaerbeZeileClick(Sender: TObject);
begin

StringGrid1DrawCell(StringGrid1, 0,4, Rect: TRect; State: TGridDrawState);

end;

was schreibe ich für Rect ?

State: keines der von dir unten geschriebenen Zustände trifft zu, da der User die Zeil nicht vorher anklickt, sondern eine 4 in ein Edit-Feld einträgt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Stringgrid: bestimmte Zeile färben

  Alt 16. Apr 2011, 20:09
Benutze doch einfach mal die Suche.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

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

AW: Stringgrid: bestimmte Zeile färben

  Alt 17. Apr 2011, 00:34
Hi,

Hallo Leute,

auf die Gefahr, dass ihr mich steinigt, weil ich eurer Meinung nach nicht gegoogelt habe;
Das ist Neudeutsch, aber das hier nicht :
Benutze doch einfach mal die Suche.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Stringgrid: bestimmte Zeile färben

  Alt 17. Apr 2011, 11:57
Rect ist das Rechteck, dass neu gezeichnet werden soll.
Aber ich glaube du hast das System nicht verstanden. Diese Funktion musst nicht du aufrufen, sondern musst diese implementieren.
Sie wird dann ( für jede Zelle) aufgerufen.
In den Parametern werden dir dann die Werte der aktuellen ( zu zeichnenden) Zelle übergeben.
Markus Kinzler

Geändert von mkinzler (17. Apr 2011 um 12:05 Uhr)
  Mit Zitat antworten Zitat
s-off

Registriert seit: 20. Jan 2010
89 Beiträge
 
Delphi 2010 Professional
 
#7

AW: Stringgrid: bestimmte Zeile färben

  Alt 17. Apr 2011, 19:48
Schau Dir mal diese Unit an - da gibt es einige Beispiele; vielleicht kannst Du irgendetwas davon gebrauchen.

Hinweis zur Beispielanwendung: fast alle Funktionalitäten aus dem Kontextmenü lassen sich nur dann anwenden, wenn eine Zelle 'spezialisiert' worden ist (erster Menüpunkt).
Gruß
s-off
  Mit Zitat antworten Zitat
kanita

Registriert seit: 19. Dez 2014
1 Beiträge
 
#8

AW: Stringgrid: bestimmte Zeile färben

  Alt 19. Dez 2014, 09:44
Oder man nimmt gleich (Application.)MessageBox, die passt sich im Aussehen wenigstens der Windows-Version an und man kann auch da den Standard-Button setzen.
kanita
  Mit Zitat antworten Zitat
Headbucket

Registriert seit: 12. Dez 2013
Ort: Dresden
172 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: Stringgrid: bestimmte Zeile färben

  Alt 19. Dez 2014, 12:15
Um das niedergeschriebene mal mit einem simplen Beispiel zu belegen:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  if (ARow <> DrawCellIndex) then
    stringgrid1.Canvas.Brush.Color := clWhite
  else
    stringgrid1.Canvas.Brush.Color := clGreen;

  stringgrid1.Canvas.FillRect(Rect);
end;
Wird dein Button geklickt, dann wird in die Variable DrawCellIndex die betreffende Zeile geschrieben. Danach z.B. einfach "Refresh" des Stringgrids aufrufen.

Sollte eigentlich funktionieren.

Grüße
Headbucket
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:53 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