delphi新手,一个简单的问题求解
做一个小程序:定义一个类,包含两个整形(x,y)和一个字符串(s)及方法output。output实现在窗体上的x,y位置,输出字符串s。
2013-10-11 15:54
程序代码: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;
type/////
TMyClass = class
private
x:Integer;
y:integer;
s:string;
public
constructor Create(xx:Integer;yy:Integer;ss:string);overload;
procedure out;
end;///////
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TMyClass.Create(xx:Integer;yy:Integer;ss:string);/////
begin
x := xx;
y := yy;
s := ss;
end;
procedure TMyClass.out;/////
begin
Form1.Canvas.TextOut(x, y, s);/////
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a:TMyClass;////
begin
a := TMyClass.Create(100, 200, '百度知道');////
a.out;////
a.Free;////
end;
end.
2013-10-11 19:44
程序代码: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;
TcustCls = class
private
Fx, Fy: Integer;
Fs: string;
public
procedure outPut(x, y:Cardinal; s: string);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Tcustcls.outPut(x, y: Cardinal; s: string);
begin
if (x > 0) and (y > 0) then
begin
fx := x;
fy := y;
fs := s;
Form1.Canvas.TextOut(fx, fy, fs);
end
else
ShowMessage('坐标错误');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
myText: TcustCls;
begin
myText := TcustCls.Create;
myText.outPut(60, 50, '代码测试.....');
myText.Free;
end;
end.
2013-10-11 22:30
程序代码: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;
TcustCls = class
private
Fx, Fy: Integer;
Fs: string;
public
procedure outPut(x, y: Cardinal; s: string);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure Tcustcls.outPut(x, y: Cardinal; s: string);
var
cvs: TCanvas;
begin
if (x > 0) and (y > 0) then
begin
fx := x;
fy := y;
fs := s;
try
cvs := TCanvas.Create;
cvs.Handle := GetDc(0);
SetBkMode(cvs.Handle, TRANSPARENT);
cvs.Font.Name := '宋体';
cvs.Font.Style := [fsBold];
cvs.font.Color := clRed;
cvs.Font.Size := 50;
cvs.TextOut(Fx, Fy, s);
finally
FreeAndNil(cvs);
end;
end
else
ShowMessage('坐标错误');
end;
procedure TForm1.Button1Click(Sender: TObject);
var
myCls: TcustCls;
s: string;
begin
s := '夕阳西下,小桥流水人家';
myCls := TcustCls.Create;
myCls.outPut(100, 100, s);
myCls.Free;
end;
end.
2013-10-13 13:33