Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > Как выдавить текст


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

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

Код
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; 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)