Thanks
I missed the read/only property in the Data list.
I will look at alines.
>For your #1 you may also use alines() to get the array of lines, and then scan the array and recreate the string while ignoring empty array values.
>
>For your #2 you may set EditBox.READONLY=.t. and EditBox.Enabled=.t.
>
>>I have forms with memo fields on them. I have several questions about using them.
>>
>>1. What is the best way to remove extra spaces between words, i.e. if I have
>>
>>this is a test
>>
>>
>>skipped several lines (what viewer sees
>>
so that it becomes
>>
>>This is a test skipped several lines
>>
>>Can I use some thing like
>>
>>cString = Thisform.editboxformemofield.value
>>do while at( " ", cString ) > 0
>> cString = strtran( cString, " ", " " )
>>enddo
>>Thisform.editboxformemofield.value = cString
>>
>>Could I just substitute "Thisform.editboxformemofield.value" for "cString" in the above
>>
>>do while at(...
>>
>>enddo
>>
loop?
>>
>>
>>2. How do I display a memo field (editbox) so that scroll bars are active (can scroll) to see more of the contents of the memo field but so that users cannot change it contents. I could create a full screen zoom form but that seems a bit much.