2016-10-19 9 views
-1

私は脳を伸ばしてDelphiで読み込み画面を作成しようとしていますが、どこにでもヘルプが見つかりません。Delphiで '偽の読み込み画面'を作成するには

私は学校プロジェクト用のゲームを作成しています。ローディング画面を模倣したフォームを実装したいと思います。

私は画面全体にシェイプを移動したいので、トレールの後ろに残したい(進捗バーを模倣する)。私はそれが進行を滑らかにタイマーを使用して知っているが、私はどのように正確に図形でタイマーを使用するか分からない。

私がこれを行うために使用するコード/機能を誰かに教えていただければ幸いです。

よろしくお願いいたします。 クゾン。

+1

ロード画面はなぜ "模倣"?実際のローディング画面を作ってみませんか?違いは何ですか? –

+0

違いは、私が前に述べたようにプログラムは学校のプロジェクトであり、実際の読み込み画面は少し深いところです。 '偽の'読み込み画面は、プログラムをよりプロフェッショナルに見せるための美学のためだけのものです。 –

+0

誰がダウン投票したのですか...なぜですか? –

答えて

1

タイマーで図形を移動し、証跡を残すために:

たびにタイマーイベントが発生し、形状の位置を調整します。 トレイルは、タイマーごとに幅を加えて、ここに形をして作られています。

unit MoveShape; 

interface 

uses 
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls; 

type 
    TFormMoveShape = class(TForm) 
    Shape1: TShape; 
    Timer1: TTimer; 
    Shape2: TShape; 
    procedure Timer1Timer(Sender: TObject); 
    private 
    { Private declarations } 
    public 
    { Public declarations } 
    end; 

var 
    FormMoveShape: TFormMoveShape; 

implementation 

{$R *.dfm} 

const 
    cMoveIncrement = 2; 

procedure TFormMoveShape.Timer1Timer(Sender: TObject); 
begin 
    if (Shape1.Left + Shape1.Width < Self.ClientWidth - cMoveIncrement) then 
    begin 
    Shape1.Left := Shape1.Left + cMoveIncrement; 
    Shape2.Width := Shape2.Width + cMoveIncrement; 
    end 
    else 
    begin 
    Shape1.Left := 8; 
    Shape2.Width := 8; 
    end; 
end; 

end. 

object FormMoveShape: TFormMoveShape 
    Left = 0 
    Top = 0 
    Caption = 'Form27' 
    ClientHeight = 336 
    ClientWidth = 635 
    Color = clBtnFace 
    DoubleBuffered = True 
    Font.Charset = DEFAULT_CHARSET 
    Font.Color = clWindowText 
    Font.Height = -11 
    Font.Name = 'Tahoma' 
    Font.Style = [] 
    OldCreateOrder = False 
    PixelsPerInch = 96 
    TextHeight = 13 
    object Shape2: TShape 
    Left = 8 
    Top = 112 
    Width = 8 
    Height = 41 
    Brush.Color = clAqua 
    Shape = stRoundRect 
    end 
    object Shape1: TShape 
    Left = 8 
    Top = 112 
    Width = 137 
    Height = 41 
    Shape = stRoundRect 
    end 
    object Timer1: TTimer 
    Interval = 50 
    OnTimer = Timer1Timer 
    Left = 512 
    Top = 24 
    end 
end 
+0

ありがとうございました!このコードは非常に有益であり、非常に役に立ちます。スクリーンの読み込みは素晴らしいように見えます。非常に高く評価! –

関連する問題