Einzelnen Beitrag anzeigen

Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#6

Re: TStringGrid, Sortier-Pfeil anzeigen

  Alt 18. Mär 2007, 03:40
Könntest du mir deine OnDrawCell Proceudre etwas genau erklären ????
Ich versuche auch das selbe.......

Ich habe die Procedure folgenermaßen übernommen:

Delphi-Quellcode:
procedure TStartForm.Erg2DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
var c:erg2.canvas;


begin
  if (ARow=0) then begin
    iOrderId:= GridColIndex2OrderId(ACol);
    Inc(Rect.Left,2);
    if iOrderId=ProjectList.iOrderId then begin
      Rect.Right:= Rect.Right-16;
    end;
    DrawText(c.Handle, PChar(Erg2.Cells[ACol,ARow]),
      Length(Erg2.Cells[ACol,ARow]), Rect,
      DT_END_ELLIPSIS or DT_CENTER);
    if iOrderId=ProjectList.iOrderId then begin
      Rect.Right:= Rect.Right+16;
    end;
    if iOrderId=ProjectList.iOrderId then
    begin
      if ProjectList.bOrderAsc then begin
        c.Draw(Rect.Right-15,((Rect.Bottom-Rect.Top) div 2)-6,Erg2.PicUp);
      end else begin
        c.Draw(Rect.Right-15,((Rect.Bottom-Rect.Top) div 2)-6,Erg2.PicDown);
      end;
    end;
  end;
end;
Erg2 ist in meinem beispiel das erstellte Stringgrid, bzw das Abgeleitete.... Er zeichnet mir auch die Pfeile in zeile 0, wenn ich : c.Draw(Rect.Right-15,((Rect.Bottom-Rect.Top) div 2)-6,Erg2.PicDown); benutze... ich verstehe das Ganze mit iOrderId:= GridColIndex2OrderId(ACol); nicht..... und wie ich dien mouseclick über der jewaigen zelle abfangen kann....
  Mit Zitat antworten Zitat