Отредактировано: Я хочу нарисовать вертикальную центре Ticon графических и текстовых на TJvDBGrid (Jedi потомок проекта из TDBGrid). Я попытался отключить метод DefaultDrawing для JvDBGrid и переопределить его, но я мог только заполнить ячейки черным (я думаю, что мой код неполный, чтобы выполнить переопределение).Как рисовать Vertical По центру Содержимое на DBGrid
Теперь я succeeded нарисовать значок на ячейке, а текст остается неизменным с рисунком по умолчанию. Как я могу центрировать значок (вертикальный и горизонтальный) и текст (только вертикальный), например this?
Вот мой код:
procedure TFrmXXX.JvDBGridXXXDrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
Icon: TIcon;
fixRect: TRect;
imgWidth: Integer;
begin
fixRect := Rect;
if Column.Index = 0 then //always the first one
begin
Icon := GetIcon; //Returns TIcon object
try
imgWidth := (Rect.Bottom - Rect.Top);
fixRect.Right := Rect.Left + imgWidth;
(Sender as TJvDBGrid).Canvas.StretchDraw(fixRect, Icon);
finally
Icon.Free;
end;
fixRect := Rect;
fixRect.Left := fixRect.Left + imgWidth;
end;
(Sender as TJvDBGrid).DefaultDrawColumnCell(fixRect, DataCol, Column, State);
end;
Можете ли вы сказать нам, что вы пробовали до сих пор пожалуйста. –
Какие «ошибки» вы получили? Какая версия Delphi? Каковы эти «несколько способов», которые вы пробовали? Я не вижу больших усилий, чтобы обеспечить нам достаточно возможностей для работы. –
На скриншоте, я вижу, что изображение сосредоточено, но не текст. Это противоречит вашему вопросу, предъявляющему два разных требования. Кроме того, что VCL Styles имеет отношение ко всему? Ваш скриншот также не использует их. –