set procedure ile genelde icinde bir dizi procedure olan dosyalar aciliyor ( class kodu da olabilir - simdilik ilk durum oldugunu varsayalim):
Visual Fox Pro
* programlib1.prg
procedure KareAl( tnValue )
return m.tnValue ^ 2
endproc
Procedure FullName( tcFirstName, tcLastName )
return m.tcFirstName - (' ' + m.tcLastName )
endproc
* diger procedure ....
Simdi bunu class yapsak topu topu basi ile sonuna bir satir gerekiyor
Visual Fox Pro
* programlib1.prg
define class Prosedurlerim as Custom
procedure KareAl( tnValue )
return m.tnValue ^ 2
endproc
Procedure FullName( tcFirstName, tcLastName )
return m.tcFirstName - (' ' + m.tcLastName )
endproc
* diger procedure ....
enddefine
Bir baskasi:
Visual Fox Pro
* programlib2.prg
define class Prosedurlerim as Custom
procedure KareAl( tnValue )
return m.tnValue ^ 2
endproc
Procedure FullName( tcFirstName, tcLastName )
return m.tcLastName - (', ' + m.tcFirstName )
endproc
* diger procedure ....
enddefine
Ustelik artik class oldugundan extra property filan ekleme sansi var. Parametre gecisleri "this" nedeniyle azalir vs.
FullName proceduru bunun gibi 10 tane daha class'imiz var ve hepsinde var. Ayirmasi cok basit ama artik:
oLib1 = NewObject("Prosedurlerim", "programlib1.prg")
oLib2 = NewObject("Prosedurlerim", "programlib2.prg")
use employee
? oLib1.FullName(employee.FirstName, employee.LastName)
? oLib2.FullName(employee.FirstName, employee.LastName)
oLib1, oLib2 alias gibi hangisini cagirdigin acik (oysa is daha da karmasik olsun diye her ikisinde de class adi "Prosedurlerim").
Bu arada:
local oLib1 as "Prosedurlerim" of "programlib1.prg"
dersen, NewObject ile yaratmadan oncel bile intellisense vasitasiyla icindeki property metod vs goruluyor:
oLib1. (intellisense devrede)