PDA

Просмотр полной версии : Часы на картинке...


WON
23.12.2008, 18:34
Форма не имеет строки заголовка, всю её клиентскую часть занимает картинка, на которой отображается текущее время.

Я пробовал зделать так:
procedure TForm1.FormCreate(Sender: TObject);
begin
WindowState := wsMaximized;
BorderStyle := bsNone;
Image1.Align := alClient;
Image1.Picture.LoadFromFile('C:\Documents and Settings\Администратор\Мои документы\Мои рисунки\x_030ddb01.jpg');
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image1.Canvas.TextOut(100,100, TimeToStr(Time));
end;

Но выскакивает ошибка:
Project Project1.exe raised exception class EInvalidOperation with message 'Can only modify am image if it containts a bitmap'. Process stopped. Use Step or Run to continue.
Я понимаю что оно не может рисовать на загруженом рисунке поэтому возникает вопрос... Как зделать что бы можно было?

bons
23.12.2008, 19:32
если рисунок в bmp ошибки не будет. Если не хочешь хранить файл рисунка в таком формате то можешь преобразовывать его в битмап непосредственно в программе.

WON
23.12.2008, 19:52
А как?

procedure TForm1.FormCreate(Sender: TObject);

var jpeg : TJPEGImage;

begin

//jpeg.Create;

WindowState := wsMaximized;

Image1.Align := alClient;

BorderStyle := bsNone;

jpeg.LoadFromFile('C:\Documents and Settings\Администратор\Мои документы\Мои рисунки\x_030ddb01.jpg');

Image1.Picture.Bitmap.Assign(jpeg);

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

Image1.Canvas.TextOut(100,100, TimeToStr(Time));

end;

такой вариант работать не хочет... даже если коментарий убрать...

bons
23.12.2008, 20:06
procedure TForm1.FormCreate(Sender: TObject);
var jpg:TJPEGImage;
begin
jpg:=TJPEGImage.Create;
jpg.LoadFromFile('d:\Apathy.jpg');
Image1.Picture.Bitmap.Assign(jpg);
jpg.Free;
end;

WON
23.12.2008, 20:13
всё спасибо.. я понял где протупил....
jpeg := TJPEG.Create;

De-visible
23.12.2008, 21:01
Вопрос решен. Closed.