Delphi 10.2 Tokyo 开发前准备

一: 解决手机屏幕自适应问题

之前我的用法是,直接将clientwidth和clientHeight赋值,但却没有效果。之后查了一下用TScaledLayout可以解决。在过程中,需要注意的是:在form的oncreate或onshow事件中定义的其他控件坐标长宽需要在form的onresize里再次赋值。应为前两个事件是执行一次,而onresize是动态获取。

二:用TControl来画按钮控件,因为Delphi自带的button不能有颜色,可以用control来画个按钮形状并且再点击事件里响应。代码为:

con : TControl;

//响应事件

procedure TForm1.conClick(Sender: TObject);

begin

Caption := 'fdasfdsafd';

end;

绘画有颜色按钮

procedure TForm1.conPaint(Sender: TObject; Canvas: TCanvas;

const ARect: TRectF);

begin

con.Canvas.BeginScene;

//画背景

con.Canvas.Fill.Color:= makecolor(255,0,0);

con.Canvas.FillRect(rectf(0,0,75,25),0,0,[],1);

//画直线

con.Canvas.Stroke.Color := makecolor(0,0,0);

con.Canvas.Stroke.Thickness := 1;

con.Canvas.Stroke.Kind := TBrushKind.Solid;

con.Canvas.DrawRect(rectf(0,0,75,25),0,0,[],1);

//结束

con.Canvas.EndScene;

end;

//创建一个button点击事件去初始化control

procedure TForm1.Button1Click(Sender: TObject);

begin

con := TControl.Create(self);

con.Parent := self;

con.Position.X := 100;

con.Position.Y := 150;

con.Width := 75;

con.Height := 25;

con.Visible := True;

con.Enabled := True;

con.OnPaint := conPaint;

con.OnClick := conClick;

con.Cursor := crhandpoint;

Invalidate; //开始绘画

end;

你可能感兴趣的:(Delphi 10.2 Tokyo 开发前准备)