Simple Cube Programming - Windows Mobile Software Development

Hello XDA-DEV Community,
Yesterday I played a game card game called Munchkin, but we also needed a simple 6 sided cube. The Cube was missing, and so I decided to create my windows mobile cube
I want the Cube to rotate, when the mobile phone is shaking.
My thought was to create a gif with 6 frames (1-6). When the event "shaking" (defined by G-Sensor) triggers, the gif should jump to a random frame.
My question is: how do you jump to a frame? I use Visual Studio 2008 with Windows Mobile 6 Professional SDK and compact framework 3.5. My first thought was to insert the gif into an picturebox. But now i stuck.
Greetings,
muh2k4
P.S.: I use a HTC Touch HD with Windows Mobile 6.5 and Milina.
Excuse my language, please!

muh2k4 said:
My thought was to create a gif with 6 frames (1-6). When the event "shaking" (defined by G-Sensor) triggers, the gif should jump to a random frame.
My question is: how do you jump to a frame? I use Visual Studio 2008 with Windows Mobile 6 Professional SDK and compact framework 3.5. My first thought was to insert the gif into an picturebox. But now i stuck.
Click to expand...
Click to collapse
When I've done similar things for Windows (not mobile), I've used separate images and changed which one is shown in the picture box. I'm not sure there is a way to pick the frame of the GIF. If you use a PNG, it should still be small enough to not be a noticeable difference in file size (if you're concerned about that).
As an alternative, you could possibly use the trick that web designers use. You make one big image, that's 6 times as wide, that has the content of all 6 individual "frames". Then, you move the image in the box so that only one of the "frames" show as needed.

Why not just have 6 pictureboxes and select one using Math.Rand()?

Jumping to one frame of a GIF is just excessively complicated. Have six static images.

Related

Today plugins

Recently i was thinking about creating an app which would show me my remaining calltime with one of polish prepaid services. I imagine it would work like that:
1. receiving a specific text message with my account balance from my operator the app would capture it and store the value
2. after each call being made operator sends sms with call cost. this should be deducted from previously stored value. etc etc.
3. value should be displayed somewhere, like on today plugin...
seems simple, but theres a catch;] i can't code for WM5. i just got myself delphi 2006 today and i see it has limited CF support so i can create applicatons... but am i able to create Dlls? also i don't have clue about creating dll's at all, especialy those for WM5. is it even possible with .net? is there any chance for me?
i know, i know, i shoud start to use c++ long time ago, but i'm affraid it' might be a bit to late for me;]
ps. is there anything like WM5 sdk, any guide kit for programmers, specs of any kind? where to look for it? thanks for any help. please note, i'd like to become one of you guys, i could even be of some value;]
heard somewhere that today plugins
cant be written in .net
here is a link to the subject of today plugins
http://forum.xda-developers.com:80/showthread.php?t=234162&highlight=codeguru
thanks, gonna try it in a minute.
(today unbelievable happened - my wizards battery got empty )
interesting. i'll consider switching to c++. as far as i understand it's not normal C, its some kind of mobile oriented c? but no connection with .net? how does it work?
Ok.
C++ is an extension of C to include object oriented programming. The language is not specific for mobile devices, so any book / article on the subject will do for starters.
I taught my self C++ after learning Pascal (Delphi is for Pascal right?) in school and it was quite easy because the languages have similar structure.
Your second stop is to learn WIN32 programming. I don't know how Delphi deals with APIs and function exports (that's what you need for DLLs).
Basically WM programming is very similar to desktop windows programming, except for a few miner difference (like all APIs using only Unicode).
You can download a free development tool called eVC 4 from MS. It looks exactly like Visual Studio 6 if you have any experience with that.
Unfortunately system DLLs like plugins can not be written using .NET but if you search MSDN (I really don't remember the link), there is an article on how to use a basic C++ DLL for the plugin and delegate all the real functionality to a .NET DLL.
Good luck.
yes, delphi is much like pascal
i know it's not that hard if you mean the structure. i just don't know how to start. in fact i got myself evc yesterday, after what you say i'll take good lok at it as soon as i prepare some room on my HD.
Delphi does well with windows api - as far as i can tell, i played with theese a bit so it shouldn't be hard to catch up when starting with c++. other thing is i never did dll, although i know how it works in general, i also used other peoples dll's in my programs. will do i hope. also, Rudegar provided us with good tutorial/example on today dlls, so i hope i'll be able to expand it. the only thing, i'm a bit anxious. you say evc is good for starters? ok, going to give it a try.
what a week, four days, four new RAD environments already
delphi is object pascal which is an extention of pascal like c++ is of c
c programs should compile without any problems in c++
Hi,
I saw a way to develop today plugins in .net : http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/TodayScrn.asp?_r=1
I did not try and I guess it will slow down the device as .net is not very fast, but you can try...
Good luck

Windows Mobile Development: RAM Problem

Hey!
First of all: I know that there are many solutions to exactly this problem, but none of them works...
I am currenty working on an Windows Mobile 6.1 professional Application with Visual Studio 2005 Standard Edition in c#. My mobile is a Samsung Omnia i900. Additionally i use the Windows Mobile SDK 6 professional.
My Problem: the app seems to get not enough memory for executation. If i load a large image (2mb) i get an "OutOfMemory"-Exception. Weird: if i run the app via Visual Studio (Deploy on Device) i cant load even pretty small images. When i start the app on the device, i can load bigger images, but i need to load images of 2 mb and that doesnt work either way! This application will get pretty large so i was wondering how this can work, when i only got 1-2 mb ram, even though the mobile tells me that there more than 50 mf ram free to use.
i know that you can free ram of older images, when i dont need em anymore with dispose() but i even fail to load one image, if its big enough.
i also tried the OpenNetCF, didnt work either!
this really drives me crazy as im looking for solutions for the last few days, nothing works! i mean, how can i create a biger app, if i only have 2 mb or Ram to run it in??
please please help!
Michael
P.S.: as i am pretty new to visual studio, i have another tiny question: i added some references (DLLs) to the project, that i do not need anymore! how can i remove those references? cannot find the command *too stupid*
Do you know if you're using DirectDraw in those .NET wrappers?
Windows Mobile powered devices have a graphical memory limit, which no one can do anything about :S
If you use GDI (slower, not hardware accelerated imaging API) I think you'll have less problems.
I work with native code, so I'm not sure you can make those choices using .NET, nor if this is your actual problem.
hey and thanks for responding!
well, as you say im not sure if i am using it! i use the normal System.Drawing Stuff. When i load a picuter i use Image i = new Bitmap(path) or paint with graphics.drawImage, either way the memory overflows! this is driving me crazy
Can you try developing this using native code?
well isnt that extremely complicated? i am quite new to that stuff, so i am horrorfied to even think about writing this in native code!
well i could give it a try, do you know some good tutorials for that? i can code a little java, delphi, haskell, prolog and C#, but all of these are pretty far away from machine language ,so native coding would be pretty hard for me!
Ahah it seems you're under the impression native code = Binary?
Native code, as opposed to Managed Code (C#, VB) is simply running C or C++, without the .NET sandbox around.
Maybe it's too much for now. I can't help with C# or VB, but I advise you to search for GDI and DirectDraw calls on Managed Code and see what you're using.
hehe, i was already wondering, what kind of dude you are, coding in machine language (that was my translation given by google). Ok, i think i can do some stuff in c++. Do i have to tell my visual studio explicitly not to use the .NET-framework when i start a C++ Mobile Device Project or is that the default configuration? sorry im really new to that, used to code in eclipse...
mhmpf! i like that wysiwyg stuff from c#, damn...
but thanks so far!
anybody else got any ideas? i mean it has to be possible... if not, ill try some c++
I suggest you just head over to MSDN.com and check what exactly those functions do. There's no point in learning "Windows driven" C++ if the problem rests in other place.
I'm almost sure there are GDI calls for .NET. I merely wanted you to try them!
hey, i am afraid i am already using the GDI-calls! Found several tutorials, which show how to load an image, exactly like i did it.
That's not good.
I must ask, why do you want 2mb images?
its a navigation-like software, and i need to load the complete image to be able to scroll smoothly through it! for the moment it works as i changed the image into a 600kb one... but im afraid, as the application gets bigger even those 600kb could be too much.when i implemented the other logics like routing and points of interest on the map, i think that will exceed those (apparently only) 2mb ram-space i have...
Sepplo said:
its a navigation-like software, and i need to load the complete image to be able to scroll smoothly through it! for the moment it works as i changed the image into a 600kb one... but im afraid, as the application gets bigger even those 600kb could be too much.when i implemented the other logics like routing and points of interest on the map, i think that will exceed those (apparently only) 2mb ram-space i have...
Click to expand...
Click to collapse
I think it's best to buffer the current position's image and the neighboring ones. When the position changes you automatically show the pre-buffered neighbor, free the previous ones and load the next. If there's a sudden change by a lot, you'll just say "loading" and buffer the new far away position with its neighbors.
Don't try to have the complete "maps" always fully available.
but when the application gets bigger (other things too come), im almost sure i will need more than 1,5mb ram, besides: if i just load parts of the picture, i need to make more changes on the MouseMove-Event, Scrolling will get laggy with that :/
(by the way, thanks a lot for helping me, i appreciate it very much!!)
No, it can be done, buffering is essential in graphical intensive applications on Windows Mobile... You have to keep in memory what you are displaying and the next probable ones
No problem, it's what we're here for
Try writing the code that loads the images in a seperate assembly (dll) and call that from the main exe.
Ta
Dave
Sepplo said:
My Problem: the app seems to get not enough memory for executation. If i load a large image (2mb) i get an "OutOfMemory"-Exception.
Click to expand...
Click to collapse
What kind of image is it? Remember that many image formats are compressed, so doing stuff with em takes more memory than you'd realize.
godefroi said:
What kind of image is it? Remember that many image formats are compressed, so doing stuff with em takes more memory than you'd realize.
Click to expand...
Click to collapse
How big is the image as a Bitmap (ie a .bmp) - this will tell you how much RAM it requires to load (plus overheads for the object)
Its probably best if you take the Google\Bing maps approach and split it into a number of smaller images and load\unload each one as you need it
TehPenguin said:
How big is the image as a Bitmap (ie a .bmp) - this will tell you how much RAM it requires to load (plus overheads for the object)
Its probably best if you take the Google\Bing maps approach and split it into a number of smaller images and load\unload each one as you need it
Click to expand...
Click to collapse
That's what I suggested, but he seems reluctant in buffering only the active and neighboring parts... I don't see any other way here =/
you guys were absolutely right! i knew before that jpeg is a compressed format, but the bmp is actually around 13mb big, that is really too much. Well i really will have to split the image. but thus week i have no time, due to another paper i have to write...
last question: what would be the best approach here?
1. one big panel and draw the images at the right position? (seems not good to me, cause i would have to repaint the panel with all images over and over again)
2. different panels to paint the pieces in?
3. different picture boxes to load the images into?
thanks very much for your help!
Sepplo said:
you guys were absolutely right! i knew before that jpeg is a compressed format, but the bmp is actually around 13mb big, that is really too much. Well i really will have to split the image. but thus week i have no time, due to another paper i have to write...
last question: what would be the best approach here?
1. one big panel and draw the images at the right position? (seems not good to me, cause i would have to repaint the panel with all images over and over again)
2. different panels to paint the pieces in?
3. different picture boxes to load the images into?
thanks very much for your help!
Click to expand...
Click to collapse
What do you mean by 'panel'?

Language of choice

Just curious..What is everyone's programming language of choice when developing apps for WinMo?
Ive been working (lightly) on a VB program, which is ok, but i feel it isnt as efficient as others might be, and i know efficiency and size is a big issue on mobile devices (obviously)
Depends:
A simple program or one that can be done just using the stuff in the standard system DLLs then I will go for the pain of coding it in WIN32 C++. The resulting application runs like the wind, and can be distributed as a single executable file, no CAB, no installation projects, etc etc.
If I need any web or fancy data functionality, then it is .NET, because it is not worth the hassle of getting all this to work from levels lower down.
Having had lots of previous coding experience in C/C++ then C# is the natural choice, but as far as .NET is concerned, the actual language you code in is irrelevant. It compiles down to IL anyway and the CPU 'JIT' compiles this into its own code before it runs. Hence the performance hit when the program starts and runs.
In .NET, in essence, all you are doing anyway, is creating .NET objects, setting their properties and calling their methods, in order to get them to do what your application requires. A simplistic view, I know, but that's is all there is to it!
The language that you use to do this doesn't really matter, it is just personal preference.
I guess i assumed one language had more efficantcy than another. Like im working with VB atm, and i know it simplifies alot of things to make it easier to use, not sure if it includes all that extra code in the final build or not tho.
I would like to get more pratice with C++ and i have yet to use C# so dono whats different about that.
I would like to eventually start making programs that utilize the .net code and get my programs talking though data on the phone, but im not that advanced yet.
currently im still trying to wrap my head about making a program with a local database. The program im working on currently doesn't store any data, but i would like to to. I would also like (if i get ambitious) to have that program possibly talk to a PC (parent) program and sync with it. But that i think is a ways off.
Also, do the Mobile SDK's look different? The program im working on i started in the 5 SDK, but (obviously) doesnt have Finger friendly IU tools. I haven't looked at the 6/6.5 SDK yet (as id have to start over again i think). Does it have more finger friendly options?
In .NET CF, the finger-friendlinnes and kinetic scrolling and this all isn't available for all controls. Most of them (the classic ones) are, but if you try using scrolling for whole form, it won't work, only scrollbar will. (Probably with some playing with physicsengine and marshalling you might be able to get it working here, too).
In C++, there are numerous examples of this gestures etc directly in SDK, also many other stuff is there.
See, the main difference here is that .NET is fully equipped with stuff to get everything done fast, easy way.
In C++, you must first make this way yourself .
i am using the .net 3.5 framework tho.. Unless you mean C++ vs C#. I thought .net was an expansion on a current language, and not a language on it self (meaning i cant choose to program in .net, its an option to VB, C++ or C#)
I did toy with it, and it appears as tho your right, the forums are the same. IE drop down/combo boxes are not finger friendly. Guess id have to turn it to a button and another form with large radio button options.
C# vs C++ main difference is that C++ is compiled to native code right on first time, which makes it very fast. C# is compiled to MSIL, which is NOT native code yet. When you run c# app, the code is being Just-In-Time (JIT) compiled to native code, which makes it "longer" to load and "slower" to run (usually that makes about 20% of speeddown on classic PCs with very optimalized C++ same code - it probably already is lower, this is a bit older result of testing).
C# has those nice features that it can't get out of its memory etc, the JIT is almost unhackable, so you can't write viruses in it etc.
As far as the SDKs are concerned, there are slight differences from one version to the next but they can be quite difficult to spot.
They can become issues, when code written to run on one platform is run on one several generations away. I have a program that was written in C++ WM2003. Works under all versions of WM until 6.5.3, when the About Dialog box fails to close if the (X) button is pressed. Turns out another value has to be added to the dialogbox flags field to get it to behave properly.
This has been a feature of SDK's from WM 5.0 onwards, but the WM2003 SDK is unaware of it. You have to add it manually to the shell code created by the SDK,
Progress I suppose. The full article is here:
http://forum.xda-developers.com/showthread.php?t=635063
Treo 700xw Verizon Spanish language
Hello fellow .... I'm new to this forum
I have a Treo 700wx and I live in Mexico ...
My Treo is Verizon's company and is currently with the version 1.22 ...
My problem is that it is in English and I need to change the language in Spanish ...
Thank you for your support both the need
Greetings
stephj said:
As far as the SDKs are concerned, there are slight differences from one version to the next but they can be quite difficult to spot.
They can become issues, when code written to run on one platform is run on one several generations away. I have a program that was written in C++ WM2003. Works under all versions of WM until 6.5.3, when the About Dialog box fails to close if the (X) button is pressed. Turns out another value has to be added to the dialogbox flags field to get it to behave properly.
This has been a feature of SDK's from WM 5.0 onwards, but the WM2003 SDK is unaware of it. You have to add it manually to the shell code created by the SDK,
Progress I suppose. The full article is here:
http://forum.xda-developers.com/showthread.php?t=635063
Click to expand...
Click to collapse
I noticed something else odd. When i run the app on my pone, the resolution is off. Now everything looks ok, i just mean that when i run it on my phone, theirs alot of "white dead space" at the bottom. I can only guess this is due to the SDK's catered to phones with smaller screen resolutions (ie Touch Pro) with buttons.. Is their a way for me to switch the resolution to ultilize the full Touch Pro 2 screen size (480x320 i think)?
Funny you should mention that. I replied to a similar post a short while ago. I'm not going to type it all in again, it's here.
http://forum.xda-developers.com/showthread.php?t=637417

[Q] Visual Studio 2008

Hi,
I make my first steps for Windows Mobile dev.
I'm using Visual Studio 2008 with 3.5 .NET Framework and Windows Mobile 6 SDK.
I'm using a HTC HD2.
I have two Questions:
1:
The resolution of my HTC HD2 ist 480x800px. When I enter 480;800 as Form-size and select "none" for AutoScaleMode, my controls and everything gets messed up. The controls get resized, the form is too large etc...
Why does this happen?
2:
How can I apply the HTC HD2 skin for the "skin" in the Visual Studio 2008 Desig-Window?
1:
The resolution of my HTC HD2 ist 480x800px. When I enter 480;800 as Form-size and select "none" for AutoScaleMode, my controls and everything gets messed up. The controls get resized, the form is too large etc...
Why does this happen?
Click to expand...
Click to collapse
To develop for higher resolution screens try the 6.5.3 DTK.
This article may help
http://www.davidmillington.net/news/index.php/2010/06/18/windows-mobile-6-5-3-dtk-in-visual-studio-2008
2:
How can I apply the HTC HD2 skin for the "skin" in the Visual Studio 2008 Desig-Window?
Click to expand...
Click to collapse
You can't as far as I'm aware. This skin you see in the designer is just a made up one by Microsoft.
1: Download and install Windows Mobile 6.5 Developer Tool Kit
for a WVGA emulator!
2: Search this forum there are some Sense SDKs (e.g. Sense Interface SDK by eboelzner)
not the skin in the designer but in the app
If you examine the ClientSize property of a .NET standard form, on such a device, you will find that the system by default treats the area as 240x400 not 480x800, and smooths/renders objects to fit it.
The client area is the 'white' area of the screen. The 'Height' of the client area reported in the ClientSize object is just less than 400 as the Start Bar and the Menu Bar have been excluded.
When the orientation changes, so will these values.
THanks that helped a lot. I'm just trying it.

[Emulator Skin] HTC HD2 Emulator Skin for Device Emulator / Visual Studio Designer

Hey,
this is my first contribution here on xda-developers and I hope you like it.
Overview
I've created a new skin for Microsoft Device Emulator and the designer view of Microsoft Visual Studio 2008 (2005). It is based on the HTC HD2 device and it looks so much more appealing than the outdated Pocket PC skin that the emulator / vs uses by default.
In addition to the improved looks, the skin offers more advantages:
The WVGA Emulator window now vertically fits on your desktop when using FullHD (1920x1080) resolution (or higher).
You have most of the buttons that modern devices use available: Send, Home, Start Menu, Back, End.
Modernized Windows Mobile application development/debugging experience.
(I know of the imminent release of the first Windows Phone devices, but I'm sure development for WM will continue for quite a while, especially on xda-developers. )
Screenshots (Click for full size)
HTC HD2 skin (left)
Default old Pocket PC skin (right)
Visual Studio Designer
Installation
The archive should be extracted to Program Files\Windows Mobile 6.5.3 DTK\PocketPC\Deviceemulation [Program Files (x86) on 64 bit operating systems]
Changing the emulator skin ist easy: Just click File->Configure...->Display and point the Skin textbox to the newly installed skin xml file.
For changing the Visual Studio Designer please refer to the instructions posted here: Form Factor 800 x 480
Notes
You can rotate the device by clicking the first of the two icons on the upper right hand corner. The other icon lets you reset the emulator.
Skin was tested with Windows Mobile 6.5.3 Developer Tool Kit and Visual Studio 2008 Professional Edition.
Known Issues
The hardware "Home" Button on the device does not always function as expected. According to this posting the hardware "Home" button is mapped to the Windows key (Smartphone Device Emulator table). However, when using the Pocket PC Device Emulator, the Windows key opens up the start menu, that's just how my emulator behaves. I couldn't figure out the key code for the hardware Home key - so if anyone knows the code, please send me a message.
I would like to thank:
splinter98 for his HTC HD2 MyMobiler skin (that's where I got the HD2 image from)
Version History
v1.0 - Initial Release
Download
Pocket_PC_Phone_WVGA_HTC_HD2-v1.0.zip
Have fun with it and let me know what you think.
Hey Freedee,
well done!! It looks realy good.
Greetings
It looks very cool, but just a quick question. Where did you get the Eiffel Tower wall?
its very good tnx man
phatestcat said:
It looks very cool, but just a quick question. Where did you get the Eiffel Tower wall?
Click to expand...
Click to collapse
The theme is called "Rock and Republic black" and is already installed when using the latest Emulator image (Build 23090).
You can check if your device has it installed by going to Start Menu -> Settings -> Home -> Appearance
You're Welcome!
FreeDee said:
I would like to thank:
splinter98 for his HTC HD2 MyMobiler skin (that's where I got the HD2 image from)
Click to expand...
Click to collapse
I thought that image looked like mine... (you can tell by the corners!) Glad you found the image useful - would try yours out if I developed apps using Visual Studio Designer but if I ever start I will be sure to check it out!
Looks good. should be better than what i had to do which was manually adjust the old look which sucked.
Simply Exxellent ! Thanks !
Thank's a lot for you work.
It's wonderful ...
how to change the resolution of this skin cause on my laptop with screen size 1440x900 this skin is quite... big ' but standard Windows Mobile 6 Professional skin looks normal... Or there is maybe something messed in my VS config. If yes, then how to fix this ?
Because its WVGA the height of it is 800 therefore including the window around the skin would probably be more than 900 (your screen height) and not fit on the screen properly..
Thanks! I was looking for this.

Categories

Resources