![]() |
StringGrid -> Eine Zelle zweifarbig, oder halbfarbig ?
Hallo zusammen,
wie kann ich eine Zelle zweifarbig, oder nur die hälfte andersfarbig machen ? So mache ich zur Zeit eine ganze Zelle andersfarbig:
Delphi-Quellcode:
Gruss
Canvas.Brush.Color := clSilver;
Canvas.FillRect(Rect); Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]); Holger |
Re: StringGrid -> Eine Zelle zweifarbig, oder halbfarbig
Zitat:
|
Re: StringGrid -> Eine Zelle zweifarbig, oder halbfarbig
Wenn ich Rect.Left+2 auf z.B. 200 ändere passiert nichts ?
Wo muss ich da ansetzen ? Gruss Holger |
Re: StringGrid -> Eine Zelle zweifarbig, oder halbfarbig
Zitat:
|
Re: StringGrid -> Eine Zelle zweifarbig, oder halbfarbig
Aber ich kann doch vorher nur eine Farbe angeben, oder ?
So:
Delphi-Quellcode:
Wie gebe ich jetzt zwei Farben an ?
Canvas.Brush.Color := clSilver;
... und was kann man hier denn ändern:
Delphi-Quellcode:
Gruss
Canvas.FillRect(Rect)
Holger |
Re: StringGrid -> Eine Zelle zweifarbig, oder halbfarbig
Zitat:
Zitat:
|
Re: StringGrid -> Eine Zelle zweifarbig, oder halbfarbig
Du brauchst eine Procedure zum halbieren eines Rechtecks.
Delphi-Quellcode:
Und hier jetzt die Herausforderung an dich: :hi:
// Rect ist das Eingabe Rechteck
// RectA und RectB sind die Ausgaberechtecke procedure HalfRectVertical(const Rect:TRect; var RectA, RectB:TRect); schreibe die procedure HalfRectVertical und HalfRectHorizontal und ab in die Code-Library. Und später:
Delphi-Quellcode:
HalfRectVertical(Rect, RectA, RectB);
Canvas.Brush.Color := clSilver; Canvas.FillRect(RectA); Canvas.Brush.Color := clGreen; Canvas.FillRect(RectB); // der Text wird weiterhin auf dem Gesamtrechteck ausgegeben Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]); |
Re: StringGrid -> Eine Zelle zweifarbig, oder halbfarbig
Danke für die Hilfen,
aber ich glaube Ihr habt mich auf dem Gewissen. Wenn einer wie ich schon so blöde Fragen stellt, wie soll er dann so eine Aufgabe lösen ? Kann es sein das die procedure erst einmal eine function sein muss wo das Rect rein geht und das Result RectA und RectB ist. Habe bei diesem Rect echt keinen Ansatz. Hilfe !!! Gruss Holger |
Re: StringGrid -> Eine Zelle zweifarbig, oder halbfarbig
Hallo,
eine kleine Ergänzung:
Delphi-Quellcode:
Gruß Hawkeye
HalfRectVertical(Rect, RectA, RectB);
Canvas.Brush.Color := clSilver; Canvas.FillRect(RectA); Canvas.Brush.Color := clGreen; Canvas.FillRect(RectB); Canvas.Brush.Style := bsClear; // <--- damit der Text transparent ausgegeben wird // der Text wird weiterhin auf dem Gesamtrechteck ausgegeben Canvas.TextOut(Rect.Left+2, Rect.Top+2, Cells[ACol, ARow]); |
Re: StringGrid -> Eine Zelle zweifarbig, oder halbfarbig
Danke,
aber was steckt nun hier für eine Zauberrei dahinter:
Delphi-Quellcode:
Gruss
HalfRectVertical(Rect, RectA, RectB);
Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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