Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.11.2011, 23:18
POMOGITE!!! POMOGITE!!! вне форума
Прохожий
 
Регистрация: 24.11.2011
Сообщения: 1
Репутация: 10
По умолчанию Очень нужна ваша помощь

Очень нужна ваша помощь!!! в Delphi я дуб-дубом! без готового листинга написать ничего не могу. а нужно срочно придумать проект какой-то!!! что-то простенькое!!! люди добрые, не проходите мимо, помогите !!!!!!!!!! может конвертер какой-то.
Ответить с цитированием
  #2  
Старый 24.11.2011, 23:28
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

Вам в раздел работа, там помогут!
Ответить с цитированием
  #3  
Старый 25.11.2011, 02:53
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Ну ни фига себе... "Придумайте сами что-нибудь, напишите это..."
Уважаемый, у вас на плечах есть такая штука - голова называется. Древние монахи что-то поговаривали, что в ней какая-то забавная штука есть, мозгом называли, или как-то так...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #4  
Старый 25.11.2011, 03:08
Аватар для ryderx34
ryderx34 ryderx34 вне форума
Активный
 
Регистрация: 22.01.2010
Сообщения: 211
Версия Delphi: 7, 2010
Репутация: 1349
По умолчанию

На сайте полно исходников, скачай что-нибудь.
Ответить с цитированием
  #5  
Старый 25.11.2011, 03:20
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Вот тебе пример:
Код:
type
  TShadowPosition	= (spNone, spLeftTop, spLeftBottom, spRightBottom, spRightTop);
  TFontStyle		= (fsNone, fsBold, fsItalic, fsUnderline, fsStrikeOut);
  TFontStyles		= set of TFontStyle;
  TTextStyle		= (tsLeft, tsCenter, tsVCenter, tsRight, tsTop, tsBottom, tsSingle, tsBreak, tsCalc, tsOpaque);
  TTextStyles		= set of TTextStyle;

//----------------------------------------------------------

function GetNewFont(DC : HDC; FntName : String; FontSize : Integer; Style : TFontStyles): hFont;
var
 Fnt	: hFont;
 Bold	: Integer;
 Name	: String;
begin
  if fsBold in Style then
    Bold := FW_BOLD
  else
    Bold := FW_NORMAL;
  Name   := 'MS Sans Serif';
  if Length(FntName) <> 0 then
    Name := FntName;
  Fnt := CreateFont(-MulDiv(FontSize, GetDeviceCaps(DC, LOGPIXELSY),
	 72), 0, 0, 0,
	 Bold,
	 Byte(fsItalic in Style),
	 Byte(fsUnderline in Style),
	 Byte(fsStrikeOut in Style),
	 ANSI_CHARSET or RUSSIAN_CHARSET,
	 OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY,
	 DEFAULT_PITCH or FF_MODERN,
	 PChar(Name));
  Result := Fnt;
end;

//----------------------------------------------------------

function DrawShadowText(DC : HDC; S: PChar;
			var aRect: TRect;
			ShadowSize: Byte;
			TextColor,
			ShadowColor: TColorRef;
			ShadowPos: TShadowPosition;
			SelFont : Boolean;
			FntName : String;
			SizeFont : Integer;
			FontStyle : TFontStyles;
			TextStyle : TTextStyles) : Integer;
var
  RText,
  RShadow	: TRect;
  TxtStyle	: Integer;
  BkMode	: Integer;
begin
  RText    := aRect;
  RShadow  := aRect;
  TxtStyle := 0;
  BkMode   := TRANSPARENT;
  if tsLeft    in TextStyle then TxtStyle := TxtStyle or DT_LEFT;
  if tsCenter  in TextStyle then TxtStyle := TxtStyle or DT_CENTER;
  if tsVCenter in TextStyle then TxtStyle := TxtStyle or DT_VCENTER;
  if tsRight   in TextStyle then TxtStyle := TxtStyle or DT_RIGHT;
  if tsTop     in TextStyle then TxtStyle := TxtStyle or DT_TOP;
  if tsBottom  in TextStyle then TxtStyle := TxtStyle or DT_BOTTOM;
  if tsSingle  in TextStyle then TxtStyle := TxtStyle or DT_SINGLELINE;
  if tsBreak   in TextStyle then TxtStyle := TxtStyle or DT_WORDBREAK;
  if tsCalc    in TextStyle then TxtStyle := TxtStyle or DT_CALCRECT;
  if tsOpaque  in TextStyle then BkMode := OPAQUE;

  case ShadowPos of
    spNone	  : OffsetRect(RShadow, 0, 0);
    spLeftTop	  : OffsetRect(RShadow, -ShadowSize, -ShadowSize);
    spRightBottom : OffsetRect(RShadow,  ShadowSize,  ShadowSize);
    spLeftBottom  : OffsetRect(RShadow, -ShadowSize,  ShadowSize);
    spRightTop    : OffsetRect(RShadow,  ShadowSize, -ShadowSize);
  end; { case }

  if SelFont then
  begin
    hfntNew := GetNewFont(DC, FntName, SizeFont, FontStyle);
    if hfntNew <> 0 then
      hfntDefault := SelectObject(DC, hfntNew);
  end;
  try
    SetBkMode(DC, BkMode);

    SetTextColor(DC, ShadowColor);
    DrawText(DC, S, -1, RShadow, {DT_VCENTER or} TxtStyle);
    SetTextColor(DC, TextColor);
    Result := DrawText(DC, S, -1, RText, {DT_VCENTER or} TxtStyle);

    if tsCalc in TextStyle then
    begin
      if tsCenter in TextStyle then
      begin
	OffsetRect(RText, ((aRect.Right - aRect.Left) - (RText.Right - RText.Left)) div 2, 0);
	OffsetRect(RShadow, ((aRect.Right - aRect.Left) - (RShadow.Right - RShadow.Left)) div 2, 0);
      end;
      UnionRect(aRect, RText, RShadow);
    end;
  finally
    if SelFont then
    begin
      if hfntNew <> 0 then
	DeleteObject(SelectObject(DC, hfntDefault));
    end;
  end;
end;
пример использования:
Код:
var
  aRect : TRect;
begin
  SetTect(aRect, 0, 0, 800, 600);
  DrawShadowText(GetDC(0), 'Дельфи - это круто', aRect, 1, $FF, $0000FF, spRightBottom, True, 'Tahoma', 8, [fsBold], [tsCenter, tsVCenter, tsSingle]);
end;
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025