Часы на картинке...

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by WON, 23 Dec 2008.

Thread Status:
Not open for further replies.
  1. WON

    WON New Member

    Joined:
    2 Jul 2008
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    Форма не имеет строки заголовка, всю её клиентскую часть занимает картинка, на которой отображается текущее время.

    Я пробовал зделать так:
    Code:
    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;
    Но выскакивает ошибка:
    Code:
    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.
    Я понимаю что оно не может рисовать на загруженом рисунке поэтому возникает вопрос... Как зделать что бы можно было?
     
    #1 WON, 23 Dec 2008
    Last edited: 23 Dec 2008
  2. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    если рисунок в bmp ошибки не будет. Если не хочешь хранить файл рисунка в таком формате то можешь преобразовывать его в битмап непосредственно в программе.
     
    #2 bons, 23 Dec 2008
    Last edited: 23 Dec 2008
  3. WON

    WON New Member

    Joined:
    2 Jul 2008
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    А как?

    Code:
    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;
    такой вариант работать не хочет... даже если коментарий убрать...
     
    #3 WON, 23 Dec 2008
    Last edited: 23 Dec 2008
  4. bons

    bons Elder - Старейшина

    Joined:
    20 Dec 2007
    Messages:
    286
    Likes Received:
    121
    Reputations:
    21
    Code:
    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;
     
    1 person likes this.
  5. WON

    WON New Member

    Joined:
    2 Jul 2008
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    всё спасибо.. я понял где протупил....
    Code:
    jpeg := TJPEG.Create;
     
  6. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Вопрос решен. Closed.
     
    2 people like this.
Thread Status:
Not open for further replies.