AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi FillRect(Rect) geht und in der Unterprocedure geht es nicht
Thema durchsuchen
Ansicht
Themen-Optionen

FillRect(Rect) geht und in der Unterprocedure geht es nicht

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

n/a Beiträge
 
#1

FillRect(Rect) geht und in der Unterprocedure geht es nicht

  Alt 11. Jul 2003, 08:30
Ich habe einmal
Delphi-Quellcode:
PROCEDURE TMainForm.ColorGridDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
BEGIN
WITH ColorGrid.Canvas DO
BEGIN
CASE (ACol * ARow) MOD 11 OF
0: Brush.Color := clBtnFace;
1: Brush.Color := clYellow;
2: Brush.Color := clWhite;
3: Brush.Color := clBlue;
4: Brush.Color := clRed;
5: Brush.Color := clNavy;
6: Brush.Color := clMaroon;
7: Brush.Color := clGreen;
8: Brush.Color := clAqua;
9: Brush.Color := clFuchsia;
10: Brush.Color := clPurple;
END;
IF (ColorGrid.Selection.Left = ACol) AND (ColorGrid.Selection.Top = ARow) THEN
Brush.Color := clLime;
FillRect(Rect);
Font.Color := Brush.Color XOR 65535;
TextOut(Rect.Left, Rect.Top, ColorGrid.Cells[ACol, ARow]);
END;
END;
von hier Beispiel

Das geht auch und in meinem Programm geht es so auch aber wenn ich das so umbauen will, weil ich viel Grids hab die unterschiedlich eingefärbt werden sollen hab ich gemacht
Delphi-Quellcode:
procedure Tfrm_Objektuebersicht.stg_patenschaftenDrawCell(Sender: TObject;
  ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var reihen : Array od Integer;
begin
  setlength(reihen,1);
  reihen[0] := 1;
  Gridcolor(Sender,ACol, ARow, Rect, State, reihen);
end;
Also quasi einen Parameter dazu gemacht welche Spalten er einfügen soll und dann sieht die GridColor Procedure so aus
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 ARow = geldrows[i] Then check := true;
      end;
      if (ARow <> 0) AND (check) then
        Brush.Color := schriftfarbe
      else
        Brush.Color := gridhintergrund;
      END;
      IF (Selection.Left = ACol) AND (Selection.Top = ARow) THEN
        Brush.Color := clLime;
      FillRect(Rect);
      Font.Color := Brush.Color XOR 65535;
      TextOut(Rect.Left, Rect.Top, Cells[ACol, ARow]);
    END;
  end;
end;
leider mault er dann =>
Zitat:
[Error] U_extra.pas(684): Incompatible types: 'HDC' and 'TRect'
warum nur ?
  Mit Zitat antworten Zitat
 


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 06:12 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