delphi学习点滴(五)

来源:互联网 发布:windows性能监控 编辑:程序博客网 时间:2024/05/22 13:57

1.TStringList分解字符串

在编程中我们经常需要分解某个字符串,比如“abc,123,334,akl”,把上述字符串根据逗号分解成4个字符串。

procedure TForm1.btnTestClick(Sender: TObject);var  v_TestList: TStringList;  v_Index: Integer;begin  v_TestList := TStringList.Create;  try    {采用CommaText}    v_TestList.CommaText := 'abc,123,334,akl';    {采用Delimiter & DelimitedText,可以根据需要调整Delimiter,应用比较灵活    v_TestList.Delimiter := ',';    v_TestList.DelimitedText := 'abc,123,334,akl';}     for v_Index := 0 to v_TestList.Count - 1 do     begin       ShowMessage(v_TestList[v_Index]);     end;  finally    FreeAndNil(v_TestList);  end;end;


 

2.Delphi6内部错误L594

如下图所示,我目前的解决方法是再编译一次;网上貌似有人说是overload的问题,待解。


3.TListview行高

解决方法是:给TListView的SmallImage赋一个Imagelist,然后设置Imagelist的高度和宽度,如果不打算显示图片,可以将Imagelist的宽度设为0。

procedure TFormTest.FormShow(Sender: TObject);begin  lvTest.SmallImages := ilTest; //设置SmallImages属性  ilTest.Height := 20;          //设置高度  ilTest.Width := 0;            //这里隐藏图片,设宽为0end;

4.RzCheckBox与CheckBox  OnMouseUp事件的不同效果

//假设两个checked都是Falseprocedure TForm1.CheckBox1MouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin  ShowMessage(BoolToStr(CheckBox1.Checked));  //结果为'-1',即点击后的状态True  ShowMessage(BoolToStr(True));               //True为'-1'end;procedure TForm1.RzCheckBox1MouseUp(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);begin  ShowMessage(BoolToStr(RzCheckBox1.Checked)); //结果为'0',即点击前的状态False  ShowMessage(BoolToStr(False));               //false为'0'end;

 

5.自定义数据集

一般我们都是通过Adoquery从数据库取数据形成数据集,除此之外还可以自定义数据集。

procedure TForm1.DataToSet;begin  with ADODataSet1 do  begin    FieldDefs.Clear;    {创建字段}    FieldDefs.Add('One', ftString, 3);    FieldDefs.Add('Two', ftString, 12);    FieldDefs.Add('Three', ftString, 3);    CreateDataSet;    DisableControls;    {添加数据}    Append;    FieldByName('One').AsString := '1';    FieldByName('Two').AsString := '2';    FieldByName('Three').AsString := '3';    Post;    EnableControls;    end;    First;end;

 

6.string类型也是数组 索引从1开始

procedure TForm1.btn1Click(Sender: TObject);var  v_TmpStr: string;begin  v_TmpStr := '123456789';  ShowMessage(v_TmpStr[1]);  //结果为'1'end;