当前位置:编程学习 > Delphi >>

Delphi 菱行代码问题

要想一点按钮,窗口上就出现由“*”组成的菱形,代码要怎么写啊?如果我想点第二次就让他组成别的形状,比如五角星之类的,代码要怎么写啊?
答案:新建立一个项目,在窗体上添加一个按钮,然后代码如下:(菱形的算法给出,星行自己推一下吧)

unit Unit1;

interface

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

type
TForm1 = class(TForm)

Button1: TButton;

procedure Button1Click(Sender: TObject);
private

{ Private declarations }
public

{ Public declarations }
end;

var
Form1: TForm1;
S: Array[0..1] of TStringList;

implementation

{$R *.dfm}

function LingXing:TStringList; //生成菱形的字符阵列
var
i:integer;
s,s1,s2:string;
begin
Result:=TStringList.Create;
s1:='



';
s2:='******************';
for i:=6 downto 1 do
begin
s:=Copy(s1,1,6-i)+Copy(s2,1,2*i)+Copy(s1,1,6-i);
Result.Add(s);
Result.Insert(0,s);
end;
end;

function XingXing:TStringList; //生成星形的字符阵列
var
i:integer;
s:string;
begin
Result:=TStringList.Create;
for i:=12 downto 1 do
begin
s:='



';
//自己编写星型的阵列
Result.Add(s);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
s:TStringList;
begin
Font.Name:='宋体';
Application.ProcessMessages;
Case Tag of
0:begin

s:=LingXing;

Tag:=1;

end;
1:begin

s:=XingXing;

Tag:=0;

end;
end;
for i:=0 to s.Count-1 do
Canvas.TextOut(10,10+i*16,s[i]);
s.Free;
end;

end.

上一个:delphi dbgrid 滚动条拖动
下一个:delphi6 编计算器问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,