Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Stringrid nur zur Anzeige

  Alt 17. Sep 2005, 14:07
Hallo Hansa,

damit der Benutzer das StringGrid auf deinem Formular nicht erst mit der Maus anklicken muss, kannst du das StringGrid im Object Inspector zum ActiveControl der Form machen. Damit grundsätzlich keine blaue Selektion zu sehen ist, musst du DefaultDrawing auf FALSE setzen und das Ereignis OnDrawCell() bedienen:

Delphi-Quellcode:
procedure TDemoForm.StringGridDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  with StringGrid do
  begin
    if gdFixed in State
      then Canvas.Brush.Color := FixedColor
      else Canvas.Brush.Color := Color;
    Canvas.FillRect(Rect);
    Canvas.TextOut(Rect.Left, Rect.Top, Cells[ACol, ARow]);
    if gdFocused in State
      then Canvas.DrawFocusRect(Rect);
  end;
end;
Ein Nachteil von so einem StringGrid (r/o und kein area select) ist auf jeden Fall, dass du den Benutzer beim Arbeiten mit Copy & Paste behinderst.

Grüße vom marabu
  Mit Zitat antworten Zitat