oWdn:Say - SAY class

oWdn:Say - SAY class

Postby Otto » Sat Oct 27, 2007 9:33 pm

would someone be so kind to explain the difference of
oWdn:Say

and the SAY class.
oSay is repainted automatically what does this mean for the memory usage.
Thanks in advance
Otto
User avatar
Otto
 
Posts: 6327
Joined: Fri Oct 07, 2005 7:07 pm

Re: oWdn:Say - SAY class

Postby Enrico Maria Giordano » Sat Oct 27, 2007 10:03 pm

Otto wrote:would someone be so kind to explain the difference of
oWdn:Say

and the SAY class.
oSay is repainted automatically what does this mean for the memory usage.
Thanks in advance
Otto


oWnd:Say() is just a text printed on the specified window while TSay is a real control. And yes, it surely uses more resources but I wouldn't care.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Otto » Sun Oct 28, 2007 6:53 am

Hello Enrico,
thank you.
But memory seems to be a problem. See my test - prg.
Maybe I call it the wrong way.
But if you call the test function with oSay more times the program crashes.


Regards,
Otto


#include "FiveWin.ch"

//----------------------------------------------------------------------------//
STATIC n
function Main()

local oWnd, oFont
N:=1
DEFINE FONT oFont NAME "Arial" SIZE 20, 30

DEFINE WINDOW oWnd FROM 1, 1 TO 30, 80 TITLE "Testing Method Say()"

@ 1, 1 BUTTON " oWnd : Say " OF oWnd SIZE 60, 25 ;
ACTION test2(oWnd,oFont)

@ 1, 30 BUTTON " oSay " OF oWnd SIZE 60, 25 ;
ACTION test(oWnd,oFont)



ACTIVATE WINDOW oWnd MAXIMIZED

RELEASE FONT oFont

return

//----------------------------------------------------------------------------//



func test(oWnd,oFont)
LOCAL I:=0

FOR N := 1 TO 60 STEP 2
FOR I := 1 TO 200 STEP 4
@ n,I SAY ALLTRIM(STR(i))+" ." OF oWnd FONT ofont COLORS nRGB( 255, 0, 0 ) , nRGB( 55, 55, 255)
NEXT



NEXT
msginfo("ENDE")

return nil

func test2(oWnd,oFont)
LOCAL I:=0

FOR N := 1 TO 60 STEP 2
FOR I := 1 TO 200 STEP 4
oWnd:Say( n, I, ALLTRIM(STR(i))+" .", nRGB( 255, 0, 0 ) , nRGB( 255, 2255, 255),oFont )
NEXT
NEXT
msginfo("ENDE")

return nil
User avatar
Otto
 
Posts: 6327
Joined: Fri Oct 07, 2005 7:07 pm

Postby Enrico Maria Giordano » Sun Oct 28, 2007 3:11 pm

Otto wrote:Hello Enrico,
thank you.
But memory seems to be a problem. See my test - prg.
Maybe I call it the wrong way.
But if you call the test function with oSay more times the program crashes.


Yes, because you are creating more and more TSay objects while one would be enough. Once created you can simply refresh it or change its text.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Otto » Sun Oct 28, 2007 3:39 pm

Hello Enrico,
could you show me how to do, please.

Thanks in advance
Otto
User avatar
Otto
 
Posts: 6327
Joined: Fri Oct 07, 2005 7:07 pm

Postby Enrico Maria Giordano » Sun Oct 28, 2007 5:01 pm

It depends on what you are trying to do. Generally speaking, consider TSay as any other control. Try to change your sample replacing SAYs with GETs: would it make sense?

Moreover, look at Refresh() and SetText() methods.

EMG
User avatar
Enrico Maria Giordano
 
Posts: 8710
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Postby Otto » Sun Oct 28, 2007 7:05 pm

I think osay / oget does not work for this job because I need all the information on the proper place.
If I try with Settext, nTop, nLeft and refresh I lose the former information.

Thanks again.
Regards,
Otto
User avatar
Otto
 
Posts: 6327
Joined: Fri Oct 07, 2005 7:07 pm


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 65 guests