TDBGridEh,TroundRectShape,TMathparser,TdbDatetimeediteh,Tyyttreeview,TSuitbutton,Trectshape我是菜鸟,初次接触,需要改一个程序,打开缺很多东西,偶只知道这是些控件,在网上找不着啊,请帮帮忙吧。还有偶不知道他的程序是用delphi的哪个版本写的,怎么区分啊?是不是在delphi7上运行都不会有问题呢?
粘段代码上来,请帮忙看一下。unit LogUnit;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, TFlatPanelUnit, TFlatTitlebarUnit, TFlatButtonUnit,
  StdCtrls, TFlatComboBoxUnit, TFlatColorComboBoxUnit, TFlatEditUnit, DB,
  DBTables, TFlatMemoUnit, Buttons, ADODB, SUIButton, SUIForm, WinSkinData,
  Shapes;
type  TSetLayeredWindowAttributes = function(hwnd:HWND;crkey:integer;bAlpha:Byte;dwFlags:Integer):BOOL; StdCall;
  EDLLLoadError = class(Exception);//同时分创建一个出错记录类  TLogForm = class(TForm)
    Timer1: TTimer;
    Writer: TLabel;
    DateNow: TLabel;
    TimeNow: TLabel;
    EnterNameLabel: TLabel;
    Label1: TLabel;
    EnterPasswordLabel: TLabel;
    Label2: TLabel;
    EnterPasswordEdit: TFlatEdit;
    EnterOKButton: TsuiButton;
    ExitButton: TsuiButton;
    RoundRectShape1: TRoundRectShape;
    procedure ExitButtonClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure EnterButtonClick(Sender: TObject);
    procedure EnterOKButtonClick(Sender: TObject);
    procedure EnterNameComboBoxChange(Sender: TObject);
    procedure EnterPasswordEditKeyPress(Sender: TObject; var Key: Char);
    procedure LogAboutButtonClick(Sender: TObject);
    procedure EnterPasswordEditChange(Sender: TObject);
    procedure EnterNameComboBoxDblClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
var
  LogForm: TLogForm;implementationuses
  MainUnit,DMUnit,UserUnit;{$R *.dfm}procedure TLogForm.ExitButtonClick(Sender: TObject);
//关闭
begin
  Application.Terminate;
end;procedure TLogForm.Timer1Timer(Sender: TObject);
//定时器
begin
  DateNow.Caption:='日期:'+DateToStr(Date);
  TimeNow.Caption:='时间:'+TimeToStr(Time);
end;procedure TLogForm.FormCreate(Sender: TObject);
//窗体初始化
var
  ZAppName: array[0..127] of char;
  Hold: String;
  Found: HWND;
  RecordCount,RecordTotal:integer; //用于存储记录总数及记录计数器中的值
begin
  LogTF:=False;
  DateNow.Caption:='日期:'+DateToStr(Date);
  TimeNow.Caption:='时间:'+TimeToStr(Time);
 // EnterWall.Visible:=True;
 // AboutWall.Visible:=False;
  //禁止程序重复运行
  //---------------------------------
  Hold := Application.Title;
  Application.Title := 'OnlyOne'
     + IntToStr(HInstance); // 暂时修改窗口标题
  StrPCopy(ZAppName, Hold); // 原窗口标题
  Found := FindWindow(nil, ZAppName); // 查找窗口
  Application.Title := Hold; // 恢复窗口标题
  if Found<>0 then begin
    // 若找到则激活已运行的程序并结束自身
    MessageBeep(1);
    //MessageDlg('程序已在运行!',mtConfirmation,[mbOK],0);
    Application.MessageBox('程序已在运行!','提示',MB_OK+MB_ICONINFORMATION);
    ShowWindow(Found, SW_RESTORE);
    Application.Terminate;
  end;
  //-----------------------------------
  //登录页面用户列表初始化
  //-----------------------------------
  dmmain:=tdmmain.Create(self);
  with dmMain do
  begin
    adoqcs.Open;
    Qyname:=adoqcs.Fieldbyname('企业名称').AsString;
    label1.Caption:=qyname;
    adoqBase.Close;
    adoqBase.SQL.Clear;
    adoqBase.SQL.Add('select * from XT_操作员 where not 删除标志');
    adoqBase.Prepared;
    adoqBase.Open;
    RecordTotal:=adoqBase.RecordCount;//统计表中记录总数
    if RecordTotal>0 then//若记录数大于0,则向用户列表中添加
    begin
      adoqBase.First;//指向数据库的第一条记录
      for RecordCount:=1 to RecordTotal do
      begin
        //EnterNameComboBox.Items.Add(adoqBase.FieldByName('编码').AsString);
        //向用户列表中添加用户名
        adoqBase.Next;//移动游标到下一条记录
      end;
      //EnterNameComboBox.ItemIndex:=0;
      //EnterNameComboBox.OnChange(self);
    end;
  end;
  //-----------------------------------
end;procedure TLogForm.EnterButtonClick(Sender: TObject);
//登录页面有效
begin
 // EnterWall.Visible:=True;
  //AboutWall.Visible:=False;
  EnterPasswordEdit.Clear;//清空早先有可能准确输入的密码,提高安全性
end;procedure TLogForm.EnterOKButtonClick(Sender: TObject);
//确认登录
begin
  with dmMain do
  begin
    {if adoqBase.Locate('编码',
      EnterNameComboBox.Items[EnterNameComboBox.ItemIndex],
        [loCaseInsensitive]) then//若找到此用户,即此用户为已注册用户}
      if EnterPasswordEdit.Text=adoqBase.FieldByName('密码').AsString then
      //若密码输入准确,则允许登录
      begin
        UserName:=adoqBase.FieldValues['编码'];
        LogTF:=True;
        adoqBase.Close;
        LogForm.Close;
      end
      else
        if EnterPasswordEdit.Text='' then
          Application.MessageBox('请输入密码!','提示',MB_OK+MB_ICONINFORMATION)
        else
          Application.MessageBox('密码错误,请重新输入!','提示',MB_OK+MB_ICONINFORMATION)
   // else
   //   Application.MessageBox('请输入准确的用户名!','提示',MB_OK+MB_ICONINFORMATION);
  end;
end;procedure TLogForm.EnterNameComboBoxChange(Sender: TObject);
//用户列表事件,将当前用户所属的组显示出来
begin
  with dmMain do
  begin
    {if adoqBase.Locate('编码',
      EnterNameComboBox.Items[EnterNameComboBox.ItemIndex],
        [loCaseInsensitive]) then
      EnterGroupLabel.Caption:=adoqBase.FieldByName('名称').AsString
    else
      EnterGroupLabel.Caption:='';
    //输入用户名提示
    if EnterNameComboBox.Items[EnterNameComboBox.ItemIndex]='' then
      EnterNameComboBox.ShowHint:=True
    else
      EnterNameComboBox.ShowHint:=False;}
  end;
end;procedure TLogForm.EnterPasswordEditKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key=#13 then
    EnterOKButtonClick(Self);//提供快捷的登录方式(指向确认登录按钮的事件)
end;procedure TLogForm.LogAboutButtonClick(Sender: TObject);
//关于
begin
//  AboutWall.Visible:=True;
//  EnterWall.Visible:=False;
Application.Terminate;
end;procedure TLogForm.EnterPasswordEditChange(Sender: TObject);
begin
  //输入密码提示
  if EnterPasswordEdit.Text='' then
    EnterPasswordEdit.ShowHint:=True
  else
    EnterPasswordEdit.ShowHint:=False;
end;procedure TLogForm.EnterNameComboBoxDblClick(Sender: TObject);
begin
 { with dmMain do
  begin
    {if EnterNameComboBox.ItemIndex+1=EnterNameComboBox.Items.Count then
      EnterNameComboBox.ItemIndex:=0
    else
      EnterNameComboBox.ItemIndex:=EnterNameComboBox.ItemIndex+1;
    //复制OnChange的事件
    if adoqBase.Locate('编码',
     { EnterNameComboBox.Items[EnterNameComboBox.ItemIndex],
        [loCaseInsensitive]) then
      EnterGroupLabel.Caption:=adoqBase.FieldByName('名称').AsString
    else
      EnterGroupLabel.Caption:='';
    //输入用户名提示
    if EnterNameComboBox.Items[EnterNameComboBox.ItemIndex]='' then
      EnterNameComboBox.ShowHint:=True
    else
      EnterNameComboBox.ShowHint:=False;
  end;}
end; procedure TLogForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if not(LogTF) then
    Application.Terminate;
end;procedure TLogForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
dmMain.adoqBase.Close;
end;end.

解决方案 »

  1.   

    看它的单元引用,用到这几个第三方控件:
    SUIButton, SUIForm:   SUIPack
    WinSkinData:    VCLSkin
    Shapes:   Visual Shapes
    TFlatPanelUnit:  FlatStyle自己去www.2ccc.com  www.tomore.com等网站找找
      

  2.   

    你可以去  盒子 www.2ccc.com   那里去找找,应该都有你要的那些..
     也可以去这里 看看  www.delphifans.com
      

  3.   

    FlatStyle  VCLSkin 这些第三方控件 到处都可以找到。
    到www.baidu.com一搜索就OK 了。
      

  4.   

    FlatStyle  VCLSkin 这两个我已经找到了,别的没找着
      

  5.   

    SUIPack:
    http://www.ccrun.com/view.asp?id=129
    Visual Shapes:
    http://www.mzko.cn/down/20064/19673.htm