源码

解决方案 »

  1.   

    老大!你在说故事吧!
    你要是一个API高手的话,好象可以实现,但这样又好象不太现实!
    我是菜鸟,以上是个人想法,不代表公司意见!
      

  2.   

    Projects->Options->Packages->Builder with runtime packages不要打勾
      

  3.   

    你知道什么是 vcl吗?你不用vcl,不就去掉vcl了吗
      

  4.   

    Projects->Options->Packages->Builder with runtime packages打勾编译的文件就会小很多,但编译的文件不能单独运行,要考一些 .bpl 文件到 system32 目录下!
      

  5.   

    To:mzdot(学生) 
    我的DELPHI是中文的啊
      

  6.   

    最小的程序     
    program testwindow;uses
      Windows,
      Messages;var
      WinClass: TWndClassA;
      Inst, Handle, Button1, Label1, Edit1: Integer;
      Msg: TMsg;
      hFont: Integer;{ Checks if typed password is 'Amigreen' and shows Message }
    procedure CheckPassword;
    var
      Textlength: Integer;
      Text: PChar;
    begin
      TextLength := GetWindowTextLength(Edit1);
      if TextLength = 8 then
      begin
        GetMem(Text, TextLength + 1);
        GetWindowText(Edit1, Text, TextLength + 1);
        if Text = 'Amigreen' then
        begin
          MessageBoxA(Handle, 'Password is correct.', 'Password check', MB_OK);
          FreeMem(Text, TextLength + 1);
          Exit;
        end;
      end;
      MessageBoxA(Handle, 'Password is incorrect.', 'Password check', MB_OK);
    end;{ Custom WindowProc function }
    function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
    begin
      Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
      { Checks for messages }
      if (lParam = Button1) and (uMsg = WM_COMMAND) then
        CheckPassword;
      if uMsg = WM_DESTROY then
        Halt;
    end;begin
      { ** Register Custom WndClass ** }
      Inst := hInstance;
      with WinClass do
      begin
        style              := CS_CLASSDC or CS_PARENTDC;
        lpfnWndProc        := @WindowProc;
        hInstance          := Inst;
        hbrBackground      := color_btnface + 1;
        lpszClassname      := 'AG_TESTWINDOW';
        hCursor            := LoadCursor(0, IDC_ARROW);
      end; { with }
      RegisterClass(WinClass);  { ** Create Main Window ** }
      Handle := CreateWindowEx(WS_EX_WINDOWEDGE, 'AG_TESTWINDOW', 'Amigreen TestWindow 1.00',
                               WS_VISIBLE or WS_SIZEBOX or WS_CAPTION or WS_SYSMENU,
                               363, 278, 305, 65, 0, 0, Inst, nil);
      { ** Create a button ** }
      Button1 := CreateWindow('Button', 'OK', WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
                               216, 8, 75, 25, handle, 0, Inst, nil);
      { ** Create a label (static) ** }
      Label1 := Createwindow('Static', '', WS_VISIBLE or WS_CHILD or SS_LEFT,
                   8, 12, 76, 13, Handle, 0, Inst, nil);  { ** Create an edit field ** }
      Edit1 := CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit', '', WS_CHILD or WS_VISIBLE or
                              WS_BORDER or ES_PASSWORD, 88, 8, 121, 21, Handle, 0, Inst, nil);  { ** Create Font Handle ** }
      hFont := CreateFont(-11, 0, 0, 0, 400, 0, 0, 0, DEFAULT_CHARSET,
                          OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
                          DEFAULT_PITCH or FF_DONTCARE, 'MS Sans Serif');  { Change fonts }
      if hFont <> 0 then
      begin
        SendMessage(Button1, WM_SETFONT, hFont, 0);
        SendMessage(Label1, WM_SETFONT, hFont, 0);
        SendMessage(Edit1, WM_SETFONT, hFont, 0);
      end;
      { Change label (static) text }
      SetWindowText(Label1, 'Enter password:');
      { Set the focus to the edit control }
      SetFocus(Edit1);  UpdateWindow(Handle);  { ** Message Loop ** }
      while(GetMessage(Msg, Handle, 0, 0)) do
      begin
        TranslateMessage(msg);
        DispatchMessage(msg);
      end; { with }
    end.
      

  7.   

    你不引用VCL的单元,只写program工程单元就成了dos下的pascal了。就没VCL了。呵呵。是这个意思不
      

  8.   

    不用VCL的所有类, 即不用从 TOBJECT 继承下来的类,就没有用VCL了
    一样可以写所有的 WINDOWS 程序, 不过会麻烦很多, 因为你的每个操作都要调用标准 WINDOWS API, 就象原来用汇编写 DOS 程序一样
    所谓的 VCL 就是把标准 WINDOWS API 集成为易于使用的控件或函数集, DELPHI 也就这样提高了开发效率, 如果你不用 VCL 的话, 不如去用 VC, 因为 VC 调用 WINDOWS API 比 DELPHI方便许多
    呵呵