File: n_indirect.sru
Size: 1651
Date: Mon, 31 Dec 2018 21:14:38 +0100
$PBExportHeader$n_indirect.sru
forward
global type n_indirect from nonvisualobject
end type
end forward

global type n_indirect from nonvisualobject autoinstantiate
end type

type variables
Private:

String is_username
String is_username_hist[]

Public:

Indirect String username {of_SetUsername(*value),of_GetUsername()}

end variables
forward prototypes
private subroutine of_setusername (string as_username)
public function string of_getusername ()
public function long getusernamehistory (ref listbox alb_history)
end prototypes

private subroutine of_setusername (string as_username);// set private username instance var

Long ll_next

If IsNull(as_Username) Then
   MessageBox("Set Username", "Null value not allowed!", StopSign!)
Else
   // save value to instance variable
   is_Username = as_Username
   // save value to history array
   ll_next = UpperBound(is_username_hist) + 1
   is_username_hist[ll_next] = as_Username
End If

end subroutine

public function string of_getusername ();// get private username instance var

If is_username = "" Then
   Return "[empty]"
Else
   Return is_username
End If

end function

public function long getusernamehistory (ref listbox alb_history);// return username history in listbox

Long ll_idx, ll_max

alb_history.Reset()

ll_max = UpperBound(is_username_hist)
For ll_idx = 1 To ll_max
   alb_history.AddItem(is_username_hist[ll_idx])
Next

Return ll_max

end function

on n_indirect.create
call super::create
TriggerEvent( this, "constructor" )
end on

on n_indirect.destroy
TriggerEvent( this, "destructor" )
call super::destroy
end on