Jump to content
xisto Community

shiv

Members
  • Content Count

    48
  • Joined

  • Last visited

Posts posted by shiv


  1. PC World has been snubbed by Advertising Standards Authority (ASA) for a TV advt that went on.."A huge 40GB hard drive, great for watching DVDs, movies... It's our lowest ever priced laptop. You'll find it hard to beat even on the internet, and I guarantee they won't be in stock for much longer at this price...".

    Viewers had issues with th advt with intresting complaints like is a 40GB hard disk not a standard but exceptional for laptops?..what's so huge about it?! Other had complaints that the laptop was not available in the shops while the advt was still playing, so PC world wasted their time!

    read the full story for a few laughs


  2. The "Aero" look for Windows Vista will be available only for users with genuine copies of the windows os..users need to go through the genuine copy test online to acquire the aero look. "Aero" includes translucent windows, animated flipping between open programs, and icons that show thumbnails of opened files.

    This was stated in "Windows Vista Guide" a document that was briefly posted in its website and then pulled by Microsoft for whatever reason.

    Windows Genuine Advantage (WGA)- Microsoft's anti-piracy program checks for genuine Windows running in the user's PC so for was used for validating use of Microsoft's Download Center and for security updates from Windows Update security patch service. Microsoft is now extending the strategy to even acquire the aero look unique to Vista which I would say is a part of the os..very soon Microsoft would want us to download the whole OS after entering a 'ticket'?!


    full story


  3. one of the most thought provoking pieces i read in a long time..kuddos cinthia. as for my opinion on this issue i am certainly against it..even if the situation at hand in a particular case makes killing and putting an unnatural end - going against nature - seems merciful. but we may just be robbing off the person the chance to make it his last death i.e. his last life on earth, out of out ignorance. my Hindu belief says the sufferings we undergo are to eliminate the bag of 'samaskaras' or impressions(out of feelings/actions both good and bad..not just sins as in popular belief) that we have accumulated in our various lives(previous births) and we are born again and again untill we have no samaskara at the moment of a death. which implies each life is a chance to refine ourselves better ourselves to get 'liberated' - and going through pain is an essential part of it. we go through as much pain as samaskaras we have. so if a person is dying a horribly painful death - it may be nature's way or even 'gift' to him to 'exhaust' all his samaskaras before he breathes his last. we in out 'mercy' might just be ruining the point of his own life..in which case i just cant think of anything more unmerciful...dragging a fellow back to earth to come and suffer again by not letting him reach the brighter world or god whatever you call it. beliefs and faiths may vary...but the general principle should always be- DONT MESS WITH NATURE. simplay because we ourselves dont know why we are born , what are trying to 'live' inside a world and family we were 'put into'. we dont choose what we were given , we dont know why we were made to be what we are and not anyother way..each of us are in a journey in search of meaning of life - we are left here like someone put into a forest blindfolded. in such a scenario, with very little understanding , its simply utterly wrong to kill another person- when we simply dont know what he is going through and why he is going through it. pain as it may be in the physical level - quite simply - what if he is realising god or the truth or enlightenment - whatever you want to call it - in those last moments of unbearable pain and we intrude and pull the plug! merciless!


  4. When I was in school I got used to typing fast without ever looking at the screen untill I complete typing the full stuff from the resource material placed by the keyboard, so everytime while I type in the school labs I always got those baffled 'stares'. I am not sure how fast I am but I know I type faster than most people.Of late with not much typing to do, I have got slower and also errors have started to creep in. Added to it is that nowadays you are more used to the sms way of typing, so whenever you are typing in formal english as this forum requires....sheess..I am getting tired! :lol:


  5. First logo: Very good design, concept and idea. But, :lol: you could change that letter to message folder or something, you know, something that looks more like letter... Other than that, looks pretty ok to me. Concept idea is gread, and colors are lovely.
    Second logo: now here is a bit problem, I would drop that shadow out, i'ts kinda ugly there, and for sure I would change that yellow color onto something else (darker), as that, change also bottom line color ("catch friends!") - it's ugly color, and there is soo much more better colors. Also followed by this color changes you could change also that net color, from yellow to something gray/white maybe... And that red butterfly should be a bit more smothened, has some rough edges there...

    A word of advice: Try to use some vector piece of software for making logos. For eq.: Adobe Illustrator, Macromedia FreeHand, CorelDraw. When you complete your logo, it would be easier to put it in Photoshop or some other image program, and than do some additional editing and put it to web. The reason people do logos this way, is because, sooner or later, there will be a need for larger logo usage (billboards, postcards, flyers, memos, t-shirts.. or whatever) and this logo done in photoshop will be too small for printing usage... :lol:


    thanks a lot final design....your review very imformative and helpful. i sure learnt a lot from what you have said.

    thanks pyost, organicbmx and samya too....all of you have pointed out the same thing which shows something glaringly wrong with the second one.

    thanks for helping me to improve guys!


    cheers!

    shiv

  6. I am an engineering student and this is a project I am working on now. I conceived the idea a couple of years ago and the project is finally getting some headway now. My paper has received some very encouraging responses from international conferences and is pending for publication in IEE. I am happy to share it here, and I will try to give the basic idea in the simplest way possible, keeping out technical overtures.Here we go..With the world exhausting its current reserve of fossil fuels at an astronomical speed at one hand, but growing even more energy hungry at the other hand..we earthlings as a civilisation have to soon look for alternative sources of energy.Nuclear power as we all know is a double edged sword. The If's and Buts's are simply too scary.The best option is to develop natural renewable sources of energy and our safe bet is to tap into the sun.But Solar power technology has its big limitations today in terms of productivity. Two main limiting factors are : 1. Takes a long long time to charge up solar cells. 2. The output power is very low. The amount of power producing capability is still very low. So as you can see these two inter-twined reasons result in low effectiveness and productivity.One magical bullet that can hit the both the targets at a single shot is what I call SOLASER- to convert Solar Rays to LASER beams before feeding into the solar cells. As you may all know - LASER is coherent, monochromatic, and directional..high power LASER beams can 'Zap' you in a puff! Testing by feeding LASER into Solar Cells , productivity improved leaps and bounds...it reaches a new level of capability. It gives us just the power we want!But converting solar rays to LASER is the catch. As you may know LASER doesnot occur naturally. It is not natural light. It is created artificially by stimulated emission. My project tries to achieve just that through an indegenously developed system. Its not perfected yet..I dont get out true LASER..but its as close as we can get. You may be bemused because its embedded in our public consciousness that we can afterall 'concentrate' solar rays quite easliy by using a convex lens and burn up a paper. Well that's exactly what the latest solar cells do..the solar cells have a plate of convex lens attached on its top , to concentrate the rays better. The increase in productivity through this has been considerable - but does not give us the 'power' we seek. Another exciting avenue for future of energy is Fuel Cells. But fuel cells too are plagued by limitations very similar to Solar power. Same goes with Wind power.True LASER from Solar light is a far call off. But SOLASER might just be the future :lol:.Pardon me for sounding over ambitious..but i guess one got to be so to make it through.Cheers!Shiv


  7. a couple of days back i did just that..tune up my system and im happy my system is feeeling younger and brisk now!

    of all the articles i heaved through in the net to find ways to tune up my system, i got to credit to a set of three articles that helped me achieve it. i would term these as the wholesome and complete guide to tune up xp. click here to read 10 simple ways to speed up windows xp, 10 intermediate ways to speed up windows, and more ways to speed up windows xp.

    steps i felt really made a happy difference are:



    1. disabling indexing services.

    2. speedup folder browsing by disabling "Automatically search for network folders and printers". a subtle but visible change.

    3. installing cache man to improve memory usage. now here..i have used every damn ram booster softwares out there...this one definitely stands out and simply the best i have used so far. two thuumbs up for this one! my system has never felt so good and stable. i can 'feel' it breathing easier! :lol:

    4. installing boot vis to improve boot times. my laptop DEFINITELY boots up faster now.

    5. installing tcp/ip optimizer. again...my interner browsing and downloading speed is DEFINITELY faster.


    6. disabling unnecessary serivices at startup..lesser frustrating wait watching your system wake up littlle by little.

    7. installing page defrag..its cool in that it automatically defrags my page file at startup...in just 3 seconds.

    8. speedup folder access by disabling "last access update". another nice subtle but visible difference.

    9. installing clear mem.. now i can sit comfortable in the knowledge i have this power i can always use as a last weapon to get back my freezing system back to life.

    10. and this is one that pleased me most...improving shutdown speed by the tweak suggested in 'more ways to speed up xp'. my system DEFINITELY goes to sleep in a zip now. used to be one of those things that always get on my nerves...when my laptop takes its own sweet time to go off while i have to wait to close it and put it in the case before i can - move and get going. thank god for this! :lol:


    cheers!

    shiv


  8. "gpedit.msc" didnt exist in my home edition xp.

    but a couple of days back i installed this great piece of software tcp optimizer and i just chose the 'optimal settings' option in it...and i tell you the difference was telling! my internet download and browsing speed improved considerably.

    it basically increases the number of tcp/ip connections that can be established with a server we are communicating with. as you may know, microsoft in its service pack 2 for xp , though as great it was a service pack, decided to reduce and limit the number of tcp/ip connections to increase stability.

    by using this tweak you can be sure you squeeze out every inch of your bandwidth for maximum speed. downloaddownload it now if you dont have it yet!


    cheers!

    shiv


  9. are you another frustrated hapless webmaster with your mails getting lost in the reciever's bulk folder?

    for me this is the biggest headache now. and if your site like mine depends on emailing as a basic functionality of existence..you are simply doomed. writing to the email providers only fall on deaf ears. all your hard work in conceiving and creating the site and getting it up and running and then getting visitors to it - all get reduced to nothing in a second's methodical madness of a heartless bot deciding your mail as spam. even mails from this forum of ours end up in bulk folder in my yahoo mail.

    i tried to look up for ways to avoid it, on what we can possibly do to get to the inbox as we ought to and not land up buried along legimate spam..i didnt come across a golden solution, but this one seemed to offer some light.

    hope that helps.

    i would greatly appreciate other good suggestions and advice on fighting against being labelled spammer.

    thanks.


    shiv


  10. yahoo and aol are starting on a new controversial system that will give only 'paid' senders, the electronic equivalent of buying postage stamps, for guarantee of safe delivery of emails sent...or else your email will end up burried as spam in 'bulk' folder or even be undelivered.


    click here if you dont want to login.

    the idea seems to be control spam...but this is ridiculous because our normal personal mails may end up in bulk because we dont pay! so what will our inbox become the paid 'official' spam box while we will have to fish in for personal mails in the bulk box among other unpaid spams? absurd!

    looks like yahoo and aol, internet's two highly preferred free email service providers as of today, are using the spam issue to their advantage to fill in their coffors out of their sheer - greediness.


    hope this means the beginning end of the monopoly of these two, and not that of free email. hope gmail and other email providers dont follow suit, to cash in on the user's helplessness.

    makes me wonder who is destroying email...the spammers or the email service providers?



    shiv


  11. Well, if you know C++ already, you should get a more game-specific book, explaining stuff about game loops, game logic, that sort of thing.

     

    If you don't, I'd suggest you first learn C++ without thinking in games already, because there's much more to it. Learn the basics and practice a lot to get the hang of the language.

     

    When you feel comfortable, grab the SDL API (http://www.libsdl.org/), which allows you to easily create high-quality 2D games, complete with keyboard, mouse and joystick events, and sound as well, all in a few commands. To learn how to use the API, I'd suggest Lazy Foo's tutorials (http://ww12.lazyfooproductions.com/). Great way to learn all sorts of things! :)

     

    Just remember that you can't make a game in C++ unless you know to use the language, so start working on that! :lol:

     

     

    thanks for your reply kazdoran :lol:. im quite well versed with C++..what i am looking for is specific c++ game developing books to get my shot at gaming started! i will try out the SDL API you suggested :P .

     

    would greatly anymore specific suggestions on where and how to start. thanks!

     

     

    cheerz!

     

    shiv


  12. there are lot of them and happily many of them produce good returns. i have used 4 so far and i would say google is what impressed me most....but it may also be because its easy to trust google :lol: but one flip side of google's ironically is they dont look that cool :lol: ofcourse looks doesnt matter much here i know, but if it looked better it wont look sore in your other wise cool looking page. but then who cares as long as it brings money!i dont like those annoying pop-ups when i browse and i dont intend to put my visitors through that annoyance which i want for myself, no matter how much money it would bring me.cheerz!shiv


  13. depends.....if i get a template with the effect and looks i conceived then i would readily use it, or take it modify it a little to suit or enhance it to what i want.if i none of the ready made templates capture what i imagined....time to sit down and put on your designing cap then! :lol:i dont agree that it depends on the skill of the person concerned....even if you are highly skilled but what you need is already excellently done and ready for you to use, then why not?!cheerz!shiv


  14. i downloaded IE7 Beta and have been using it for two weeks now...does anyone know if i uninstall this crap will i get back IE6? or will IE be wiped out completely?i am baffled how come the biggy microsoft can come out with such a poor update full of hacks, bugs, crashes and quick fixes....seems like the patented microsoft way nowadays.why do they release (even if its Beta) without getting it to some usable shape? they famously go public with a bag of bugs...?!looks like its best you always wait out any microsoft product with utmost caution..you can trust them to do work and rework on the same thing over and over again and yet never fix all the bugs that crop up. (they gave up on IE6 finally and said they wont be fixing it! ) so i was xpecting atleast IE7 would be better and they would have done some good work to undo the embarrasment with IE6...but hats off to microsoft..they are never gonna change..lol!but so to say hear even firefox isnt perfect..heard it has some big error in content area calculation for table border or something like that which i didnt fully understand. but guess anycase it would be miles better that IE7.what about Opera 7 anybody? it used to be a great product and i have always felt mozilla borrowed heavily from Opera...but i dont see much of it nowadays...what is it like now?anyways i have now come to accept one thing....NEVER get excited about any new microsoft update or product... let vista take its own sweet time to grow as stable os...im keeping away from it even if it is released late this year or next year. i would prefer a stable os than see windows prettier.has anybody had a good time using IE7? let me know!cheerz!shiv


  15. for me brian lara cricket is most addictive...i play it all the time , and i have been playing it for years.i guess each of us will have our own unique game we are addicted to! cos it depends a lot on our personality and our likes. whatever game resonates closely with these two inside us...we get addicted to it. well this is my view.shiv


  16. hai i just came across this article and i was literally shocked deaf....because i am one of those mp3 player buffs with that lil thing always hanging around my neck, ear phones plugged and ALWAYS listening to music - loudly.

     

    its true what they article says...unlike the earlier walkmans or cdmans we had, which gave unhearable bad music sound at higher volumes..mp3 players always sound nice..even at the maximum volume. so as a result, we end up listening to music as loud as we desire into our soundbox , always.

     

    whats scary is that they say we wont know our hearing is being impaired by this habit...untill it is permanantly damaged...omg!

     

    they have given a few preventive steps we can - we should follow...pls check it out and play music safe :lol:

     

     

    also pass around the word...save your friends' hearing.

     

     

     

    cheerz!

     

    shiv


  17. norton eats up unacceptable amount of ram. and if you are using xp, which by itself takes a lot of your ram, unless you have half a gb ram your system will end up cloying most times.dont even think of panda....may be good while you use...but once you install..that's it..you can NEVER uninstall.pc-cillin doesnt have frequent updates of virus definitions and its working does less than desired.by far mcafee has been easily the best....great interface, always the first to release in new anti-virus definitions...its virus scan is comprehensive and coupled with active shield your system is always safe. their personal firewall plus is also superb..easily configurable and very effective. you can even trace any attacks on your computer to its orgin location in the world map. added to it all...it occipies relatively less ram when compared with norton, the only other possible contendor in effectiveness. overall i would give mcafee's security centre two thumbs up! :ocheerz!shiv


  18. I'm not sure if this is the right place for posting this, but I'll give it a shot anyway.I have a problem with copycats. There are a lot of people who steal my and my friends stuff. Well I don't really care myself, but it really bothers some of my friends. They all disalbe right-clicking, however people still can copy their stuff using Print Screen, so I'm just interested, is there any script/code or anything that can disable print screen? Is it possible?
    Thanks in advance.


    you can use html guardian's image guardian feature. infact its the only option as far as i know.

    you just need to check the 'Disable Clipboard & Print Screen' box. this will disable the visitor' clipboard...so making a copy of the image becomes impossible.

    there are lot of other features u can check out in html guardian...believe me its total guardian.

    best of all u can download it for free :o


    cheerz!

    shiv

  19. hai

     

    here is a cool collection of cursor follower scripts i put together from different sites. each of them are really exciting!

     

    bet your visitors will be highly impressed and keep coming back just to play around with it :o

     

    1. clock that follows your mouse

     

    that popular clock. everytime you look at it...has it ever failed to amaze? the intelligence of the programmer behind it too amazes me everytime. just cant think of how he first even conceived this as possible..not to mention of creating it. hats off to the man!

     

    this will rank as one of my all time favourites.

     

    ok here's the script:

    <script language="JavaScript"><!--dCol='000000';//date colour.fCol='000000';//face colour.sCol='000000';//seconds colour.mCol='000000';//minutes colour.hCol='000000';//hours colour.ClockHeight=40;ClockWidth=40;ClockFromMouseY=0;ClockFromMouseX=100;// Alter nothing below! Alignments will be lost!d=new Array("SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY");m=new Array("JANUARY","FEBRUARY","MARCH","APRIL","MAY","JUNE","JULY","AUGUST","SEPTEMBER","OCTOBER","NOVEMBER","DECEMBER");date=new Date();day=date.getDate();year=date.getYear();if (year < 2000) year=year+1900;TodaysDate=" "+d[date.getDay()]+" "+day+" "+m[date.getMonth()]+" "+year;D=TodaysDate.split('');H='...';H=H.split('');M='....';M=M.split('');S='.....';S=S.split('');Face='1 2 3 4 5 6 7 8 9 10 11 12';font='Arial';size=1;speed=0.5;ns=(document.layers);ie=(document.all);Face=Face.split(' ');n=Face.length;a=size*10;ymouse=0;xmouse=0;scrll=0;props="<font face="+font+" size="+size+" color="+fCol+"><B>";props2="<font face="+font+" size="+size+" color="+dCol+"><B>";Split=360/n;Dsplit=360/D.length;HandHeight=ClockHeight/4.5HandWidth=ClockWidth/4.5HandY=-7;HandX=-2.5;scrll=0;step=0.06;currStep=0;y=new Array();x=new Array();Y=new Array();X=new Array();for (i=0; i < n; i++){y[i]=0;x[i]=0;Y[i]=0;X[i]=0}Dy=new Array();Dx=new Array();DY=new Array();DX=new Array();for (i=0; i < D.length; i++){Dy[i]=0;Dx[i]=0;DY[i]=0;DX[i]=0}if (ns){for (i=0; i < D.length; i++)document.write('<layer name="nsDate'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props2+D[i]+'</font></center></layer>');for (i=0; i < n; i++)document.write('<layer name="nsFace'+i+'" top=0 left=0 height='+a+' width='+a+'><center>'+props+Face[i]+'</font></center></layer>');for (i=0; i < S.length; i++)document.write('<layer name=nsSeconds'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+sCol+'><center><b>'+S[i]+'</b></center></font></layer>');for (i=0; i < M.length; i++)document.write('<layer name=nsMinutes'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+mCol+'><center><b>'+M[i]+'</b></center></font></layer>');for (i=0; i < H.length; i++)document.write('<layer name=nsHours'+i+' top=0 left=0 width=15 height=15><font face=Arial size=3 color='+hCol+'><center><b>'+H[i]+'</b></center></font></layer>');}if (ie){document.write('<div id="Od" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < D.length; i++)document.write('<div id="ieDate" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center">'+props2+D[i]+'</B></font></div>');document.write('</div></div>');document.write('<div id="Of" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < n; i++)document.write('<div id="ieFace" style="position:absolute;top:0px;left:0;height:'+a+';width:'+a+';text-align:center">'+props+Face[i]+'</B></font></div>');document.write('</div></div>');document.write('<div id="Oh" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < H.length; i++)document.write('<div id="ieHours" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+hCol+';text-align:center;font-weight:bold">'+H[i]+'</div>');document.write('</div></div>');document.write('<div id="Om" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < M.length; i++)document.write('<div id="ieMinutes" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+mCol+';text-align:center;font-weight:bold">'+M[i]+'</div>');document.write('</div></div>')document.write('<div id="Os" style="position:absolute;top:0px;left:0px"><div style="position:relative">');for (i=0; i < S.length; i++)document.write('<div id="ieSeconds" style="position:absolute;width:16px;height:16px;font-family:Arial;font-size:16px;color:'+sCol+';text-align:center;font-weight:bold">'+S[i]+'</div>');document.write('</div></div>')}(ns)?window.captureEvents(Event.MOUSEMOVE):0;function Mouse(evnt){ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;}(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;function ClockAndAssign(){time = new Date ();secs = time.getSeconds();sec = -1.57 + Math.PI * secs/30;mins = time.getMinutes();min = -1.57 + Math.PI * mins/30;hr = time.getHours();hrs = -1.575 + Math.PI * hr/6+Math.PI*parseInt(time.getMinutes())/360;if (ie){Od.style.top=window.document.body.scrollTop;Of.style.top=window.document.body.scrollTop;Oh.style.top=window.document.body.scrollTop;Om.style.top=window.document.body.scrollTop;Os.style.top=window.document.body.scrollTop;}for (i=0; i < n; i++){var F=(ns)?document.layers['nsFace'+i]:ieFace[i].style;F.top=y[i] + ClockHeight*Math.sin(-1.0471 + i*Split*Math.PI/180)+scrll;F.left=x[i] + ClockWidth*Math.cos(-1.0471 + i*Split*Math.PI/180);}for (i=0; i < H.length; i++){var HL=(ns)?document.layers['nsHours'+i]:ieHours[i].style;HL.top=y[i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll;HL.left=x[i]+HandX+(i*HandWidth)*Math.cos(hrs);}for (i=0; i < M.length; i++){var ML=(ns)?document.layers['nsMinutes'+i]:ieMinutes[i].style;ML.top=y[i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;ML.left=x[i]+HandX+(i*HandWidth)*Math.cos(min);}for (i=0; i < S.length; i++){var SL=(ns)?document.layers['nsSeconds'+i]:ieSeconds[i].style;SL.top=y[i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll;SL.left=x[i]+HandX+(i*HandWidth)*Math.cos(sec);}for (i=0; i < D.length; i++){var DL=(ns)?document.layers['nsDate'+i]:ieDate[i].style;DL.top=Dy[i] + ClockHeight*1.5*Math.sin(currStep+i*Dsplit*Math.PI/180)+scrll;DL.left=Dx[i] + ClockWidth*1.5*Math.cos(currStep+i*Dsplit*Math.PI/180);}currStep-=step;}function Delay(){scrll=(ns)?window.pageYOffset:0;Dy[0]=Math.round(DY[0]+=((ymouse)-DY[0])*speed);Dx[0]=Math.round(DX[0]+=((xmouse)-DX[0])*speed);for (i=1; i < D.length; i++){Dy[i]=Math.round(DY[i]+=(Dy[i-1]-DY[i])*speed);Dx[i]=Math.round(DX[i]+=(Dx[i-1]-DX[i])*speed);}y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);for (i=1; i < n; i++) {y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);}ClockAndAssign();setTimeout('Delay()',40);}if (ns||ie)window.onload=Delay;// --></script>

     

    2.eyes

     

    this will keep ur visitor occupied for long...guaranteed!

     

    these eyes keep moving along with your cursor and keeps staring at it...trust me...its absorbing! kind of even addictive i would say!

     

    download the eyes.zip file attached to use the script given below:

     

     

    <!-- ONE STEP TO INSTALL EYES:  1.  Copy the coding into the BODY of your HTML document  --><!-- STEP ONE: Paste this code into the BODY of your HTML document  --><BODY><script LANGUAGE="JavaScript1.2"><!-- Original:  demigod@psxexchange.com --><!-- Web Site:  http://www.psxexchange.com/ --><!-- This script and many more are available free online at --><!-- The JavaScript Source!! http://javascript.internet.com --><!-- Beginvar brOK = false, mie = false;if (document.layers || document.all) brOK = true;if (document.all) mie = true;var ex = 0, ey = 0;var ae, le, re, x0, y0, tid, realx, realy;function navMove(e) {ex = e.pageX; ey = e.pageY;moveeye()return routeEvent(e);}function mieMove() {ex = document.body.scrollLeft + event.x;ey = document.body.scrollTop + event.y;moveeye();}function moveeye() {dy = ey - y0 - 20;dx1 = ex - x0 - 20;dx2 = ex - x0 - 60;r = Math.sqrt(dx1 * dx1 + dy * dy);if (r < 20) r = 20;dx1 = dx1 * 10 / r + x0 + 10;dy1 = dy * 10 / r + y0 + 10;r = Math.sqrt(dx2 * dx2 + dy * dy);if (r < 20) r = 20;dx2 = dx2 * 10 / r + x0 + 50;ae.left = x0;ae.top = y0;le.left = dx1;le.top = dy1;re.left = dx2;re.top = dy1;}function setHandlers() {if (!mie) {y0 = document.eyeballs.top;x0 = document.eyeballs.left;ae = document.eyeballs;le = document.lefteye;   re = document.righteye;   window.captureEvents(Event.MOUSEMOVE);window.onMouseMove = navMove;} else {y0 = document.all.eyeballs.style.pixelTop;x0 = document.all.eyeballs.style.pixelLeft;ae = document.all.eyeballs.style;le = document.all.lefteye.style;re = document.all.righteye.style;window.document.onmousemove = mieMove;}realx = x0 + 0.1;realy = y0 + 0.1;moveall();}function moveall() {rx = realx + 40;ry = realy + 40;rx += (ex - rx) * 0.1;ry += (ey - ry) * 0.1;realx = rx - 40;realy = ry - 40;x0 = Math.round(realx);y0 = Math.round(realy);moveeye();tid = setTimeout('moveall()', 100);}function placeeyes(x, y) {if (brOK) {ex = x + 40;ey = y + 40;s = '<DIV ID ="dummy" STYLE="position:absolute; ' +'top:'+y+'; left:'+x+'; width:10; height:10;"> </DIV>';s += '<DIV ID="eyeballs" STYLE="position:absolute; ' +'top:'+y+'; left:'+x+'; width:80; height:40;"><IMG SRC=' +'"whites.gif" border=0></DIV>';s += '<DIV ID="lefteye" STYLE="position:absolute; ' + 'top:'+(y+10)+'; left:'+(x+10)+'; width:20; height:20;">' +'<IMG SRC="pupil.gif" border=0></DIV>';s += '<DIV ID="righteye" STYLE="position:absolute; ' +'top:'+(y+10)+'; left:'+(x+50)+'; width:20; height:20;">' +'<IMG SRC="pupil.gif" border=0></DIV>';document.writeln(s);    }}function clearEyes()  {if (tid) clearTimeout(tid);}placeeyes(200, 100);window.onload = setHandlers;window.onunload = clearEyes;//  End --></script><p><center><font face="arial, helvetica" size="-2">Free JavaScripts provided<br>by <a href="http://javascriptsource.com">The JavaScript Source</a></font></center><p><!-- Script Size:  2.83 KB -->

     

    3.elastic band trial

     

     

    u got to see this to believe this...seriously mind blowing!

     

    a ball on a string bounces back and forth from your cursor! very animated!

     

    you feel like playing with it non-stop!

     

    download the superball.gif attached to use the script.

     

    here's the script:

     

    //Elastic band trail//By Elastic_Ouille_script@GHindoute.net//Thanks to MP1515 <MP1515@aramette.net> for all Mathematical model//TOS for script: http://forums.xisto.com/no_longer_exists/ 
    For this script and more, visit http://forums.xisto.com/no_longer_exists/ stringcolor="black" //SPECIFY STRING COLORvar ballsrc="superball.gif" //SPECIFY URL TO BALL IMAGE///No editing required below this line//////////////////////////if (document.all&&window.print){document.write('<IMG id=Om style="LEFT: -10px; POSITION: absolute" src="'+ballsrc+'">')ddx=0;ddy=0;PX=0;PY=0;xm=0;ym=0OmW=Om.width/2;OmH=Om.height/2}function Ouille(){ x=Math.round(PX+=(ddx+=((xm-PX-ddx)*3)/100)) y=Math.round(PY+=(ddy+=((ym-PY-ddy)*3-300)/100)) Om.style.left=x-OmW Om.style.top=y-OmH elastoc.to=x+","+y //elastoc.strokecolor="RGB("+x+","+(2*y)+",0)" elastoc.strokecolor=stringcolor setTimeout("Ouille()",1)   }function momouse(){ xm=window.event.x+5 ym=window.event.y+document.body.scrollTop+15 elastoc.from=xm+","+ym}if(document.all&&window.print){code="<v:line id=elastoc style='LEFT:0;POSITION:absolute;TOP:0' strokeweight='1.5pt'></v:line>"} else {code="<v:group style='LEFT:-10;WIDTH:100pt;POSITION:absolute;TOP:0;HEIGHT:100pt' coordsize='21600,21600'><v:line id=elastoc style='LEFT:0;WIDTH:100pt;POSITION:absolute;TOP:0;HEIGHT:100pt' strokeweight='1.5pt'></v:line></v:group>"}if(document.all&&window.print){document.body.insertAdjacentHTML("afterBegin",code)document.onmousemove=momouseOuille()}</SCRIPT></HEAD><BODY BGCOLOR="#FFFFFF"></BODY> </HTML>

     

     

     

     

    4.mouse orbit

     

     

    this is fascinating! really!

     

    dots of different impressive colours orbit around your cursor like planets going around the sun.....completely fascinating.

     

    here's the script:

     

     

    <!-- TWO STEPS TO INSTALL MOUSE ORBIT:  1.  Copy the coding into the HEAD of your HTML document  2.  Add the last code into the BODY of your HTML document  --><!-- STEP ONE: Paste this code into the HEAD of your HTML document  --><HEAD><LAYER NAME="a0" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#ffffff" CLIP="0,0,1,1"></LAYER><LAYER NAME="a1" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#fff000" CLIP="0,0,1,1"></LAYER><LAYER NAME="a2" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#ffa000" CLIP="0,0,1,1"></LAYER><LAYER NAME="a3" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#ff00ff" CLIP="0,0,1,1"></LAYER><LAYER NAME="a4" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#00ff00" CLIP="0,0,1,1"></LAYER><LAYER NAME="a5" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#FF00FF" CLIP="0,0,1,1"></LAYER><LAYER NAME="a6" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#FF0000" CLIP="0,0,1,1"></LAYER><LAYER NAME="a7" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#ffffff" CLIP="0,0,2,2"></LAYER><LAYER NAME="a8" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#fff000" CLIP="0,0,2,2"></LAYER><LAYER NAME="a9" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#ffa000" CLIP="0,0,2,2"></LAYER><LAYER NAME="a10" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#ff00ff" CLIP="0,0,2,2"></LAYER><LAYER NAME="a11" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#00ff00" CLIP="0,0,2,2"></LAYER><LAYER NAME="a12" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#0000ff" CLIP="0,0,2,2"></LAYER><LAYER NAME="a13" LEFT=10 TOP=10 VISIBILITY=SHOW BGCOLOR="#FF0000" CLIP="0,0,3,3"></LAYER><div id="starsDiv" style="position:absolute;top:0px;left:0px"><div style="position:relative;width:1px;height:1px;background:#ffffff;font-size:1px;visibility:visible"></div><div style="position:relative;width:1px;height:1px;background:#fff000;font-size:1px;visibility:visible"></div><div style="position:relative;width:1px;height:1px;background:#ffa000;font-size:1px;visibility:visible"></div><div style="position:relative;width:1px;height:1px;background:#ff00ff;font-size:1px;visibility:visible"></div><div style="position:relative;width:1px;height:1px;background:#00ff00;font-size:1px;visibility:visible"></div><div style="position:relative;width:1px;height:1px;background:#0000ff;font-size:1px;visibility:visible"></div><div style="position:relative;width:1px;height:1px;background:#FF0000;font-size:1px;visibility:visible"></div><div style="position:relative;width:2px;height:2px;background:#ffffff;font-size:2px;visibility:visible"></div><div style="position:relative;width:2px;height:2px;background:#fff000;font-size:2px;visibility:visible"></div><div style="position:relative;width:2px;height:2px;background:#ffa000;font-size:2px;visibility:visible"></div><div style="position:relative;width:2px;height:2px;background:#ff00ff;font-size:2px;visibility:visible"></div><div style="position:relative;width:2px;height:2px;background:#00ff00;font-size:2px;visibility:visible"></div><div style="position:relative;width:2px;height:2px;background:#0000ff;font-size:2px;visibility:visible"></div><div style="position:relative;width:3px;height:3px;background:#FF0000;font-size:3px;visibility:visible"></div></div></HEAD><!-- STEP TWO: Copy this code into the BODY of your HTML document  --><BODY><script LANGUAGE="JavaScript"><!-- Original:  Kurt Grigg (kurt.grigg@virgin.net) --><!-- Web Site:  http://freespace.virgin.net/kurt.grigg --><!-- This script and many more are available free online at --><!-- The JavaScript Source!! http://javascript.internet.com --><!-- Beginvar Clrs = new Array(6);Clrs[0] = 'ff0000';Clrs[1] = '00ff00';Clrs[2] = '000aff';Clrs[3] = 'ff00ff';Clrs[4] = 'fff000';Clrs[5] = 'fffff0';var yBase = 200;var xBase = 200;var step;var currStep = 0;var Xpos = 1;var Ypos = 1;var Xs = 200;var Ys = 400;if (document.layers) {window.captureEvents(Event.MOUSEMOVE);}if (document.all) {function MoveHandler() {Xpos = document.body.scrollLeft+event.x;Ypos = document.body.scrollTop+event.y;}document.onmousemove = MoveHandler;}else if (document.layers) {function xMoveHandler(evnt) {Xpos = evnt.pageX;Ypos = evnt.pageY;}window.onMouseMove = xMoveHandler;}function Comet() {if (document.all) {yBase = window.document.body.offsetHeight / 4;xBase = window.document.body.offsetWidth / 4;}else if (document.layers) {yBase = window.innerHeight / 4;xBase = window.innerWidth / 4;}if (document.all) {for ( i = 0; i < starsDiv.all.length; i++ ) {step = 3;starsDiv.all[i].style.top = Ypos + yBase*Math.cos((currStep + i*4)/12)*Math.cos(0.7+currStep/200);starsDiv.all[i].style.left = Xpos + xBase*Math.sin((currStep + i*3)/10)*Math.sin(8.2+currStep/400);for (ai = 0; ai < Clrs.length; ai++) {var c=Math.round(Math.random()*[ai]);}starsDiv.all[i].style.background = Clrs[c];   }}else if (document.layers) {for ( j = 0; j < 14; j++ ) { //number of NS layers!step = 6;var templayer = "a"+j;document.layers[templayer].top = Ypos + yBase*Math.cos((currStep + j*4)/12)*Math.cos(0.7+currStep/200);document.layers[templayer].left = Xpos + xBase*Math.sin((currStep + j*3)/10)*Math.sin(8.2+currStep/400);for (aj=0; aj < Clrs.length; aj++){ var c=Math.round(Math.random()*[aj]);}document.layers[templayer].bgColor = Clrs[c];    }}currStep += step;setTimeout("Comet()", 5);}Comet();//  End --></script><p><center><font face="arial, helvetica" size="-2">Free JavaScripts provided<br>by <a href="http://javascriptsource.com">The JavaScript Source</a></font></center><p><!-- Script Size:  5.33 KB -->

     

    cheerz!

     

    shiv


  20. thanks for ur reply.

    but in the Xisto form home page, we are being told to goto https://support.xisto.com/; that is what is given there! not https://support.xisto.com/;

    to quote what is gievn there..

    Welcome to Xisto,Ignore the above Hosting Credit System if you are not interested in the Free Web Hosting service offered by our site. If you want to apply for our Premium Free Web Hosting Account, you will require atleast,

    Package 1 ( 20mb w/ 500mb BW): 10 Credits
    Package 2 (150mb w/ 5000mb BW) : 30 Credits
    Hosting credits are collected by posting at the forums. The hosting credits are given after your posts are filtered and depending on its size, you get proportional hosting credits. Once you get the required credits you can post an application for hosting. One of our admins will then approve your application after which you can register an account at https://support.xisto.com/ Do not try to spam and collect Hosting credits. Any methods of spamming will not be tolerated. Your Account will be banned if you are caught spamming. After you get hosting, you will have to maintain your hosting credits by staying active. Remember the amount of posts has no effect on Hosting Credits. We look for Quality rather than Quantity.




    is this a recent change?

    if so how do you handle the above case?

    what if two different people in the forums have the same user names in a forum each?


    shiv


  21. Here is what they wrote on their signup page check it out

     

    http://forums.xisto.com/no_longer_exists/

     

    About Google Page Creator

     

    Want to create an online photo tour of your vacation to Bali? An overview of the South American precipitation cycle for your science class? A shrine to your pet ferret?

     

    Now's your chance. We're testing a new product that makes creating your own web pages as easy as creating a document in a word processor. Google Page Creator is a free tool that lets you create web pages right in your browser and publish them to the web with one click. There's no software to download and no web designer to hire. The pages you create are hosted on Google servers and are available at https://sites.google.com/site/2kndrppdrn/ for the world to see.

     

    At Google, we've found that listening to our users early helps us develop the best possible products. So we've launched Google Page Creator as a Google Labs product, which means you're invited to play with it even though it's not yet fully baked. After you've given Page Creator a try, please do send us your feedback and suggestions. And if you'd like to stay up to date on all the latest Google Page Creator happenings, sign up for our updates mailing list.

     

     

    i tried a few times but everytime the page says they are unable to offer new page creator accounts today and asks you to put your gmail account user name in waiting list to get the page creator account.

     

    this is the annoying problem with google.....limited activity and dead slow developing...look at their gmail....3 years into being you still cant signup from their home page and you got to wait for an invitation from a already gmail user who in turn has to wait for the periodical invitations gmail allots radomly to users from time to time.

     

    their products are nice and fresh ideas i agree...but a little aggresiveness wont harm.

     

    its intresting to see google's new features.....it seems to be intrested in everything else but search!

     

    from being a cult search engine sending out users to wherever they looked to go on net, its now increasingly

    becoming a portal intresting in making users sticking around, that sending them away to other sites as what search engines are supposed to do!

     

    but then who can deny..we all love google and all that google does!

     

     

    cheerz!

     

    shiv


  22. Browser Quaker! SHOCK your visitors! this script shakes the browser like a quake happened! yeah....try this script to believe it! im sure u will be stunned at the effect! a good way to show your visitor that...your website ROCKS!..and literally so ! ! i got this script from Bravenet's webmaster freebrees newsletter. if you haven't known bravenet before..it is a beginner webmaster's friend! you get lot many features for your website hosted freely. and subscribe to their newsletter to get gems like these!

    ok here's the code:

    <script language="JavaScript" type="text/javascript">function init() {setTimeout("shake(3)",1000);setTimeout("this.focus()",4000);setTimeout("shake(3)",4100);}function register(){var isAol = "no";var res = 800;}function shake(n) {if (self.moveBy) {for (i = 10; i > 0; i--) {for (j = n; j > 0; j--) {self.moveBy(0,i);self.moveBy(i,0);self.moveBy(0,-i);self.moveBy(-i,0);}}}}a=275;b=275;r=20;x=1;z=1;function rotate(r) {while (z<=3) { for (var i = 0; i <360; i++) { x = (r * Math.cos((i * Math.PI)/180)) + a; y = (r * Math.sin((i * Math.PI)/180)) + b; window.moveTo(x,y); } z+= 1; } setTimeout("shake(3)",10000); } </script>
    play around with it and make your website rock!

    cheerz!
    shiv

  23. im basically a C++ programmer and into Java only now..and i seem to falling in love with it.
    here are my thoughts on why i think Java seems cooler :o

    i invite people to add on to the list, im sure there are great many things i have missed out..things im yet to be enlightened in Java!


    1. no more of those wierd pointers!

    this pointer thing always seemed to me something gone all wrong..something that lacked better conception.
    thank god i dont have to use * and & alternatively to deal with one same thing. pointers in c and c++ were surely something that made a simple job tough. everyone of us felt it when we first learnt pointers and the feeling never goes away too.


    2. no unnecessary bitfields probs!

    if pointers seemed all wrong..this one seemed senseless! c'mon...no way can it be our prob to worry about wasted bits and pieces! it is the compiler's headache and it has to take care of it on its own. we have enough to worry about developing our programs.


    3. world without multiple inheritence? and it seems smarter!


    i agree i couldn't believe this one at first. all the reading and hearing about how C ++ gave a new dimension to OOP with multiple inheritance kept running at the back of my mind. and it took me a long time to actually accept it and understand the new way. but after having understood it...yes...interfacing seems smarter! this one is definitely the icing on the cake..im amazed how they pulled it off.


    4. no "unsigned" problems!

    wait a minute...did you ever have a negetive int as value for a variable?
    another unnecessary piece of coding.


    5. no 'global' problems!

    oh what a horrid time we had getting variables and functions to work when you declare somewhere but need to use it again somewhere else and in order to reference it you had to look into those global and local declarations...were they all really worth the pain?


    6. no overloading and underloading..lol!

    use an appropriate method name instead...simple, sweet, cute and more importantly - meaningful.


    7. no function pointers!

    when pointers by themselves were ugly then what to call this.

    use the smarter Reflection.

    like:

    Method method = Pet.class.getMethod("getFood", null); // invoke getFood() on object "dog"Object address = method.invoke(dog, null);

    now a'int this simple and cool?


    8. what was 'goto' doing in oop?

    i never seemed to get it from the start...you branch off from C and develop C++ as a structured programming and incorporate 'goto'? good logic.


    9. no comma operator

    a..what? what for?


    Java is Cool!

    cheerz!

    shiv

  24. i dunno if all of u are by now well versed with the new exciting features in visual studio 2005 forms, but for me this article was enlightening. for the benifit of others who wre in the dark like me....

     

    New Features in Visual Studio 2005 Windows Forms

     

    The little voice in my head shouted "Don't do it! Don't do it!" as I contemplated using the worn out cliché "Good things come to those who wait" to describe the experience of designing Windows applications with Visual Studio 2005.

     

    However, that cliché accurately communicates the idea that building Windows Forms applications in Visual Studio 2005 is better, makes you more productive, and is more fun than doing the same task in Visual Studio 2003, not to mention VB6!

     

    Part of what makes working with Windows Forms so exciting these days is Microsoft's renewed emphasis on smart client development. It is no secret that Windows applications provide a richer and better user experience than Web-based applications. Web-based applications have had the upper hand primarily because they are easier to deploy. For years now, IT departments have been willing to sacrifice the user experience in order to take advantage of the deployment advantages offered by Web-based applications.

     

    Microsoft has addressed the Windows application deployment issue with the new ClickOnce technology introduced with Visual Studio 2005. Of course Web-based applications will always have their place on the Internet, but I think the pendulum is about to swing back in favor of developing rich, user-centric, Windows applications for internal corporate applications.

     

    This article touches on some of the new enhancements made to the Visual Studio Integrated Development Environment (IDE), new controls, and new components. I chose to code the samples in Visual Basic and I am sure that will not adversely hamper a C# programmer from learning about the new Windows Form features in Visual Studio 2005.

     

     

    Visual Studio 2005 IDE Features

     

    The Visual Studio IDE and Windows Form teams have been busy adding or improving features that increase your productivity. A reorganized Toolbox will be one of the things you notice when you create your first Visual Studio 2005 Windows Form application. Controls are grouped according to function into categories including Common Controls, Containers, Menus & Toolbars, and Data, to name a few.

     

     

    The new snap lines feature will be the next feature you notice. This feature provides visual confirmation that controls are horizontally or vertically aligned. This will save you time because you will never have to set Left or Top properties or use the Format --> Align menu option to ensure controls are lined up correctly.

     

     

     

    Figure 2. Aligning Controls: Lining up controls is much easier with the new snap lines feature.

    Drop a Textbox control on a form, select it, and you will see a small smart tag arrow in the upper right corner of the control. Clicking this arrow displays the Textbox Tasks dialog box which provides a list of the common operations performed on the control.

     

    could go on and on about additional enhancements made to the Visual Studio development environment and project structure, but I will leave that for another article. For now, I will move on to specific Windows Form enhancements.

     

    Working with Data

    One of the goals for Visual Studio 2005 was to simplify the process of retrieving and binding data to form controls. Two new IDE features have been added-the Data Sources window and the Data Source Configuration Wizard.

     

    Data sources represent the data that you want to work with in your application and are listed in the Data Sources window. As you would expect, your can make data sources from databases, but you can also create them from Web services and business objects. You add data-bound controls to your forms by dragging items from the Data Sources window. Each item in the Data Sources window provides you with a list to select the type of control to create prior to dragging it onto a form.

     

     

    DataGridView

     

    It's no secret that the DataGrid control in Visual Studio 2003 was fairly limited, difficult to customize, tough to extend, and was nearly almost universally shunned in favor or more powerful and flexible third-party controls. Trying to fix the problems in the DataGrid, while keeping it backward compatible, proved to be a nearly impossible task. The Windows Forms team decided to go back to the drawing board and design a completely new and better grid control, the DataGridView control.

     

    ToolStrip Control

    The new ToolStrip class (System.Windows.Forms.ToolStrip) located in the Menus & Toolbars section of the Toolbox, replaces the out-of-date ToolBar class and supports a variety of ToolStrip widgets including the ToolStripButton, ToolStripSplitButton, ToolStripDropDownButton, Button,ToolStripLabel, ToolStripProgressBar, ToolStripSeparator, ToolStripCombobox, and ToolStripTextBox. A ToolStrip appears with a modern, Office-style, flat look and supports Windows XP Themes.

     

     

    You can position the ToolStrip by selecting its Dock property and clicking on the position indicator (see Figure 4). You can add items to a ToolStrip in a variety of ways. Clicking on the "AddToolStrip" button tool located in the ToolStrip will add a ToolStrip button while clicking the down arrow provides the ability to select one of a number of different ToolStrip controls (see Figure 5). Selecting the ToolStrip's smart tag and selecting Edit Items is another technique for adding items to the ToolStrip. The Items Collection Editor (see Figure 6) provides the ability to add new ToolStrip items and/or manage the properties of existing ToolStrip items. Selecting "Insert Standard Itemsâ¦" from the smart tag menu automatically adds standard buttons for document management (New, Open, Save, Print, Cut, Copy, Paste, and Help).

     

    All ToolStrip items derive from the ToolStripItem class and support properties such as Text, Image, ImageAlign, Enabled, and Visible. Unlike the legacy ToolBar control which fired an event at the control level when clicked, each button on a ToolStrip control supports its own Click event.

     

    Private Sub ToolStripButton1_Click( _	  ByVal sender As System.Object, _	  ByVal e As System.EventArgs) _	  Handles ToolStripButton1.Click   	  MessageBox.Show("Click for the Button")   End Sub

    You will not find the legacy ToolBar control in the ToolBox. It, along with controls like the StatusBar (which is replaced by the StatusStrip control), have been left out of the ToolBox; however, if you want to re-add any of the legacy controls, right-click on the ToolBox, select Choose Items, and pick the controls you wanted added from the list.

     

     

    StatusStrip Control

     

    The new StatusStrip class (System.Windows.Forms.StatusStrip) located in the Menus & Toolbars section of the Toolbox derives from the ToolStrip class and replaces the legacy StatusBar class. It supports a variety of ToolStrip items such as ToolStripStatusLabel, ToolStripProgressBar, ToolStripDropDownButton and ToolStripSplitButton. Like the ToolStrip control, it appears with a modern, Office-style, flat look and supports Windows XP Themes . Deriving from the ToolStrip, the StatusStrip shares many of the same features, UI elements, and capabilities as the ToolStrip such as each StatusStrip item supporting its own Click event.

     

     

     

    MenuStrip Control

     

    The new MenuStrip class (System.Windows.Forms.MenuStrip) located in the Menus & Toolbars section of the Toolbox also derives from the ToolStrip class and replaces the legacy MainMenu control. It supports a variety of ToolStripMenu items including ToolStripMenuItem, ToolStripComboBox, and ToolStripTextBox. Each ToolStripMenuItem object supports a number of welcome properties including Image, ToolTipText, and Font manipulation.

     

     

    You add menu items in one of three ways. First, like the legacy MainMenu control, you can create and edit menus manually by typing the prompts directly into the menu. The second approach is to select "Edit Itemsâ¦" from the smart tag task list and then work with the Items Collection Editor (see Figure 8). The third and most efficient approach is to select "Insert Standard Items" from the smart tag task list to automatically populate your menu with a complete menu that includes File, Edit, Tools, and Help items .

     

     

    ContextMenuStrip Control

    The new ContextMenuStrip class (System.Windows.Forms.ContextMenuStrip) located in the "Menus & Toolbars" section of the Toolbox derives from the ToolStripDropDown class and replaces the legacy ContextMenu class. Implementing this class works much the same way as the legacy ContextMenu class worked. You construct a ContextMenuStrip and assign it to the ContextMenuStrip property for a contro. When the user right-clicks on the control, the ContextMenuStrip menu appears.

     

     

    MaskedTextBox Control

    Back in the Visual Basic 6 days, when you wanted to make sure users entered data adhering to a specific format, a phone number for example, you used the MaskedEdit control. Prior versions of Visual Studio .NET were missing this capability and that shortcoming has been addressed in Visual Studio 2005. The new MaskedTextBox class, located on the Common Controls section of the Toolbox, derives from the TextBoxBase class and provides the ability to format user data entry. You can set the Mask property manually or you can select from a list of prepared masks accessible by selecting the "Set Maskâ¦" option from the smart tag task list.

     

     

    You can act on a user's invalid keystroke by reacting to the MaskInputRejected event which fires when the input does not match the corresponding mask character in the input mask.

     

    If you want to annoy the users of your application, set the BeepOnError property to True. This will cause the standard error chime to play with each invalid keystroke. You can take advantage of the MaskCompleted property to determine if the user has completed entering data in the MaskedTextBox. The Text property returns the fully formatted value in the control, (515) 123-1234. The InputText property returns the data in the control without the formatting characters; 5151231234, for example.

     

    WebBrowser Control

    The new WebBrowser control (System.Windows.Forms.WebBrowser) addresses a number of shortcomings related to adding Web browsing support to Windows .NET 1.0 and 1.1 applications. The WebBrowser control, located on the Common Controls section of the Toolbox, is a wrapper for Internet Explorer and supports printing and saving documents as well as controlling user navigation.

     

    Set the URL property on the control to navigate the user to a specific page. Alternatively, you can call the Navigate method and pass the URL and a Boolean parameter that indicates if a new browser window should be launched. The WebBrowser works asynchronously so your application will not have to wait for the page to finish downloading before continuing.

     

    The ReadyState property tells you if the page has completed loading. You can also code a handler to react to the DocumentCompleted event. The Navigating event fires before navigating to a new page and provides the ability to cancel the navigation if certain conditions have not been met. Set the Cancel property of the WebBrowserNavigatingEventArgs object passed to the event handler to True to cancel the navigation.

     

    Private Sub webBrowser1_Navigating( _	  ByVal sender As Object, _	  ByVal e As WebBrowserNavigatingEventArgs) _	  Handles WebBrowser1.Navigating   	  If Now.DayOfWeek = DayOfWeek.Monday Then		 'Yes, MsgBox is supported		 MsgBox("No surfing on Monday!")		 e.Cancel = True	  End If   End Sub

     

    The Navigated event fires when navigation to a new page has occurred and the page has begun to load. At this point you can begin to access the page content through the Document, DocumentText, and DocumentStream properties.

     

    AutoComplete

    The AutoComplete feature has been added to the TextBox and ComboBox controls. It provides users of your application with the ability to select from previously entered values. The values displayed are drawn from the user's recent history of activity. The address bar in Internet Explorer provides a perfect example of this feature in action.

     

    Specifying one of three available values (see Table 1) (Suggest, Append, and SuggestAppend) for the AutoCompleteMode property enables the feature for a control.

     

    Table 1:The AutoCompleteMode property supports three options. AutoCompleteMode

    Description

     

    Append

    Appends the rest of the suggested string to the existing entry. The suggested string appears highlighted.

     

    Suggest

    Displays a drop-down list populated with one or more suggested completion strings. Take note, when working with a ComboBox, the listed values are NOT the values from the Items collection.

     

    SuggestAppend

    Implements both the Suggest and Append options.

     

     

    The AutoCompleteSource property (see Table 2) controls the type of AutoComplete values displayed.

     

    Table 2: Control where the AutoComplete options are pulled from by selecting one of the options for the AutoCompleteSource AutoCompleteSource

    Description

     

    FileSystem

    Displays file paths recently used.

     

    HistoryList

    Displays URLs from the history list in Internet Explorer.

     

    RecentlyUsedList

    Displays the files listed in the "My Recent Documents" list.

     

    AllURL

    Displays the URLs from all sites the user visited recently. The list includes URLs entered manually or linked to from another page.

     

    AllSystemSources

    Displays a complete list of URLs and file paths.

     

    FileSystemDirectories

    Displays directory paths recently used.

     

    CustomSource

    Displays the items added to the AutoCompleteCustomSource collection.

     

     

    SplitContainer Control

    You can think of the SplitContainer control, located on the Containers section of the Toolbox, as the combination of two panels separated by a splitter bar. The user controls the size of each panel by dragging the splitter bar to the left or right. The Orientation property determines if the splitter bar runs top to bottom (Orientation = Vertical) or left to right (Orientation = Horizontal). The vertical orientation creates left and right panels side-by-side, and the horizontal orientation create top and bottom panels, one above the other.

     

     

     

     

    The SplitContainer control provides a number of properties and events to manage it's operation (see Table 3).

     

    Table 3:Control the operation of the SplitContainer control and handle user interaction with these properties and events.

    Properties

    Description

     

    FixedPanel

    Specifies which panel will remain the same size when the control is resized.

     

    IsSplitterFixed

    Specifies if the splitter can be moved.

     

    Orientation

    Specifies if the splitter is arranged vertically or horizontally.

     

    SplitterDistance

    Specifies the distance from the left or upper edge to the splitter bar.

     

    SplitterIncrement

    Specifies the minimum distance that the splitter can be moved.

     

    SplitterWidth

    Specifies the thickness of the splitter.

     

    Events

    Description

     

    SplitterMoving

    Fires when the splitter is moving.

     

    SplitterMoved

    Fires when the splitter has been moved.

     

     

    The Text File Reader form shows the SplitContainer control in action

     

    SystemSounds Class

    The SystemSounds class, located in the System.Media namespace, makes easy work of adding the Windows operating system sounds to your Windows Forms application. When a system event occurs, Windows alerts the user with the sound associated with the event. Since users can choose to associate any sound file with a specific event, in prior versions of .NET it was a challenge to determine and locate the files mapped to the system events. The SystemSounds class remedies this problem.

     

    The SystemSounds class exposes five shared object properties (see Table 4) that correspond to specific operating system events.

     

    Table 4:The SystemSounds class is limited to working with just a few system sounds. Objects

    Description

     

    Asterisk

    Gets the sound associated with the Asterisk system event in the current Windows sound scheme.

     

    Beep

    Gets the sound associated with the Beep system event in the current Windows sound scheme.

     

    Exclamation

    Gets the sound associated with the Exclamation system event in the current Windows sound scheme.

     

    Hand

    Gets the sound associated with the Hand system event in the current Windows sound scheme.

     

    Question

    Gets the sound associated with the Question system event in the current Windows sound scheme.

     

     

    Use the Play method to play the sound file associated with the specified system event.

     

    System.Media.SystemSounds.Beep.Play()   System.Media.SystemSounds.Question.Play()

    SoundPlayer Class

    The SoundPlayer class, located in the System.Media namespace, provides a simple way to play .wav audio content files. Audio .wav files can be loaded from a file path, a URL, a Stream that contains a .wav file, or an embedded resource that contains a .wav file.

     

    The SoundLocation and Stream properties are responsible for the location of the .wav file to be played. The SoundLocation property specifies the file name or URL to load. The Stream property specifies the name of a Stream-based object containing the .wav audio content to load. See Table 5 for properties relating to the SoundPlayer class.

     

    Table 5: Properties supported by the SoundPlayer class.Properties

    Description

     

    IsLoadCompleted

    Returns a Boolean value indicating if the file has been successfully loaded.

     

    LoadTimeout

    Returns or sets the number of milliseconds in which the .wav file must load.

     

    SoundLocation

    Returns or sets the path or URL of the file to load.

     

    Stream

    Returns or sets the Stream object to load.

     

     

    The Load method loads the specified .wav audio content into the control and pauses program execution until the content has loaded completely. Unless the file you are loading is very large, Load should work just fine for you. The LoadAsync method loads the specified .wav audio content on a separate thread and fires the LoadCompleted event when the content has been loaded (see Table 6).

     

    Table 6: Methods supported by the SoundPlayer class.Methods

    Description

     

    Load

    Synchronously loads a .wav file into the class.

     

    LoadAsync

    Asynchronously loads a .wav file from a stream or a Web resource on a new thread.

     

    Play

    Plays the loaded .wav file on a new thread.

     

    PlaySync

    Plays the loaded .wav file on the user interface (UI) thread.

     

    PlayLooping

    Plays and loops the loaded .wav file using a new thread.

     

    Stop

    Stops playback of the loaded audio content.

     

     

    The three methods available to play the loaded audio content are Play, PlayAsync, and PlayLooping. You can load and play audio content .wav files synchronously or asynchronously. Calling the Play method asynchronously plays the audio content on a separate thread so your code can continue executing. PlaySync, on the other hand, will play the audio content synchronously and pause program execution until the playback has completed. PlayLooping works the same as Play except it will continue to loop the audio. Call the Stop method to stop the audio playback.

     

    Dim MySoundPlayer As New System.Media.SoundPlayer   MySoundPlayer.SoundLocation = _	  "C:\Windows\Media\Chord.wav"   MySoundPlayer.Load()   MySoundPlayer.Play()
    BackgroundWorker Component

    Consider the words "multithreaded programming." For some people these words conjure up images of late-night coding sessions hunched over .NET Framework books or sifting through the Help file trying to get a solid grip on how to run multiple tasks on separate execution threads. That's not how I want to spend my nights. I prefer an activity you may have heard of called sleep.

    Fortunately I can get plenty of sleep because of the introduction of the new Background Worker class. The BackgroundWorker component makes it easy for time-consuming operations, the type of operations that can cause your user interface to act as though it's stuck in mud, to run on a separate, dedicated thread. Examples of this type of operation are file downloads, database transactions, connecting to a Web service, or working with large text files.

     

    You can drag a BackgroundWorker component from the Toolbox onto a form or you can create it programmatically. The RunWorkerAsync method begins the execution of the background operation being performed. The RunWorkerSync method fires the DoWork event on a background thread and it is in the handler for this event that you code the operation to take place. If the WorkerReportsProgress property is set to True (see Table 7), the ReportProgress method can be called while the operation is underway. This method raises the ProgressChanged event which is handled on the form to keep the user informed, typically through the use of a progress bar.

     

    Table 7: Use these properties to configure the BackgroundWorker.Properties

    Description

     

    CancellationPending

    Returns a Boolean value indicating whether the application has requested cancellation of an operation.

     

    IsBusy

    Returns a Boolean value indicating whether an asynchronous operation is running.

     

    WorkerReportsProgress

    Returns or sets a Boolean value indicating whether the BackgroundWorker object can report progress updates.

     

    WorkerSupportsCancellation

    Returns or sets a Boolean value indicating whether the BackgroundWorker object supports asynchronous cancellation.

     

     

    If the WorkerSupportsCancellation property is set to True, the CancelAsync method can be called to cancel the background operation. The RunWorkerCompleted event fires when the background operation has completed, has been cancelled, or has raised an exception (see Table 8).

     

    Table 8: The BackgroundWorker supports a number of methods and events.Methods

    Description

     

    CancelAsync

    Cancels a pending background operation.

     

    ReportProgress

    Fires the ProgressChanged event.

     

    RunWorkerAsync

    Begins execution of a background operation.

     

    Events

    Description

     

    DoWork

    Begins the execution of a background process.

     

    ProgressChanged

    Fires when ReportProgress is executed.

     

    RunWorkerCompleted

    Fires when the background operation completes, has been canceled, or has raised an exception.

     

     

    The BackgroundWorker Component Test form uses a BackgroundWorker component to perform a calculation on a separate thread. The "Start Operation" button launches the thread by calling the RunWorkerAsync method, passing in the length of time the thread should wait, simulating a lengthy process. The "Cancel Operation" button calls the CancelAsync method and provides the user with the ability to cancel the operation. The "Operation Busy?" Button calls the IsBusy method and provides the user with the ability to determine if the process is still underway.

     

    The BackgroundWorker1_DoWork sub handles the DoWork event fired when the RunWorkerAsync method is called. Reviewing the BackgroundWorker1_DoWork procedure code in Listing 1, you can see that the ReportProgress method is called inside a processing loop. The BackgroundWorker1_ProgressChanged sub handles the ProgressChanged event raised and updates the progress bar.

     

    Once the DoWork method is complete, the BackgroundWorker1_RunWorkerCompleted sub handles the RunWorkerCompleted event that is fired and the form is updated to reflect the outcome of the operation. See Listing 1 for the complete code listing for the form.

     

    ClickOnce Deployment

    One of the most attractive features of a Web-based application is the ease in which you can deploy and update it. All a user has to do is point their browser at the correct URL and away they go.

     

    With .NET 2.0 comes a new deployment technology called ClickOnce aimed squarely at reducing the number of Web-based intranet applications being developed in favor of developing smart client applications. ClickOnce can create a setup program that can be distributed and installed via traditional measures (a CD), launched over a network, or launched through a Web page. You can also configure ClickOnce applications to automatically check for updates each time the application executes.

     

    I hope this article has given you a taste of some of the new and exciting Windows Forms features that Microsoft has added to Visual Studio 2005. You can learn more about Windows Forms development by reading the Data Binding and ClickOnce articles in this issue. I hope this article has peaked your curiosity and motivated you to investigate what else Visual Studio 2005 has to offer. As always, I welcome your comments and look forward to hearing from you.

     

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.