基础OOP问题,关于 property 使用 function & procedure 做成员...(50分)

  • 主题发起人 主题发起人 yanyading
  • 开始时间 开始时间
Y

yanyading

Unregistered / Unconfirmed
GUEST, unregistred user!
代码:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    function Pro_String_Read (const Value: String): String;
    function Pro_String_Write (const Value: String): String;
    property S: String read Pro_String_Read write Pro_String_Write;
    
    //  这个有一个错误: Incompatible types 如何解决,原因是什么?谢谢!~
      
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
  function TForm1.Pro_String_Read (const Value: String): String;
    begin
    Result := 'The DIY Property is ' + Value;
    end;

  function TForm1.Pro_String_Write (const Value: String): String;
    begin
    Self.Caption := 'The DIY Property is ' + Value;
    end;

{$R *.dfm}

end.
 
你把光标移到:property S: String read Pro_String_Read write Pro_String_Write;
这句上,然后按crt+shift+c,系统会为你自动完成代码,然后你填就是了。
好像是这个不对:
function TForm1.Pro_String_Write (const Value: String): String;
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
FPro_String:string;
function Pro_String_Read: String;
procedure Pro_String_Write (const Value: String);
{ Private declarations }
public
property S: String read Pro_String_Read write Pro_String_Write;
{ Public declarations }
end;

var
Form1: TForm1;
{$R *.dfm}
implementation
function TForm1.Pro_String_Read: String;
begin
Result := 'The DIY Property is ' + FPro_String;
end;

procedure TForm1.Pro_String_Write (const Value: String)
begin
FPro_String:=Value;
Self.Caption := 'The DIY Property is ' + Value;
end;
end.
 
老大,你打完了 property S: String read Pro_String_Read write Pro_String_Write;
这一行以后按Ctrl+Alt+C Delphi就会自动生成 Pro_String_Read、Pro_String_Write 的声明的。
Pro_String_Read的作用就是取值,怎么会还要传进去一个Value?
Pro_String_Write的作用是赋值,要返回值有什么用?
 
说的也是, 不过如果要判断怎么办?
 
>>老大,你打完了 property S: String read Pro_String_Read write Pro_String_Write;
>>这一行以后按Ctrl+Alt+C Delphi就会自动生成 Pro_String_Read、Pro_String_Write 的声明的。
我怎么试都不行呀,我的是D5
 
TForm1 = class(TForm)
//最好不要在这儿加代码,这儿是由DELPHI管理的。
//自己的代码加到Public或是Private或是Published中去。
private
{ Private declarations }
public
property S: String read Pro_String_Read write Pro_String_Write;//在这儿按Ctrl+Alt+C。
{ Public declarations }
end;
 

Similar threads

后退
顶部