Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как выдавить текст?

01.01.2007

Чтобы сделать текст выпуклым, нужно за светло-серой надписью разместить точно такие же надписи, только белую чуть левее и выше и светло-серую чуть правее и ниже.

Приведенная ниже программа выводит выпуклый текст, который вдавливается при нажатии.

const
  s = 'It is a text string';
  ColDark = clGray;
  ColNorm = clSilver;
  ColLight = clWhite;
  XPos = 10;
  YPos = 10;
  dx = 1;
  dy = 1;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  Form1.Canvas.Brush.Style := bsClear;
  with Form1.Canvas.Font do begin
    Name := 'Arial';
    Size := 20;
    Style := [fsBold];
 
  end;
end;
 
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  with Form1.Canvas do begin
    Font.Color := ColDark;
    TextOut(XPos - dx, YPos - dy, s);
    Font.Color := ColLight;
    TextOut(XPos + dx, YPos + dy, s);
    Font.Color := ColNorm;
    TextOut(XPos, YPos, s);
  end;
end;
 
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
 
  Shift: TShiftState; X, Y: Integer);
begin
  with Form1.Canvas do begin
    Font.Color := ColLight;
    TextOut(XPos - dx, YPos - dy, s);
    Font.Color := ColDark;
    TextOut(XPos + dx, YPos + dy, s);
    Font.Color := ColNorm;
    TextOut(XPos, YPos, s);
  end;
end;
 
procedure TForm1.FormPaint(Sender: TObject);
begin
  Form1.MouseUp(mbLeft, [], 0, 0);
end;

Автор: Даниил Карапетян (delphi4all@narod.ru)

Автор справки: Алексей Денисов (aleksey@sch103.krasnoyarsk.su)