unit U_SCPersonColor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Buttons, DB, ADODB, StdCtrls; type TfrmSCPersonColor = class(TForm) ScrollBox1: TScrollBox; btn58: TSpeedButton; btn9: TSpeedButton; btn10: TSpeedButton; btn11: TSpeedButton; btn12: TSpeedButton; btn59: TSpeedButton; btn16: TSpeedButton; btn17: TSpeedButton; btn18: TSpeedButton; btn19: TSpeedButton; btn60: TSpeedButton; btn23: TSpeedButton; btn24: TSpeedButton; btn25: TSpeedButton; btn26: TSpeedButton; btn61: TSpeedButton; btn31: TSpeedButton; btn32: TSpeedButton; btn33: TSpeedButton; ADOTmp: TADOQuery; Label27: TLabel; Label1: TLabel; Button3: TButton; Button1: TButton; procedure FormDestroy(Sender: TObject); procedure FormShow(Sender: TObject); procedure btn1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); private CPage: Integer; procedure InitPerson(page: Integer); { Private declarations } public FlagStr: string; FName, FSJZL, FType: string; { Public declarations } end; var frmSCPersonColor: TfrmSCPersonColor; implementation uses U_DataLink; {$R *.dfm} procedure TfrmSCPersonColor.FormDestroy(Sender: TObject); begin frmSCPersonColor := nil; end; procedure TfrmSCPersonColor.InitPerson(page: Integer); type FdDy = record inc: integer; FDdys: string[32]; FdDysName: string[32]; end; var BB: array[0..500] of FdDy; i, j: Integer; begin with ADOTmp do begin Close; sql.Clear; if FTYPE = 'KH' then begin sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''CustomerNoName'')AA'); // sql.Add('select ZDYName from KH_Zdy where Type=''' + flag + ''' order by ZDYNO '); end else if FTYPE = 'BQKH' then begin sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''BQCustomer'')AA'); end else if FTYPE = 'PM' then begin sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''PRTCodeName'')AA'); end else if FTYPE = 'YS' then begin sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''PRTColor'')AA'); end else if FTYPE = 'HX' then begin sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''PRTHX'')AA'); end else if FTYPE = 'kuanno' then begin sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''PRTkuanno'')AA'); end else if FTYPE = 'SH' then begin sql.Add('select AA.*,row_number () over (order by name) as keyNo from(select DISTINCT zdyname as name,note from kh_zdy where type=''SOrddefstr1'')AA'); end; // showmessage(sql.text); Open; end; if ADOTmp.IsEmpty then begin Application.MessageBox('没有定义数据!', '提示', 0); Exit; end; j := (StrToInt(Label1.Caption) - 1) * 20 + 1; for i := 0 to 19 do begin with ScrollBox1 do begin if ADOTmp.locate('keyNo', j + i, []) then begin // application.MessageBox(pchar(CDS_Kuang.FieldByName('ZDYName').AsString), '提示信息', 0); TSpeedButton(Controls[i]).Visible := True; TSpeedButton(Controls[i]).Caption := Trim(ADOTmp.FieldByName('name').AsString); if FTYPE = '挡车工' then begin TSpeedButton(Controls[i]).hint := Trim(ADOTmp.FieldByName('note').AsString); end; end else begin TSpeedButton(Controls[i]).Visible := False; // application.MessageBox(pchar('没找到' + inttostr(i)), '提示信息', 0); end; end; end; // with ADOTmp do // begin // First; // i := 0; // while not Eof do // begin // BB[i].inc := i; // BB[i].FdDysName := Trim(fieldbyname('name').AsString); // i := i + 1; // Next; // end; // end; // i := i - 1; // if i > 19 then // begin // i := 19; // end; // for j := 0 to 19 do // begin // with ScrollBox1 do // begin // TSpeedButton(Controls[j]).Visible := false; // TSpeedButton(Controls[j]).Caption := ''; // TSpeedButton(Controls[j]).Hint := ''; // end; // end; // for j := 0 to i do // begin // with ScrollBox1 do // begin // TSpeedButton(Controls[j]).Visible := True; // TSpeedButton(Controls[j]).Caption := BB[j].FdDysName; // end; // end; end; procedure TfrmSCPersonColor.FormShow(Sender: TObject); begin InitPerson(1); CPage := 1; end; procedure TfrmSCPersonColor.btn1Click(Sender: TObject); begin FName := Trim(TSpeedButton(Sender).Caption); ModalResult := 1; end; procedure TfrmSCPersonColor.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caHide; end; procedure TfrmSCPersonColor.Button1Click(Sender: TObject); begin if CPage <= 1 then begin Label1.Caption := '1'; InitPerson(1); end else begin CPage := CPage - 1; Label1.Caption := IntToStr(CPage); InitPerson(CPage); end; end; procedure TfrmSCPersonColor.Button3Click(Sender: TObject); begin CPage := CPage + 1; Label1.Caption := IntToStr(CPage); InitPerson(CPage); end; end.