[Gambas-user] String[] in Sub, what is going wrong

Gianluigi bagonergi at ...626...
Thu Apr 28 13:42:22 CEST 2016


And using classes instead of the modules?
See Attachment
Regards
Gianluigi

2016-04-28 9:00 GMT+02:00 Rolf-Werner Eilert <eilert-sprachen at ...221...>:

>
> Am 27.04.2016 18:39, schrieb T Lee Davidson:
> > On 04/27/2016 12:02 PM, Rolf-Werner Eilert wrote:
> >> This is the code:
> >>
> >> Public Sub setFontNameList(fontliste As String[])
> >> Dim i As Integer
> >>
> >>      fntexc.Clear
> >>
> >>      For i = 0 To fontliste.count - 1
> >>        fntexc.Add(fontliste[i])
> >>      Next
> >>
> >> End
> >>
> >> It didn't run, so I set a Wait to the line fntexc.Clear. "fontliste[]"
> >> is delivered as it should, it has 3 items. But fontliste.Count is 0,
> >> fontliste.Max would be -1. So it is never copied.
> >>
> >> What is going wrong here???
> >>
> >> Regards
> >> Rolf
> >>
> > I have to assume that "fntexc" is a 'global' since it is not declared in
> the Sub.
> >
> > This code...
> >
> > ' Gambas module file
> >
> > Public fntexc As String[]
> >
> > Public Sub Main()
> >
> >     Dim sFont As String
> >
> >     fntexc = []
> >     setFontNameList(["courier", "helvetica", "arial"])
> >     For Each sFont In fntexc
> >       Print sFont
> >     Next
> > End
> >
> > Public Sub setFontNameList(fontliste As String[])
> >     Dim i As Integer
> >
> >     Debug fontliste.Count
> >
> >     fntexc.Clear
> >
> >     For i = 0 To fontliste.count - 1
> >       fntexc.Add(fontliste[i])
> >     Next
> >
> > End
> >
> > ...works, and outputs:
> > MMain.setFontNameList.19: 3
> > courier
> > helvetica
> > arial
> >
> >
> > Hope that helps,
> >
>
> Well, thank you. I will answer here to avoid double explanations. Thank
> you all for your answers!
>
> You are right, fntexc is declared upstairs in the module where this
> function is. The problem is, however, not fntexc but fontliste. The
> function is called from another module. Fontliste is declared PUBLIC
> there, and when the function is called, fontliste contains the items.
> But when fontliste shall be used within the function, it appears to be
> empty.
>
> So it is module 1 which has a string array named FontListe:
>
> Public FontListe As New String[]
> .
> .
> .
> Public Sub btnOK_Click()
> .
> .
>      ini.setFontNameList(FontListe)
> .
> .
> End
>
> And in module 2 ("ini") the contents is to be copied into the string
> array which is there:
>
> Private fntexc As New String[]
> .
> .
> .
> Public Sub setFontNameList(fontliste As String[])
> 'Dim i As Integer
>
>    fntexc.Clear    'When I stop here, fontliste is filled
>
>    fntexc.Insert(fontliste) 'When I stop here, fontliste is empty
>
>    ' For i = 0 To fntliste.count - 1 'Thanks to Christof for the tip,
> but it doesn't run with Insert either
>    '   fntexc.Add(fntliste[i])
>    ' Next
>
> End
>
> So my explanation is that I might need another string array which I
> declare within the calling Sub in module 1. But I cannot remember I have
> ever had a similar issue before. What confuses me most is that I can see
> the contents of the array when I enter the function, but it appears
> empty when I want to access it there.
>
> Rolf
>
>
>
> ------------------------------------------------------------------------------
> Find and fix application performance issues faster with Applications
> Manager
> Applications Manager provides deep performance insights into multiple
> tiers of
> your business applications. It resolves application problems quickly and
> reduces your MTTR. Get your free trial!
> https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: DataTransfert-0.0.1.tar.gz
Type: application/x-gzip
Size: 11680 bytes
Desc: not available
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20160428/48641b1d/attachment.bin>


More information about the User mailing list