Чтение онлайн

на главную - закладки

Жанры

Советы по Delphi. Версия 1.4.3 от 1.1.2001

Озеров Валентин

Шрифт:

var

 S: array[0..255] of Char;

 B, R: TRect;

begin

 with ACanvas, ARect do begin

case Format of

DT_LEFT:

ExtTextOut(Handle, Left + DX, Top + DY, ETO_OPAQUE or ETO_CLIPPED,@ARect, StrPCopy(S, Text), Length(Text), nil);

DT_RIGHT:

ExtTextOut(Handle, Right - TextWidth(Text) - 3, Top + DY,ETO_OPAQUE or ETO_CLIPPED, @ARect, StrPCopy(S, Text),Length(Text), nil);

DT_CENTER:

ExtTextOut(Handle, Left + (Right - Left - TextWidth(Text)) div 2, Top + DY, ETO_OPAQUE or ETO_CLIPPED, @ARect,StrPCopy(S, Text), Length(Text), nil);

end;

 end;

end;

procedure TBEFStringGrid.DrawCell(Col, Row: Longint; Rect: TRect; State: TGridDrawState);

var

 procedure Display(const S: string; Alignment: TAlignment);

 const Formats: array[TAlignment] of Word = (DT_LEFT, DT_RIGHT, DT_CENTER);

 begin

WriteText(Canvas, Rect, 2, 2, S, Formats[Alignment]);

 end;

begin

 {
здесь задаем аргументы Col и Row, и форматируем как угодно ячейки }

 case Row of

 0: { Центрирование заголовков колонок }

if (Col < ColCount) then Display(Cells[Col,Row], taCenter)

else

{ Все другие данные имеют правое центрирование }

Display(Cells[Col,Row], taRight);

 end;

end;
 

Выравнивание колонок StringGrid IV

Delphi 1 

Создайте ваш собственный метод drawcell на примере того, что приведен ниже:

procedure Tsearchfrm.Grid1DrawCell(Sender: TObject; Col, Row: Longint; Rect: TRect; State: TGridDrawState);

var l_oldalign : word;

begin

 if (row=0) or (col<2) then grid1.canvas.font.style:= grid1.canvas.font.style+[fsbold]; {устанавливаем заголовок в жирном начертании}

 if col<>1 then begin

l_oldalign:=settextalign(grid1.canvas.handle, ta_right);

{NB
использует для рисования правую сторону квадрата}

grid1.canvas.textrect(rect,rect.right-2, Rect.top+2,grid1.cells[col,row]);

settextalign(grid1.canvas.handle,l_oldalign);

 end else begin

grid1.canvas.textrect(rect, rect.left+2, rect.top+2, grid1.cells[col,row]);

 end;

 grid1.canvas.font.style:= grid1.canvas.font.style-[fsbold];

end;

Покрашенный StringGrid I

Delphi 1

…вы можете попробовать использовать StringGrid. У него имеется свойство Objects, через которое вы можете назначать объекты. Создайте объект, содержащий переменную типа TColor, и назначьте это Objects[col,row], что позволит иметь к нему доступ в любое время. Назначьте событие OnDrawCell StringGrid, позволяющее рисовать текст ячейки правильного цвета. Чтобы убедиться, что ячейка выбрана, воспользуйтесь свойством Selection, содержащим то, что выбрал пользователь. Все это должно выглядеть приблизительно так:

type TStrColor = class(TObject)

public

Color : TColor; {вы могли бы также определить частные и публичные методы доступа}

end;

procedure TForm1.FormCreate(Sender:TObject)

var i,j : Integer;

begin

 With StringList1 do

for i := 0 to ColCount-1

for j := 0 to RowCount-1 Objects[i,j] := TStrColor.Create;

end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row: Longint; Rect: TRect; State: TGridDrawState);

var OldColor : TColor;

begin

 with StringGrid1.Canvas do begin

OldColor := Font.Color;

Font.Color := (StringGrid1.Objects[col,row] as TStrColor).Color;

TextOut(Rect.Left+2, Rect.Top+2, StringGrid1.Cells[Col,Row]);

Font.Color := OldColor;

 end;

end;

procedure TForm1.ProcessSelection(Sender: TObject);

Поделиться:
Популярные книги

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Сердце Дракона. Том 11

Клеванский Кирилл Сергеевич
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50
рейтинг книги
Сердце Дракона. Том 11

Первый среди равных. Книга IV

Бор Жорж
4. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IV

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Мастер Разума IV

Кронос Александр
4. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума IV

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

Кадры решают все

Злотников Роман Валерьевич
2. Элита элит
Фантастика:
боевая фантастика
попаданцы
альтернативная история
8.09
рейтинг книги
Кадры решают все

Плеяда

Суконкин Алексей
Проза:
военная проза
русская классическая проза
5.00
рейтинг книги
Плеяда

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Ученик. Книга 4

Первухин Андрей Евгеньевич
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Ученик. Книга 4

Законник Российской Империи. Том 3

Ткачев Андрей Юрьевич
3. Словом и делом
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
5.00
рейтинг книги
Законник Российской Империи. Том 3

Ваше Сиятельство 7

Моури Эрли
7. Ваше Сиятельство
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Ваше Сиятельство 7

Война

Валериев Игорь
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Война

Младший сын князя. Том 4

Ткачев Андрей Юрьевич
4. Аналитик
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Младший сын князя. Том 4