AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

TStringGrid

Ein Thema von michael.cohrs · begonnen am 23. Mai 2008 · letzter Beitrag vom 23. Mai 2008
Antwort Antwort
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#1

TStringGrid

  Alt 23. Mai 2008, 14:30
Hallo zusammen,

ich weiß, bestimmt eine Anfängerfrage aber mir fällt die lösung nicht ein

ich möchte beim Selectieren von Zellen einer Stringgrid die Rahmenfarbe mit der
Selectierfarbe überschreiben, weiß aber nicht wie ich das schnell lösen kenn, hier mal ein kurzer
Auszug des Quelltextes

Delphi-Quellcode:
procedure TfrKalender.sgCalenderDrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
  sText : String;
begin
  With sgCalender,canvas do
  begin
    if (gdFixed in State) then
    // fixen Zellen
      Brush.Color:= clBtnFace
    else
    if (ARow Mod 2 = 0) then
    begin
    // Zeilen mit gerader Zeilenzahl
      Brush.Color:= $00F9FDD7;
      Font.Color:= clWhite;
    end
    else
    //Zeilen mit ungerader Zeilenzahl
      Brush.Color:= clWhite;
    if (ACol = 1) or (ARow = 0) then
      sText :=Cells[Acol,ARow];
    if sText = 'Sa.then
    begin
      Font.Color := $004080FF;
      Font.Style := [fsBold];
    end;
    if sText = 'So.then
    begin
      Font.Color := clRed;
      Font.Style := [fsBold];
    end;
    if (gdSelected in State) then
    begin
[b]// hier sollen die Linien der Zellen durch die Hintergrundsfarbe ersetzt werden!![/b]
      Brush.Color := $00B9B9FF;
      Pen.Color := clWhite;
      label1.Caption := inttostr(acol);
    end;
     FillRect(rect);
    // Text zeichnen
    TextOut(Rect.Left + 2, Rect.Top + 2, sgCalender.Cells[ACol, ARow]);
  end;
end;

Für einen schnellen Tipp wäre ich sehr dankbar.

Viele Grüße

Michael
Michael Cohrs
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#2

Re: TStringGrid

  Alt 23. Mai 2008, 14:41
Hallo,

kann es sein, dass Du einfach vergessen hast, die Linien mit MoveTo() und LineTo() zu zeichnen?

Es genügt nicht, einfach nur die Farbe zu setzen - da die Linie kein Objekt ist, das sich selber ändert, musst Du schon den Pinsel schwingen

Benutze dazu einfach die Werte aus 'Rect'.
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#3

Re: TStringGrid

  Alt 23. Mai 2008, 14:50
Danke für die schnelle Antwort, hättest du vieleicht nen kleine Beispiel für mich???

Gruß

Michael
Michael Cohrs
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#4

Re: TStringGrid

  Alt 23. Mai 2008, 15:03
Ungetestet

Sollte die untere Linie färben:
Delphi-Quellcode:
Canvas.Brush.Color := $00B9B9FF;
Canvas.Pen.Color := clWhite;
Canvas.MoveTo(Rect.Left, Rect.Bottom);
Canvas.LineTo(Rect.Right + 1, Rect.Bottom); // (+ 1) um den Schnittpuntk mit der rechten Linie ebenfalls zu färben
Die anderen Linien analog dazu.
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#5

Re: TStringGrid

  Alt 23. Mai 2008, 15:33
Grrrr....

ich kriegs einfach nich hin, möchte nur die vertikalen Linien durch die Hintergrundsfarbe ersetzen aber irgendwie funktioniert das nicht,

bitte....hast du nen Tipp oder Codeschnipsel?

Danke

Michael
Michael Cohrs
  Mit Zitat antworten Zitat
michael.cohrs

Registriert seit: 11. Nov 2005
Ort: Hamburg
130 Beiträge
 
#6

Re: TStringGrid

  Alt 23. Mai 2008, 15:42
Erledigt,

vielen Dank für Deine Hilfe, manchmal sieht man den Baum vor lauter Wald nicht,

Viele Grüße

Michael
Michael Cohrs
  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 21:02 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