Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

(API) Не могу текст переместить в нужное место на форме   Найти похожие ветки 

 
ffo ©   (2006-08-22 21:37) [0]

Привет Мастера!
Создал экземпляр нового шрифта, задал ему цвет, поворот, фон...
надо теперь чтоб писаться он начинал в определенной точке формы с координатами i,j. Не получается.
Есть конечно и другие варианты работы со шрифтом на форме, но по ряду причин мне надо именно так (текст там будет состоять из 1-3 букв, ну да это уже ненужные подробности).
Вывожу текст так (выводится исключительно в верхний левый угол формы):

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls, Buttons;
type
 TForm1 = class(TForm)
   BitBtn1: TBitBtn;
   procedure BitBtn1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
   Str:String;
 DC1:HDC;
 F1: TLogFont;
 NewFont1:HFont;
 //NewBrush: HBrush;
 //NewPen: HPen;
 tRect1:TRect;
 i:Integer =400;//куда хочу вывести
 j:Integer =400;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin
DC1:= GetDC(Handle);
Str:="L";
try
FillChar(F1, SizeOf(F1), 0);

with F1 do
begin
 lfHeight := 50;lfWeight := 0;lfEscapement:=0;
 lfOrientation:=0;lfWeight:=fw_Normal;lfItalic:=0;lfUnderline:=0;lfStrikeOut:=0;l fCharSet:=Symbol_CharSet;
 lfOutPrecision:=Out_Default_Precis;lfClipPrecision:=Clip_Default_Precis;lfQualit y:=Proof_Quality;
 lfPitchAndFamily:=Fixed_Pitch or ff_Roman;StrPCopy(lfFaceName,"Times New Roman"{"SBAVIA"});
end;

NewFont1:= CreateFontIndirect(F1);
SelectObject(DC1,NewFont1);
// SetTextColor(DC1,clRed);
SetTextColor(DC1,clBlue);
SetBkMode(DC1,TRANSPARENT);
Canvas.PenPos:=Point(i,j);//Задал позицию курсора 300/300
tRect1:=Canvas.ClipRect;
DrawText(DC1,PChar(Str), -1,tRect1,dt_NoClip); //Работает !!!... но выводит черти куда

//Не работает
// SelectObject(DC1,NewFont1); SetTextColor(DC1,clRed); SetBkMode(DC1, TRANSPARENT);
// TextOut(DC1, 300,400,PChar(Str),Length(Str));

finally
 ReleaseDC(Handle,DC1);//Освободили ссылку
 DeleteDC(DC1);//Удалили ссылку
 DeleteObject(NewFont1);
 //DeleteObject(NewBrush); //Удалить объект
 //DeleteObject(NewPen); //Удалить объект
end;
end;
end.


 
begin...end ©   (2006-08-22 21:49) [1]

> ffo ©   (22.08.06 21:37)

> tRect1:=Canvas.ClipRect;
> DrawText(DC1,PChar(Str), -1,tRect1,dt_NoClip);

???


 
Ketmar ©   (2006-08-22 21:53) [2]

интересно, нафига использовать API в данном VCL-приложении?


 
ffo ©   (2006-08-22 22:15) [3]


> интересно, нафига использовать API в данном VCL-приложении?


Да это не основное приложение, а вынесенный пример так сказать для отладки.

Иду проверять предложение
begin...end


 
Anatoly Podgoretsky ©   (2006-08-22 22:18) [4]

То есть будешь выяснять сколько у него вопросов?


 
Ketmar ©   (2006-08-22 22:22) [5]

> [4] Anatoly Podgoretsky ©   (22.08.06 22:18)
кстати, win32.hlp в данном случае и меня когда-то в тупик поставила. я понимал так, что передаваемый rect -- это всего лишь размеры. оказалось -- неправда, это позиция и размеры. %-)


 
ffo ©   (2006-08-22 22:29) [6]


> Ketmar


Вопрос так и стоит...


 
DiamondShark ©   (2006-08-22 22:34) [7]

Это вы на что намекаете?


 
Ketmar ©   (2006-08-22 22:36) [8]

> [7] DiamondShark ©   (22.08.06 22:34)
на ахтунг? но это не ко мне, честно. меня с кем-то попутали! Йогг Сотот Ктулху Фхтагхн!

%-)



Страницы: 1 вся ветка

Текущий архив: 2006.09.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
15-1155792416
vidiv
2006-08-17 09:26
2006.09.10
webmoney в инет-магазине.


15-1155885857
tesseract
2006-08-18 11:24
2006.09.10
До выхода turbo delphi осталось :


1-1154167517
OlDirtyBastard
2006-07-29 14:05
2006.09.10
Подскажите как передавть приложению параметры,


2-1156019143
Silver...
2006-08-20 00:25
2006.09.10
Нужна помощь/подсказка


15-1155849254
ronyn
2006-08-18 01:14
2006.09.10
Окно выбора пользователя