AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Warum wird die erste Spalte nicht eingefärbt ?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum wird die erste Spalte nicht eingefärbt ?

Ein Thema von JoelH · begonnen am 15. Jul 2003 · letzter Beitrag vom 15. Jul 2003
Antwort Antwort
JoelH
(Gast)

n/a Beiträge
 
#1

Warum wird die erste Spalte nicht eingefärbt ?

  Alt 15. Jul 2003, 14:13
ich hab diesen Code geschrieben
Delphi-Quellcode:
procedure Gridcolor(Sender: TObject;
  ACol, ARow: Integer; Rect: TRect; State: TGridDrawState; geldrows : Array of Integer);
var check : boolean;
    i : integer;
begin
  with Sender as TStringgrid do
  begin
    WITH Canvas DO
    BEGIN
      check := false;
      for i := 0 to length(geldrows)-1 do
      begin
        if ACol = geldrows[i] Then check := true;
      end;
      if (ARow > 0) then
      begin
        if (check) then
          Brush.Color := schriftfarbe
        else
          Brush.Color := gridhintergrund;
      end;
      //if (row = ARow) then Brush.Color := schriftfarbe XOR 65655;
      if (State = [gdSelected]) then Brush.Color := schriftfarbe XOR 65655;
      FillRect(Rect);
      TextOut(Rect.Left, Rect.Top, Cells[ACol, ARow]);
    END;
  end;
end;
wichtig sind hier folgende Zeilen
Delphi-Quellcode:
      //if (row = ARow) then Brush.Color := schriftfarbe XOR 65655;
      if (State = [gdSelected]) then Brush.Color := schriftfarbe XOR 65655;
sie sollten beide das selbe machen, die Zeile die selected ist anders einfärben. Tun sie auch, zumindestens fast. Die auskommentierte Zeile tut wie befohlen und markierte alle selektierte Zellen (rowSelect ist an) aber die zweite lässt die erste Spalte unengefärbt

Warum nur ?
  Mit Zitat antworten Zitat
Hansa

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

Re: Warum wird die erste Spalte nicht eingefärbt ?

  Alt 15. Jul 2003, 14:16
      if (ARow > 0) then Die Spalten werden ab 0 gezählt, so auf die Schnelle, ohne Garantie.
Gruß
Hansa
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#3

Re: Warum wird die erste Spalte nicht eingefärbt ?

  Alt 15. Jul 2003, 14:27
@Hansa
es geht um die erste Spalte, nicht die erste Reihe

Bei einem DBGrid ist es leider das selbe Phänomen, leider kann ich hier nicht auch die row zurückgreifen bzw. weis leider nicht wie ich an diese ran komme da ja die Parameterübergabe wie folgt ist
Delphi-Quellcode:
procedure DBGridcolor(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState;geldrows : Array of Integer);
Da hab ich ja leider nicht row und ARow Wie heissen die bein einem DBGrid ?
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Warum wird die erste Spalte nicht eingefärbt ?

  Alt 15. Jul 2003, 14:43
Hai JoelH,

schaue dir doch mal mein Beispiel in der Code-Library an. Eventuell hilft Dir das ja weiter.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
JoelH
(Gast)

n/a Beiträge
 
#5

hmm,

  Alt 15. Jul 2003, 15:08
joo,
muss heissen
if (gdSelected in State) then und nicht
if (State = [gdSelected]) then sowas aber auch.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: hmm,

  Alt 15. Jul 2003, 15:15
Zitat von JoelH:
joo,
muss heissen
....sowas aber auch.
So geht es einmal manchmal http://www.sharkys-home.de/smiles/zaehneputzen.gif

Nachtrag zu deiner Frage bzgl. Row:

Da ein DBGrid ja mit einem Query oder vergleichbar verbunden ist müsstest Du diese Info über Query1.RecNo herausbekommen.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  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 21:07 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