首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

难!难!难!image显示有关问题

2012-03-19 
难!难!难!image显示问题!INI文件[ini]width200height200X8Y56排列10:水平;1:垂直image1图像来源Clip

难!难!难!image显示问题!
INI文件
[ini]
width=200
height=200
X=8
Y=56
排列=1
;0:水平;1:垂直

image1图像来源ClipBoard

将image1根据x分成若干等份,其中一些显示图像,一些不显示(黑色)
(如果排列=水平,根据x,   把form的width平分,如果排列=垂直,根据x,   把form的height平分)
效果如下(水平):

width   1---------------------------------------200
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|   height
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|       1
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|       |
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|       |
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|       |
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|       |
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|       |
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|       |
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|       |
...                                                                                                   ...
|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|黑|图|       200
        1           2           3           4           5           6           7           8

垂直:
width:   1~~200   height:   1~~200
------------------------------------------------
黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑
------------------------------------------------
图图图图图图图图图图图图图图图图图图图图图图图图     1
------------------------------------------------
黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑    
------------------------------------------------
图图图图图图图图图图图图图图图图图图图图图图图图     2
------------------------------------------------
黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑
------------------------------------------------
图图图图图图图图图图图图图图图图图图图图图图图图     3
...
------------------------------------------------
黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑黑
------------------------------------------------
图图图图图图图图图图图图图图图图图图图图图图图图     8
------------------------------------------------

附VB源码:

排列=0
                For   I   =   1   To   31
                        Unload   GAME.VERPIC(I)
                Next   I
                YDLT   =   (GAME.Picture1.Width   -   2)   /   XDOTS
                XDLT   =   (GAME.Picture1.Height   -   2)   /   YDOTS
                I   =   1
                Load   GAME.HORPIC(I)
                With   GAME.HORPIC(I)
                        .Top   =   1
                        .Left   =   0
                        .Height   =   XDLT   /   4
                        .Width   =   GAME.HORPIC(I).Width


                        .ZOrder   (0)
                End   With
                GAME.HORPIC(I).Visible   =   True
                For   I   =   2   To   YDOTS   '   +   1
                        Load   GAME.HORPIC(I)
                        With   GAME.HORPIC(I)
                                .Top   =   ((I   -   2)   +   3   /   4)   *   XDLT   +   1
                                .Left   =   0
                                .Height   =   XDLT   /   2
                                .Width   =   GAME.HORPIC(I).Width
                                .ZOrder   (0)
                        End   With
                        GAME.HORPIC(I).Visible   =   True
                Next   I
                Load   GAME.HORPIC(I)
                With   GAME.HORPIC(I)
                        .Top   =   ((I   -   2)   +   3   /   4)   *   XDLT   +   1
                        .Left   =   0
                        .Height   =   XDLT   /   4
                        .Width   =   GAME.HORPIC(I).Width
                        .ZOrder   (0)
                End   With
                GAME.HORPIC(I).Visible   =   True
               
排列=1
                For   I   =   1   To   31
                        Unload   GAME.HORPIC(I)
                Next   I
                XDLT   =   (GAME.Picture1.Width   -   2)   /   YDOTS
                YDLT   =   (GAME.Picture1.Width   -   2)   /   XDOTS
                I   =   1
                Load   GAME.VERPIC(I)


                With   GAME.VERPIC(I)
                        .Top   =   0
                        .Left   =   1
                        .Width   =   XDLT   /   4
                        .Height   =   GAME.VERPIC(I).Height
                        .ZOrder   (0)
                End   With
                GAME.VERPIC(I).Visible   =   True
                For   I   =   2   To   YDOTS
                        Load   GAME.VERPIC(I)
                        With   GAME.VERPIC(I)
                                .Left   =   ((I   -   2)   +   3   /   4)   *   XDLT   +   1
                                .Top   =   0
                                .Width   =   XDLT   /   2
                                .Height   =   GAME.VERPIC(I).Height
                                .ZOrder   (0)
                        End   With
                        GAME.VERPIC(I).Visible   =   True
                Next   I
                Load   GAME.VERPIC(I)
                With   GAME.VERPIC(I)
                        .Left   =   ((I   -   2)   +   3   /   4)   *   XDLT   +   1
                        .Top   =   0
                        .Width   =   XDLT   /   4
                        .Height   =   GAME.VERPIC(I).Height
                        .ZOrder   (0)
                End   With
                GAME.VERPIC(I).Visible   =   True


[解决办法]
放一个TImage组件,放一张图片上去,放两个TButton,代码如下!

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;



const
X = 8;

type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
FSplit: Integer;
public
{ 公共成员(变量、函数)声明 }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
Rect: TRect;
begin
FSplit := Image1.Width div x;
with Image1.Canvas do
begin
Brush.Color := clBlack;
I := 0;
while I < Width do
begin
with Rect do
begin
Left := I;
Top := 0;
Bottom := Height;
Right := I+X;
end;
FillRect(Rect);
Inc(I,x*2);
end;
end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
I: Integer;
Rect: TRect;
begin
FSplit := Image1.Height div x;
with Image1.Canvas do
begin
Brush.Color := clBlack;
I := 0;
while I < Height do
begin
with Rect do
begin
Left := 0;
Top := I;
Bottom := I+X;
Right := Width;
end;
FillRect(Rect);
Inc(I,x*2);
end;
end;

end;

end.

热点排行