🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.program
Article #1026

Delphi�Զ��岿����д (ת��)

#1026
From: �ϵ�
Date: Sun, 26 Apr 1998 00:00
323 lines
24396 bytes
������: HaHa (������), ����: Visual
��  ��: Delphi�Զ��岿����д (ת��)
����վ: ���е����������� (Sat Dec 14 10:43:49 1996)

;37m�� ��������ת���� 2mProgramming 7m������ ��
�� ԭ����2m zhjjs7m ��� ��m


                       ��ʮ����  Delphi �Զ��岿������


����Delphi����֧��ʹ�ÿ��ӻ����������õؽ���Ӧ�ó����⣬��֧��Ϊ����Ӧ��
������Լ��IJ�����
�����ڱ����н��������ΪDelphiӦ�ó����д��������һ�½��ﵽ����Ŀ�ģ�
������ ��������Զ��岿��
������ ʹ��IJ�����ΪDelphi�������л���ϲ���
       
                           19.1  Delphi����ԭ��

19.1.1 ʲô�Dz���

����������DelphiӦ�ó���ij��򹹼������ܴ���������û�����Ŀɼ�Ԫ�أ�
������Ҳ�����dz����еIJ��ɼ�Ԫ�أ�����ݿⲿ����ΪŪ��ʲô�Dz������Դ����
�������������ܶ��塢��������;��鶨�塣
����1. �����Ĺ��ܶ���
�����������û��Ƕȣ���������Component Palette��ѡ��ģ����ڴ�����ƴ��ںʹ�
�봰���в�����Ԫ�ء��Ӳ�����д�߽Ƕȣ������Ǵ����еĶ����ڱ�д����֮ǰ����
Ӧ���൱��Ϥ���е�Delphi�������������ʹ��IJ����ʺ��û�����Ҫ����д������Ŀ
��֮һ��ʹ���������ܵ������������
����2. �����������
��������򵥵ĽǶȿ����������κδ�TComponent�̳еĶ���TComponent����������
��������Ҫ�ġ�������Ϊ�����磬������Component Palette�Ϻ��ڴ�����ƴ���
�б༭�Ĺ��ܡ�����TComponent����֪��δ�����IJ����ľ��幦�ܣ���ˣ��������
��������
����3. ������д���Լ��Ķ��塣
������ʵ�ʱ���У��������ܲ���Delphi�����������κ�Ԫ�ء�����ܾ��г���ĸ���
�����ԡ������֮��ֻҪ�����벿����ܣ������������ô����д��һ�С���������ֻ
�ǽӿ����������½���ϸ����������ܣ�˵�������������ԣ�����˵����̵������ԡ�
���²�׼��������������Ա�дÿһ�ֲ�����ֻ�ܸ��߱ඨ����ķ���������ʹ������
��Delphi������
����
19.1.2 ��д�����IJ�֮ͬ��

������Delphi�����н�����������Ӧ�ó�����ʹ�ò����������Ҫ���
������ ��д�����Ĺ���Ƿǿ��ӻ���
������ ��д������Ҫ������Ĺ��ڶ����֪ʶ
������ ��д������Ҫ��ѭ���Ĺ���

����1. ��д�����Ƿǿ��ӻ���
������д�����뽨��DelphiӦ�������Ե�����Dz�����д��ȫ�Դ������ʽ���У�����
���ӻ��� ����ΪDelphiӦ�õĿ��ӻ������Ҫ����ɵIJ�����������Щ��������Ҫ��
Object Pascal ������
������Ȼ���޷�ʹ�ÿ��ӻ��������������������������� Delphi�������������б��
���������༭�������ɻ����ԺͶ��������
����2. ��д������Ҫ������йض����֪ʶ
�������˷ǿ��ӻ����֮�⣬����������ʹ�����ǵ��������ǣ��������²���ʱ����
Ҫ���Ѵ沿���м̳в���һ���¶������ͣ��������µ����Ժͷ�������һ���棬����ʹ
���ߣ��ڽ���DelphiӦ��ʱ��ֻ��ʹ�����в���������ƽ׶�ͨ��ı䲿�����Ժ�����
��Ӧ�¼��ķ������������ǵ���Ϊ��
�������̳в���һ���¶���ʱ������Ȩ�������ȶ����ж������û����ɼ�IJ��֡���Щ
���ֱ���Ϊprotected����ġ��ںܴ󲿷ֵ�ʵ���ϣ�������Ҳ��Ҫ�������ǵ�����
����ķ�������ˣ���д������Ӧ�൱��Ϥ������������ԡ�
����3. ��д����Ҫ��ѭ���Ĺ���
������д������̱ȿ��ӻ�Ӧ����ɲ��ø�ͳ�ı�̷�������ʹ�����в�����ȣ���
���Ĺ���Ҫ��ѭ���ڿ�ʼ��д�Լ��IJ���֮ǰ������Ҫ����Ī��������Ӧ��Delphi��
��IJ������Եõ�����������Լ������û��������ܵȵ�ֱ����ʶ�������û�����
������������Ҫ������Ī�����������κ�ʱ���ܶԲ������κ��¡���д������Щ�����
���������ѣ�ֻҪԤ���뵽����ѭ����
��
19.1.3 ����������̸���

���������֮�������Զ��岿���Ĺ�̰����м�������
    �� �������²����ĿⵥԪ
������ �����в��������м̳еõ��µIJ�������
������ �������ԡ��������¼�
������ ��Delphiע�Ჿ��
������ Ϊ���������Է������¼�����Help�ļ�

������������Щ����������IJ���������4���ļ�
������ ����ĿⵥԪ���� ( .DCU�ļ�)
    �� ѡ���λͼ������ (.DCR�ļ�)
    �� Help�ļ��������� (.HLP�ļ�)
    �� Help-keyword�ļ� (.KWF�ļ�)

                           19.2  Delphi������̷���

19.2.1 Delphi������̸���

19.2.1.1 Delphi���Ӳ������

���� Delphi�IJ������ǿ��Ӳ�����⣨VCL���Ķ���̳�����һ���֣������г����VC
L�Ķ���Ĺ�ϵ��TComponent��VCL��ÿһ�������Ĺ�ͬ���ȡ�TComponent�ṩ��Delphi
�����������������Ժ��¼������еĸ�����֧�ṩ������ĸ�רһ�Ĺ��ܡ�




  
    ������������ͼ19.1  ���Ӳ�����⣨VCL������̳���

    ����������ʱ��ͨ��Ӷ����������еĶ���̳л���¶��󣬲��������VCL�С�

19.2.1.2 �������������

�����������������ʱ��������������Ԫ�ء������²�����ζ�Ŵ����������м̳е�
���µIJ��������ࡣ
    �����²�������Ҫ;�����£�
��  �� �޸����еĿ���
������ ����ԭʼ����
  ���� ����ͼ�ο���
��  �� ����Windows���Ƶ�����
������ �����ǿ��Ӳ���

�����±��г��˲�ͬ����;������ʼ��

                        ��19.1  ���岿������ʼ��
        ������������������������������������������������������������
            ��;   ������������   �� ʼ ��
      ��  ����������������������������������������������������������
            �޸����в���   ��   �κ����в�������TButton��TListBox
                                 ����󲿼�������TCustomListBox
            ����ԭʼ���ơ�����  TCustomControl
            ����ͼ�ο���        TGraphicControl
            �������ڿ��Ƶ�����  TWinControl
            �����ǿ��Ӳ���������TComponent
        ������������������������������������������������������������

����Ҳ���Լ̳зDz�����������󣬵��޷��ڴ�����ƴ����в������ǡ�Delphi������
�����ֶ�����TINIFile��TFont�ȡ�
����1. �޸����п���
����������������򵥵ķ����Ǽ̳�һ�����еġ����õIJ�������������Դ�Delphi
�ṩ���κβ����м̳С����磬���Ըı��׼���Ƶ�ȱʡ����ֵ����TButton��
������Щ���ƣ���Listbox��Grid���������ͬ����������������£�Delphi�ṩ�˳�
��������ͣ��Ӹ����ͳ����ɶ��Ƴ��������͡����磬��Ҳ���뽨��TListBox������
���ͣ����ֲ���û�б�׼TListBox��ijЩ���ԣ��㲻�ܽ����Դ�һ��������������ȥ��
�������Ҫ�ӱ�TListBox��߲�εIJ����̳С�����TCustomListBox���ò���ʵ����TCu
stomListBox���������Ե�û�й���(Publishing)���ǡ�����һ������TCustomListBox
�ij������м̳�ʱ���㹫����Щ����ʹ֮�ɻ�õ����Զ�������ı�������(protecte
d)��
����2. ����ԭʼ����
������׼������������ʱ�ɼ�ġ���Щ��׼���ƶ���TWinControl���̳����ģ����㽨
��ԭʼ����ʱ����ʹ��TCustomControl��Ϊ��ʼ�㡣��׼���ƵĹؼ�����������д���
������������Handle�У����ֿ��ƣ�
��  �� �ܽ������뽹��
��  �� �ܽ�����͸�Windows API����

���������Ʋ���Ҫ�������뽹�㣬��ɰ�������ͼ�ο��ƣ�����ܽ�ʡϵͳ��Դ��
����3. ����ͼ�ο���
����ͼ�ο��Ʒdz����ƶ��ƵĿ��ƣ�������û�д��ھ����˲�ռ��ϵͳ��Դ����ͼ
�ο����������������Dz��ܽ������뽹�㡣����Ҫ��TGraphicControl�̳У����ṩ
����ͼ��Canvas���ܴ���WM_PAINT��Ϣ������Ҫ����Paint������
����4. �̳д��ڿ���
    Windows����һ�ֳ�֮Ϊ������ĸ���������������Ķ������ĸ������
����Windows����ͬ���ڻ���ƵIJ�ͬʵ��֮�乲�����Ϣ���ϡ������ô�ͳ��Windows
��̷�������һ���µĿ��ƣ���Ҫ����һ���µĴ����࣬����Windows��ע�ᡣ��Ҳ��
�������еĴ����ഴ���µĴ����ࡣ��ͳ�Ϊ�Ӵ�����̳С��ڴ�ͳ��Windows���
�У�������뽨���ͻ����Ŀ��ƣ���ͱ��뽫�����ڶ�̬���ӿ�������׼Windows
���ƣ������ṩһ�����ʽ��档ʹ��Delphi�����ܴ���һ��������װ�����д�����֮
�ϡ���������пͻ������ƵĿ⣬����ʹ�����������DelphiӦ���У�������ܴ���һ
��ʹ����ʹ�����п��ƺͻ���µĿ��ƵIJ������ڿⵥԪStdCtrls���������������ӡ�
����5. �����ǿ��ӻ��IJ���
���������������TComponent�����в����Ļ����͡���TComponentֱ�Ӽ̳�����
�������Ƿǿ��ӻ����������д�Ĵ��������ǿ��ӿ��ơ�TComponent�����˲�����F
ormDesigner������Ļ�����Ժͷ�������ˣ���TComponent�̳������κβ�������
�����������
�����ǿ��Ӳ����൱�٣���Ҫ��������Ϊ�ǿ��ӳ���Ԫ������ݿⵥԪ���ͶԻ����
���档

19.2.1.3 �����²����ķ���

���������²����ķ��������֣�
������ �ֹ���������
  ���� ʹ��Component Expert

  ��һ����ɽ����󣬾͵õ��������С���ܵ�λ�IJ����������԰�װ��Component Pal
ette�ϡ���װ�������ܽ��²��������ڴ��崰�ڣ���������ƽ׶κ����н׶ν���
���ԡ��㻹��Ϊ���������µ�����������ѡ��塢���²��ԡ�
����1. �ֹ���������
    ��Ȼ�������������׵ķ�����ʹ��Component Expert��Ȼ����Ҳ��ͨ���ֹ�����
����ͬ���衣
�����ֹ�����������Ҫ������
��  �� �����µĿⵥԪ
������ �̳�һ����������
  ���� ע�Ჿ��

������ �����µĿⵥԪ
�����ⵥԪ��Object Pascal����Ķ������뵥λ��ÿһ���������Լ��ĿⵥԪ�����
��������߼�����һ�飩Ҳ���Լ��ĿⵥԪ��
�������㽨������ʱ�������Ϊ��������һ���ⵥԪ��Ҳ�ɽ��µIJ����������еĿⵥ
Ԫ�С�
  ���� Ϊ���������ⵥԪ����ѡ��File/New... ����New Items�Ի�����ѡ��Unit��Del
phi������һ�����ļ������ڴ���༭���д���
  ���� �����пⵥԪ�����Ӳ�����ֻ��ѡ��File/OPenΪ���пⵥԪѡ��Դ���롣�ڸ�
�ⵥԪ��ֻ�ܰ�����룬���ÿⵥԪ����һ�����壬���������

������ �̳�һ����������
����ÿ����������TComponent�ĺ�����Ҳ�ɴ�TControl��TGraphicControl�ȼ̳С�
����Ϊ�̳�һ����������Ҫ�����������������ڿⵥԪ��interface���֡�
�������磬����һ����򵥵Ĵ�TComponentֱ�Ӽ̳зǿ��ӵIJ����������е����Ͷ���
���ڲ�����Ԫ��interface���֡�

����type
      TNewComponent=class(TComponent)
           ����
      end;

  ����������ע��TNewComponent�������²�����TComponentûʲô��ͬ����ֻ������
�Լ������Ŀ�ܡ�
������ ע�Ჿ��
����ע�Ჿ����Ϊ�˸���Delphiʲô���������벿����ͼ���Component Palette����
һҳ��
����Ϊ��ע��һ��������
������ �ڲ�����Ԫ��interface��������һ��Register��̡�Register�����κβ���
��������ܼ򵥣�

           procedure Register;

    ����������в����ĿⵥԪ�����Ӳ�������Ϊ����Register ��̣���˲���Ҫ��
��������
������ �ڿⵥλ��implementation������дRegister���Ϊÿһ������ע��IJ�����
�ù��RegisterComponents�����RegisterComponents����������Component Palett
e��ҳ��Ͳ������ͼ������磬ע����ΪTNewComponent�IJ���������������Component P
alette��Samplesҳ���ڳ�����ʹ�����й�̣�

        procedure Register;
        begin
          RegisterComponents('Samples', [TNewComponent]);
        end; 

  ��һ��ע����ϣ�Delphi�Զ�������ͼ����ʾ��Component Palette�ϡ�
����2. ʹ��Component Expert������ר�ң�
��������ʹ��Component Expert�����²�����ʹ��Component Expert���˴����²���
����׶εĹ�������Ϊ��ֻ����������£�
��  �� �²���������
��  �� ��������
��  �� �²���Ҫ�����Component Paletteҳ��

��  Component Expertִ�����ֹ���ʽ����ͬ������
������ �����µĿⵥԪ
  ���� �̳еõ��²�������
��  �� ע�Ჿ��

������Component Expert���������е�Ԫ�����Ӳ�����
    ��ѡ��File/New... ����New Items�Ի�����ѡ��Component���ʹ�Component Exp
ert�Ի��򣬼�ͼ19.2��






                   ͼ19.2  Component Expert�Ի���

��������Component Expert�Ի����ÿһ�����ѡ��OK��Delphi���������²�����Reg
ister��̵ĿⵥԪ�����Զ�����uses��䡣
������Ӧ�����̱���ⵥԪ��������������������֡�

19.2.1.4. ����δ��װ�IJ���

�����ڽ��²�����װ��Component Palette֮ǰ���ܲ��Բ�������ʱ�Ķ���������ڵ�
���²����ر����ã����һ�����ͬ��ļ����������ⲿ�������۸ò����Ƿ������Compo
nent Palette�ϡ�
��  �ӱ�����˵����ͨ��ģ���û������������ڴ����е�Delphi�Ķ���������һ��δ��
װ�IJ�����
�����ɰ����в���������δ��װ�IJ���
����1. �ڴ��嵥Ԫ��uses����м��벿�����ڵ�Ԫ������
    2. �ڴ���������һ������������ʾ����
���������Լ����Ӳ�����Delphi���Ӳ����ķ�������Ҫ��ͬ�㡣
�����㽫��������ڴ������������ײ���public���֡�Delphi��Ὣ��������ڵײ���
�������档
�����㲻�ܽ������Delphi����Ĵ������͵��������ϲ�������һ���������Ķ�����
��Ӧ�ڴ洢��DFM�ļ��С����Ӳ��ڴ����д��ڵIJ��������DFM�ļ���Ч�Ĵ���
  ��3. ���ϴ����OnCreate�¼�������
����4. �ڴ����OnCreate�������й���ò���
���������ò����Ĺ�����ʱ�����봫��Owner������Owner���������ò�����һ��˵
�����ǽ�Self��ΪOwner�Ĵ��������OnCreate�У�Self��ָ���塣
�� 5. ��Component��Parent���Ը�ֵ
��������Parent���������ǹ��첿����Ҫ���ĵ�һ����ʱ��Parent����ʽ�ϰ����
һ����˵Parent�Ǵ������GoupBox��Panel��ͨ����Parent����Self�������塣������
��������������֮ǰ����ȸ�Parent��ֵ��
�� 6. ����Ҫ������������Ը�ֵ
�����������������ΪTNewComponent���͵��²������ⵥԪ��ΪNewTest������ⵥԪ
Ӧ��������ģ�

        unit Unitl;

        interface

        uses SysUtils, Windows,  Messages,  Classes, Grophics, Controls, Forms, 
Dialogs, 
          Newtest; 
        type
          Tforml = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
         { private�� �� }
      public
         { public�� �� }
        NewComponent: TNewComponent;
      end; 

        var
          Forml: TForml; 

        implementation

          {$R  *.DFM }

        procedure TForml.FormCreate ( Sender: TObject ) ;
    begin
      NewComponent := TNewComponent.Create ( Self );
      NewCompanent.Parent := Self;
      NewCompanent.Left := 12;
    end;
   
    end.

--
m;37m�� ��Դ:�����е����������� s1000e.whnet.edu.cn��[FROM: 202.197.4.153]m

--
�� ��Դ:���ϴ�С�ٺ���Ϣ����վ bbs.nju.edu.cn��[FROM: a507yjh.nju.edu]
Technical Details
Message-ID: <3OG0Xc$uD3@bbs.nju.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: fc86e,c230e72b82581040,start
X-Google-Attributes: gidfc86e,public
From: mendy.bbs@bbs.nju.edu.cn (�ϵ�)
Subject: Delphi�Զ��岿����д (ת��)
Date: 1998/04/26
Message-ID: <3OG0Xc$uD3@bbs.nju.edu.cn>
X-Deja-AN: 348013417
X-Filename: Programming/M.893584982.A
Organization: nju_bbs
Newsgroups: cn.bbs.comp.program