Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: StringGrid: Aktion beim Zellenanklicken

  Alt 2. Jun 2006, 16:24
Das lässt sich mit einen StringGrid durchaus lösen.
Jede Zelle des StringGrid muss aber zusätzlich zum Text eine Information (Farbe) tragen.
Diese Info kann man nun im Text der Zelle selbst unter bringen oder im
Property Objects[].

Delphi-Quellcode:
// StringGrid.DefaultDrawing auf False setzen
// OnDrawCell - Handler
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var
   celltext:string;
   canvas : TCanvas;
   color : TColor;
begin
   celltext := StringGrid1.Cells[Acol, ARow];
   Canvas := StringGrid1.Canvas;

   if (ACol >= StringGrid1.FixedCols) and (ARow>= StringGrid1.FixedRows) then
   begin
      color := clGreen;
      if celltext = '*then
         color := clRed
   end
   else
      color := clBtnface;

   // Hintergrund zeichnen
   Canvas.Brush.Color := color;
   Canvas.FillRect(Rect);
   // Text ausgeben
   DrawText(Canvas.Handle, PChar(celltext), Length(celltext), Rect, DT_SINGLELINE);
end;
Du brauchst jetzt du die Zellen mit einem '*' zu belegen und sie werden rot.
Andreas
  Mit Zitat antworten Zitat