FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour oWdn:Say - SAY class
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
oWdn:Say - SAY class
Posted: Sat Oct 27, 2007 09: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

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
Re: oWdn:Say - SAY class
Posted: 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
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
oWdn:Say - SAY class
Posted: Sun Oct 28, 2007 06: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

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
oWdn:Say - SAY class
Posted: Sun Oct 28, 2007 03: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
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
oWdn:Say - SAY class
Posted: Sun Oct 28, 2007 03:39 PM

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

Thanks in advance
Otto

Posts: 9020
Joined: Thu Oct 06, 2005 08:17 PM
oWdn:Say - SAY class
Posted: Sun Oct 28, 2007 05: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

Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
oWdn:Say - SAY class
Posted: Sun Oct 28, 2007 07: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

Continue the discussion