Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi 2 Fragen zum StringGrid (https://www.delphipraxis.net/100514-2-fragen-zum-stringgrid.html)

chrislike 29. Sep 2007 11:15


2 Fragen zum StringGrid
 
Hallo,

ich komm gleich zur ersten Frage:

In meinem StringGrid wird jede Zeile abwechselnd gefärbt(zur besseren Unterscheidung), wenn ich nun ein gefärbtes Feld markieren will, färbt er es nicht entsprechend der Markierung.

Code:
procedure TForm1.StringGrid1Click(Sender: TObject);
begin
  StringGrid1.Selection := TGridRect(Rect(0, StringGrid1.Row, StringGrid1.ColCount - 1, StringGrid1.Row));      
end;
und es will irgendwie auch nicht Markieren wenn ich auf die FixedRows klicke.


zweite Frage:

Da ich auch von den Spalten her eine Färbung durchführen muss(für die Wochenenden), habe ich folgenden Code im StringGridOnDrawCell-Ereignis eingebaut:

Code:
Days := DaysPerMonth(month, year);
if (Acol >= 1) and (Acol <= Days) then
begin
   if (isWeekend(ACol) = true) then
   begin
     Brush.Color:= clRed;
     FillRect(Rect);
     TextOut(Rect.Left+2, Rect.Top+2, stringgrid1.Cells[ACol, ARow]);
   end;
end;
wenn ich jetzt von Spalte 1 bis 30(Days) was eintragen will geht es einfach nicht, in den anderen Spalten schon.

Komischerweise hat es geklappt als dieser Code noch nicht drin war, aber die Zeilenfärbung schon.

Bitte um Rat, bin Delphi-Neuling :oops:

MfG Chris

Klaus01 29. Sep 2007 11:32

Re: 2 Fragen zum StringGrid
 
Hallo,

zur zweiten Frage:

Zitat:

zweite Frage:

Da ich auch von den Spalten her eine Färbung durchführen muss(für die Wochenenden), habe ich folgenden Code im StringGridOnDrawCell-Ereignis eingebaut:
Delphi-Quellcode:

Days := DaysPerMonth(month, year);
if (Acol >= 1) and (Acol <= Days) then
begin
   if (isWeekend(ACol) = true) then
   begin
     Brush.Color:= clRed;
     FillRect(Rect);
     TextOut(Rect.Left+2, Rect.Top+2, stringgrid1.Cells[ACol, ARow]);
   end;
end;
wenn ich jetzt von Spalte 1 bis 30(Days) was eintragen will geht es einfach nicht, in den anderen Spalten schon.

Vielleicht solltest Du in den else Zweig der if is weekend noch etwas eintragen.
So malt Dein Code nur wenn Wochenende ist.

Und für das nächste Mal, bitte für jede Frage einen Thread öffnen.

Grüße
Klaus

chrislike 29. Sep 2007 11:40

Re: 2 Fragen zum StringGrid
 
Zitat:

Vielleicht solltest Du in den else Zweig der if is weekend noch etwas eintragen.
So malt Dein Code nur wenn Wochenende ist.
soll er ja auch nur :)

oder versteh ich dich grad falsch? ^^


Zitat:

Und für das nächste Mal, bitte für jede Frage einen Thread öffnen.
OK :( dachte nur ich Spam mal nich das ganze Forum voll mit meinen dummen Fragen

TBx 29. Sep 2007 12:32

Re: 2 Fragen zum StringGrid
 
Zitat:

Zitat von Klaus01
Vielleicht solltest Du in den else Zweig der if is weekend noch etwas eintragen.
So malt Dein Code nur wenn Wochenende ist.

Zitat:

Zitat von chrislike
soll er ja auch nur :)

oder versteh ich dich grad falsch? ^^

Yep, hier verstehst DU was falsch ;-) Wenn Du OnDrawCell benutzt, bist Du vollständig für das Füllen der Zelle verantwortlich, Du must also auch den Text selber ausgeben.

Gruß

onlinekater

chrislike 30. Sep 2007 17:59

Re: 2 Fragen zum StringGrid
 
hmm...ich steh aufm schlauch, verstehe zwar was ihr meint, aber habe absolut keine lösung parat

hat jemand noch ne lösung zur ersten frage?

helft mir


MfG Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:08 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