AGB  ·  Datenschutz  ·  Impressum  







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

Stringgrid zeilen färben

Ein Thema von koernel · begonnen am 22. Jul 2013 · letzter Beitrag vom 6. Jul 2024
Antwort Antwort
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Stringgrid zeilen färben

  Alt 23. Jul 2013, 06:31
Problem 1: if not Odd(ARow) färbt nur Zeilen mit gerader Laufnummer.
Problem 2: Du brauchst mehrere Farben, weil es mehrere Statusvarianten gibt:
- normal even: zB clWindow
- normal odd: zB clInfoBk
- selektiert: clHighlight
- normal even/doppeltgeklickt ...
- normal odd/doppeltgeklickt ...
- selektiert/doppeltgeklickt ...

Welche Zeile doppeltgeklickt wurde, merkst Du Dir in einer extra Variablen, schlimmstenfalls im Tag des Grids, und kannst dann entsprechend verzweigen.
HTH
Nr.1 Delphi-Tool: [F7]

Geändert von ConnorMcLeod (23. Jul 2013 um 06:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.666 Beiträge
 
Delphi 12 Athens
 
#2

AW: Stringgrid zeilen färben

  Alt 23. Jul 2013, 07:08
Welche Zeile doppeltgeklickt wurde, merkst Du Dir in einer extra Variablen, schlimmstenfalls im Tag des Grids, und kannst dann entsprechend verzweigen.
Müsste die doppelgeklickte Zeile nicht automatisch der Row-Eigenschaft des Grids entsprechen, oder mache ich einen Denkfehler?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Stringgrid zeilen färben

  Alt 23. Jul 2013, 13:15
Welche Zeile doppeltgeklickt wurde, merkst Du Dir in einer extra Variablen, schlimmstenfalls im Tag des Grids, und kannst dann entsprechend verzweigen.
Müsste die doppelgeklickte Zeile nicht automatisch der Row-Eigenschaft des Grids entsprechen, oder mache ich einen Denkfehler?
Mir ging es darum, sich zu merken, wo das Doppelklickfenster aufgeht. Man kann IIUC danach einfach weiterklicken und das Doppelklickfenster soll immer noch der damals doppelt geklickten Zeile/Spalte entsprechen...
Nr.1 Delphi-Tool: [F7]
  Mit Zitat antworten Zitat
koernel

Registriert seit: 1. Apr 2010
4 Beiträge
 
#4

AW: Stringgrid zeilen färben

  Alt 23. Jul 2013, 07:46
Problem 1: if not Odd(ARow) färbt nur Zeilen mit gerader Laufnummer.
Das ist schon klar... Nur rede ich in diesem Zusammenhang vonn Spalten. Quasi Columns. Das komische daran ist dass die erste Spalte sich erst dann färbt wenn ich irgendwo anders hinklicke... Also nicht in die Tabelle.

Vielen dank für die vielen Antworten ich werde mich mal durcharbeiten und Rückmeldung geben.


Edit: Achja und bei Problem 1 handelt es sich auch nicht um eine fixed column.
  Mit Zitat antworten Zitat
koernel

Registriert seit: 1. Apr 2010
4 Beiträge
 
#5

AW: Stringgrid zeilen färben

  Alt 23. Jul 2013, 09:53
Häckchen an das Problem 1!!

Ich habe einfach mal

if (state = [gdSelected]) then durch das hier ersetzt:

 if (gdFixed in State) then
  Mit Zitat antworten Zitat
koernel

Registriert seit: 1. Apr 2010
4 Beiträge
 
#6

AW: Stringgrid zeilen färben

  Alt 23. Jul 2013, 12:44
Hab es gelöst:
Delphi-Quellcode:
    if ARow = FCurrentRow1 then
    c := TColor ($00FF00)
  else
    if not ((gdFixed in State) or Odd (ARow)) then
      c := TColor ($D9D9C0)
        else
        c := clwhite;


  Stringgrid1.Canvas.Brush.Color := c;
  Stringgrid1.Canvas.FillRect (Rect);
  Stringgrid1.Canvas.TextOut (Rect.Left + 2, Rect.Top + 2, Stringgrid1.Cells [ACol, ARow]);

  if (gdSelected in state) then
    with Stringgrid1 do
    begin
      Canvas.Brush.Color := TColor($FFCC99);
      Canvas.FillRect(Rect);
      Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, Cells[aCol, aRow]);

    end;
Fcurrentrow muss man eben so setzen wie mans braucht...
Volkers Ansatz stimmte nicht ganz weil da auch beim scrollen nur jede zweite Zeile markiert wurde. Aber damit konnte ich was anfangen!

Vielen dank euch allen.
Bei den Temperaturen gestern hab ich einen Denkanstoß gebraucht!
  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 00:47 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-2025 by Thomas Breitkreuz