Einzelnen Beitrag anzeigen

Benutzerbild von Taladan
Taladan

Registriert seit: 5. Aug 2003
Ort: Osnabrück
505 Beiträge
 
Delphi 2005 Professional
 
#1

StringGrid.Select nicht richtig angezeigt

  Alt 26. Mär 2004, 14:24
hallo hab mein StringGrid = Tabelle formatiert und dann möchte ich ganz gerne, das die gesamte Zeile Selektiert wird, aber immer bei spalte 4 wird nur der Focusrahmen und nicht der blaue balken angezeigt, dat sieht ein wenig doof aus, entweder focusrahmen oder blauer balken, aber so...
Wie kann ich das ändern?

Delphi-Quellcode:
procedure TFormDateneingabeBuecher.BtRefreshClick(Sender: TObject);
var I : Integer;
begin
     BefBuecher.Lesen;
     Tabelle.Cells[0,0] := 'Nr';
     Tabelle.Cells[1,0] := 'Abkürzung';
     Tabelle.Cells[2,0] := 'Titel';
     Tabelle.Cells[3,0] := 'Langbeschreibung';
     Tabelle.ColWidths[0] := 30;
     Tabelle.ColWidths[1] := 65;
     Tabelle.ColWidths[2] := 164;
     Tabelle.ColWidths[3] := 110;
     Tabelle.DefaultRowHeight := 17;
     for i := 0 to High(Buecher) do
     begin
        Tabelle.RowCount := i+2;
        Tabelle.Cells[0,i+1] := inttostr(Buecher[i].ID);
        Tabelle.Cells[1,i+1] := Buecher[i].Abkuerzung;
        Tabelle.Cells[2,i+1] := Buecher[i].Titel;
        Tabelle.Cells[3,i+1] := '...mehr';
     end;
     Tabelle.Options := [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRowMoving, goColMoving, goEditing, goTabs, goRowSelect, goThumbTracking];

end;

procedure TFormDateneingabeBuecher.TabelleDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
    If (ACol = 3) or (ARow = 0) Then Begin
      Tabelle.Canvas.Brush.Color := Tabelle.Color;
      Tabelle.Canvas.FillRect(Rect);
      Tabelle.Canvas.Font := Tabelle.Font;
      if not ((ACol=3) and (ARow <> 0)) then Tabelle.Canvas.Font.Style := [fsBold];
      if not (ARow = 0) then Tabelle.Canvas.Font.Color := clNavy;
      Tabelle.Canvas.TextRect(Rect,
      Rect.Left + ((Rect.Right-Rect.Left) div 2) - (Tabelle.Canvas.TextWidth(Tabelle.Cells[ACol,ARow])div 2),
      Rect.Top + 2, Tabelle.Cells[ACol, ARow]);
    End; //
end;

procedure TFormDateneingabeBuecher.TabelleClick(Sender: TObject);
begin
     Tabelle.Selection := TGridRect(Rect(0,Tabelle.row,3,Tabelle.row));
     Edit1.Text := inttostr(tabelle.row);
end;
Marco
Wer Rechtschreibfehler findet, der darf sie behalten

Carpe Diem - Nutze den Tag (und zwar den ganzen!)
  Mit Zitat antworten Zitat