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....