Same code runs OK on desktop, but not on the device.

Cableguy

Expert
Licensed User
Longtime User
So I'm about 75% done on my current app, and my vacations have ended, so at work i use mostly my device to code..
My project works fine on the desktop, but in the device I get an error, with no specific descripton...
I can't figure out whts wrong, but if I comment the problematic lines, wich have to do with a small 6 itens array, the Ide just won't close after a run command...
I use only 2 DLLs in my project both compatible with device/desktop usage...

Is this a bug, or am I missing something?

Here is my project,only the englis text file has ALL the menus texts...Other are dummies, and the russian file is missing because it would zip...
 

Cableguy

Expert
Licensed User
Longtime User
I get an error on the device on the line
B4X:
 Control("imgBtn" & x +1,ImageButton).image = AppPath & "\" & Flag(x)
But only in the device...
App close so far presents no problem...
Please notice that most code is in the codefile.txt...
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
The problem is in sub LoadINI.
You should replace all the Flag(0) = ... lines to:
B4X:
For i = 0 To 5
        b = FileRead(c1)
        Flag(i) = SubString(b,StrIndexOf(b,"=",0)+1,StrLength(b)-StrIndexOf(b,"=",0)[B][COLOR=Red]-1[/COLOR][/B])
Next
You've set the length to be one character longer than it should be.
So a trailing space was added to Flag(i).
 

Cableguy

Expert
Licensed User
Longtime User
I almost lost my sleep tonight trying to figure out what was wrong and that pop up as one of the possible reasons, but why doesnt affect the execution on the desktop?..
 

Erel

B4X founder
Staff member
Licensed User
Longtime User
I almost lost my sleep tonight trying to figure out what was wrong and that pop up as one of the possible reasons, but why doesnt affect the execution on the desktop?..

Many problems are solved after a good night sleep.
I guess that the system API on the desktop can handle this extra space character and the device can't.
 

Cableguy

Expert
Licensed User
Longtime User
Again, it runs on the desktop but not on the device.....

From the begining...
Tap menu -> New...Defaul.INI Node is created...
Select default.INI, Tap&Hold, till context menu apears....
Add several Items to the "File"...
Now let's delete One...
Select one, tap&hold and select delete..
when promted, choose Yes...
On the desktop, the chosen node is deleted, with no problems, but in the device it errors and once again, I don't se why...(?)


PS:mad: EREL
Perhaps this should be mooved to the Question forum instead...
Thanks
 

specci48

Well-Known Member
Licensed User
Longtime User
Hi Cableguy,

to get the delete going on the device you have to change the following statements (case "9" of the context handling) in your codefile.txt to:
B4X:
   Case "9"
      If Msgbox(Txt(27),Txt(28),cMsgboxYesNo,cMsgBoxQuestion) = cYes Then
          IF Node.IsRoot Then
         TreeView.RemoveNode(Node.Value)
          Else
         Parent.Value = Node.Parent
         Parent.RemoveNode(Node.Value)
          End If
      Else
         Return
      End If

As I already mentioned, the treeview works very different on the desktop and on the device. :sign0161:
On the desktop "TreeView.RemoveNode" works for all nodes belonging to the whole tree. On the device you have to handle the differences between "TreeView.RemoveNode" and "Node.RemoveNode" manually. Only root nodes can be removed with "TreeView.RemoveNode". For all other (sub)nodes you have to use "Node.RemoveNode". :(


specci48
 

Cableguy

Expert
Licensed User
Longtime User
Thanks Specci...
 
Top