![]() |
FillRect(Rect) geht und in der Unterprocedure geht es nicht
Ich habe einmal
Delphi-Quellcode:
von hier
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; ![]() 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:
Also quasi einen Parameter dazu gemacht welche Spalten er einfügen soll und dann sieht die GridColor Procedure so aus
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;
Delphi-Quellcode:
leider mault er dann =>
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; Zitat:
|
Re: FillRect(Rect) geht und in der Unterprocedure geht es ni
Zitat:
|
Re: FillRect(Rect) geht und in der Unterprocedure geht es ni
Zitat:
//eidt: zu langsam ;) Mfg Frank |
hmm,
upps, dank euch. Tolle Fehlermeldung, so schön passend :( Das END; ist wohl noch von der Caseanweisung hängen geblieben :(
|
Re: FillRect(Rect) geht und in der Unterprocedure geht es ni
Klage nicht ...
Du wolltest Canvas.FillRect aufrufen, hast aber tatsächlich - durch das fehlende End - die API-Funktion FillRect aufgerufen. Die hat nun mal andere Parameter. Nebenbei: Die Fehlermeldung stand doch nicht alleine, oder? Spätestens am Ende der Fehlermeldungen muss doch irgendetwas von einem fehlenden End gestanden haben, bzw. dass "End." nicht korrekt ist. |
Re: FillRect(Rect) geht und in der Unterprocedure geht es ni
Nicht "fehlend" sondern zuviel.
|
hmm,
@Tom
nicht wirklich, k.a. , ich hab in dem Projekt 87 Hints und 43 Warnings, da guck man nimmer so genau ;) |
Re: FillRect(Rect) geht und in der Unterprocedure geht es ni
Dann solltest Du als erstes mal dafür sorgen, dass die Meldungen sich auf Null reduzieren. Schließlich möchte Dir der Compiler mit diesen etwas mitteilen.
|
hmm,
Delphi-Quellcode:
was soll ich gegen sowas machen ?
[Warning] dlg_arbeitstagekalender.pas(45): Method 'Create' hides virtual method of base type 'TCustomForm'
Und die Hints sind meist von Variablen die in Proceduren nimmer gebraucht werden etc.. Das übliche halt, damit hab ich keine Probleme. |
Re: hmm,
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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 by Thomas Breitkreuz