Delphi技巧两则 廉育功 2000年 第17期   1.配置数据引擎(BDE、SQL Link)   在分发数据库程序时,需要携带数据引擎(BDE、SQL Link),并且在客户端安装完程序后还需要配置数据引擎,如用户名(username)、口令(Password)等等。如果手工配置的话,工作量比较大(根据客户机数量而定)。而InstallShield For Delphi又没有这方面的选项,其实InstallShield For Delphi可以做到,在生成安装程序的目录里有一个*.iwz的文本文件,只要在[IDAPI Alias]段中手工加入即可。例如:   [IDAPI Alias]   usesname=SYSDBA    password=masterkey   安装程序执行完毕后自动完成数据引擎配置。   2.为列表框添光彩   为了改变Listbox和Combobox两个控件的单调风格,想在它们的每一项前面加上个图标,从表面上看好像不大可能啦。其实,这两个控件都有style属性,它可以设为lbOwnerDrawFixed,在事件OnDrawItem中写一段代码,就可以在列表框中的每一项前面添加一个小图标了。下面是在Listbox 的OnDrawItem事件中添加的代码:   procedure TForm1.ListBox1DrawItem(Control:TWinControl; Index: Integer;   Rect:TRect; State: TOwnerDrawState);   var   Bitmap:TBitmap;   Offset:Integer;   begin   with (Control as TListBox).Canvas do   begin   FillRect(Rect);   Offset:=2;   Bitmap:=TBitmap.create;   Bitmap.LoadFromFile(′d:\temp1\1.bmp′); //指定图文件是d:\temp1\1.bmp   BrushCopy(Bounds(Rect.Left + 2, Rect.Top, Bitmap.Width, Bitmap.Height),   Bitmap, Bounds(0, 0, Bitmap.Width, Bitmap.Height), clRed);   Offset := Bitmap.width + 6;   TextOut(Rect.Left + Offset, Rect.Top, (Control as TListBox).Items[Index])   end;   end;   进一步,利用OnDrawItem事件的参数Index还可以在不同项前面添加不同的图标。当用add方法为列表框或下拉框添加项目时,会自动执行OnDrawItem事件,这样新添加的项目前面就会有一个图标了。