Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Auto-Moto
Mobilní telefony
Notebooky  |  Tablety
Příslušenství
Wearables  |  Ostatní
Svět hardware  |  Digimanie  |   TV Freak

Ukončení aplikace

crapper_ce4you (117)|27.7.2006 23:48
Zdravím. Tak jsem se rozhodl že se začnu hrabat ve WM5 i z druhé strany. První problém, na který jsem narazil, je neschopnost ukončit aplikaci. Něco jako Unload Me (nějaká praxe s VB6) se nějak nechytá. Díky za nakopnutí.
crapper_ce4you (117)|28.7.2006 00:02
takže stačí hledat :-)
pomohlo: Me.Dispose()

Ale neumím to použít na tlačítku:

Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If (e.KeyCode = System.Windows.Forms.Keys.F1) Then
Me.Dispose()
End If
End Sub

tohle bude asi špatně :-(

Tak už to mám :-) to není tlačítko ale volání pro mainMenu :-)

Ale mám jiný dotaz. Poradí mi někdo jak přečíst a zapsat klíč z registru?
beecher (9270)|28.7.2006 17:46
V .NET CF 2.0/C#:
[CODE]using System;
using Microsoft.WindowsCE.Forms;
using Microsoft.Win32;

RegistryKey _registryKey = Registry.LocalMachine;
_registryKey = _registryKey.OpenSubKey(@"Drivers\Display\GPE", false);
try
{
   _registryKey.GetValue("LogicalPixelsX");
}
catch
{
}
[/CODE]
crapper_ce4you (117)|28.7.2006 18:16
Děkuju za reakci, jsem zapoměl napsat že nejlépe pro Visual Basic. Moc rád bych našel nějaké zdrojáky, jak se v tom člověk hrabe tak hodně pochytá. K mojí smůle se toho pro VB nikde moc nepovaluje. Stejně ale dík, nakonec to půjde :-)
beecher (9270)|30.7.2006 13:47
Doporucuji prechod na C#, min se napisete... ;)
solory (201)|30.7.2006 23:38
Zdravím!

Pokud bude nějaký rychlokurz na C#, rád se přidám... i C++
V Delphi pro Vario nic neudělám, a jak říká kolega, v VB toho sice je dost ale ne pro PPC.
beecher (9270)|31.7.2006 10:27
Rychlokurz pro Delphinare na C#:
Misto Begin a End pouzivejte { a }, misto := pouzijte =, misto Use pouzijte Using... No, a to je asi tak skoro vsechno... :D

Jinak, tohle stacit nebude?
crapper_ce4you (117)|1.8.2006 01:22
Ve VB.NET jsem ty hodnoty z registru přečetl rovnou příkazem Registry.GetValue :-) huráá (Nutno importovat Microsoft.Win32)
topas (28)|1.8.2006 14:14
[QUOTE="crapper"]
pomohlo: Me.Dispose()
[/QUOTE]

Spravnejsi by bylo pouziti

[CODE]Application.Exit();[/CODE]
solory (201)|2.8.2006 09:57
[QUOTE="beecher"]Rychlokurz pro Delphinare na C#:
Misto Begin a End pouzivejte { a }, misto := pouzijte =, misto Use pouzijte Using... No, a to je asi tak skoro vsechno... :D

Jinak, tohle stacit nebude?[/QUOTE]

Zdravím, pokud stačí jen todle, tak je to OK... ale měl jsem hrozné problémy oproti delphi ne s konzolí, ale s klikátkama.

Když jsem v delphi chtěl jednoduchý příklad:

na formuláři mám tlačítko a textbox. při stisknutí tlačítka chchi, aby se v popisku tlačítka zobrazil text z textboxu.

v delphi záležitost na 10 vteřin, v VC++ to bylo něco strašného. registrovat sys. událost stisk tlačítka, jakého tlačítka, zavolat tu funkci co k tlačítku patří, a nakonec ještě šíleně složitá výměna dat mezi texboxem a tlačítkem. K tomuto mí žádná z knížek, co mám doma nepomohla. stará VC++1 jsem došel do ňáké kapitoly kde se mělo někde v menu něco nějak něčím proklikat a popsáno to nebylo, jen obrázek výsledku a já, přiznávám se - TROUBA, na to prostě nedošel :evil: a tím skončilo mé snažení na visual C.

proto se ptám na rychlokurz - jsem natvrdlý
Saman_ce4you (1451)|2.8.2006 10:15
Jo, kap jsi na to, C/C++ (potazmo VC++) je pro programatory a ne klikace.. :D
A vubec to neni tak obtizny, sice to neudelam za 10, ale asi za 20-30s ;)
solory (201)|2.8.2006 11:12
[QUOTE="Saman"]Jo, kap jsi na to, C/C++ (potazmo VC++) je pro programatory a ne klikace.. :D
A vubec to neni tak obtizny, sice to neudelam za 10, ale asi za 20-30s ;)[/QUOTE]

Ano, to je přesně ono. Pan "programátor" si sedí na svém obláčku a s opovržením a mírným úsměvem na rtu, sleduje ty ubožáky klikače, jak se zoufale pídí po informacích pro samostudium.
Gratuluju Vám Pane programátore, takovou odpoveď jsem čekal, bohužel ne na tomto serveru. Takže zpět ke svému eVB, protože prostě chci "klikací" aplikaci a nejsem programátor, jsem truhlář, ano a nestydím se za to.
Surgical (2364)|2.8.2006 11:29
Hele, a ten znate, jak programator....:)
Saman_ce4you (1451)|2.8.2006 14:07
No, ono vystoupat na ten oblacek neni vetsinou jednoduchy a jsou za tim roky zkusenosti..
Dneska chce kazdej vsechno umet hned. Bud mas na to intuici a jsi schopnej se ucit za pochodu a na pripadny problemy si najit reseni sam nebo musis studovat. Nejlepsi je navstivit knihkupectvi a poridit si nejakou knizku, to neni nikdy naskodu. Pro MS veci je vybornym zdrojem informaci MSDN help a mnoho diskuznich skupin. A obecne Mr. Google
solory (201)|2.8.2006 16:52
zdravim Vas

Nechtel jsem se nikoho dotknout a omlouvam se. ale takhle to dnes je. cena za informaci je hrozna. kdyz jsem v roce 96 poprve sednul na 286tce s gwbasicem, slo to celkem snadno. potom pascal, to uz jsem po prostudovani helpu koupil i knizku a stacilo to. na visual basic taky na klikatka stacila knizka, nakonec delphi a mistrovstvi v delphi byla dobra volba, ale na visual c++ mi jenda nestaci pak jsem jednu prkotinu nepochopil a dal se nehnu. tak jsem zkusil dle recenzi c++ za 21dni. bohuzel JEN konzole a jsem tam kde jsem byl.
není tak davno doba, kdy jsem potreboval pomoct a IPF mi nenapsal "ja to umim za 30sekund" ale napsal navod. Ja nepotrebuji studovat. je to jen moje malichernost co mne nuti delat něco vic a ne zakrnet v eVbasicu, chtel jsem visual c++ a zkusit to. pokud mi poradite slusnepolopatickou knizku VisualC++ kde v prvnich lekcich nemusi byt moc probirany typy atd... ale UZIV. ROZHRANI několik prikladu aplikaci stylem tak klepni na todle, tim se stane to a to, a ted to timto propojis s timto.
v delphi stacilo precist zdrojak a vedel jsem co a jak, v Vc++ to bohuzel nestaci. teda me natvrdlosti.
Obdivuji programatory kteri se timto uzivi, me nejvetsi dilo bylo jednoduche ucetnictvi v delphi3 pod wokny, ktere dodnes pouzivam. klikatko a jak usetri cas.
Saman_ce4you (1451)|2.8.2006 17:14
Problem je ze knizka o Visual C++ uci pouze o MFC - coz je kolekce trid zapouzdrujici Win32 API nacoz ste asi narazil.
Pokud moc neumite Win32 API je to dobre na ziskani zakladu. Nicmene pouzivat MFC pro aplikace na PDA se muze ukazat jako nestastne, ale jak jsem napsal zacit se s tim da, jen musite s aplikaci ditribuovat runtime knihovny. Jak udelat formular (dialog) a associovat ho s custom tridou je v knize popsane, i kdyz mozna pres obrazky, jak pisete, ale kdyz si to jednou zkusite, prijedete tomu na kloub. Vytvoreni udalosti pro button se da jednoduse naklikat nebo pres wizard efektivne nadefinovat.
Slozita procedure pro vymenu dat mezi promenymi a control prvky vas nemusi zajimat, ta je generovana. Vam staci volat jen fci UpdateData s patricnym parametrem pro urceni smeru prenosu dat.
Kdyz budete dale zkoumat vygenerovany kod a bindovani zprav na obsluzne procedury, tak dale proniknete do taju zprav oken.
A vubec. stoji za to prozkoumat kupu sample kodu co je v SDK.
Nicmene, nez se ucit tohle, tak radsi doporucuju ten C#. Ja v tom taky obcas neco napisu, pro standalone user aplikaci je psani efetivnejsi a pokud si vystacite s CF1.0, pak k distribuci aplikace staci defacto jen binarka.

beecher (9270)|2.8.2006 18:30
[QUOTE="solory"]na formuláři mám tlačítko a textbox. při stisknutí tlačítka chchi, aby se v popisku tlačítka zobrazil text z textboxu.[/QUOTE]Ve VS.NET 2005 otazka 2 sekund (pokud jsem to pochopil dobre)... :D

[CODE]private void button1_Click(object sender, EventArgs e)
{
   button1.Text = textBox1.Text;
}[/CODE]
solory (201)|2.8.2006 21:56
alelujá!!!!!! opravdu snadné, jdu se pídit po VS.net

Dík všem zúčastněným za pomoc, kouzelníku i plážovému mužíku :-)
crapper_ce4you (117)|2.8.2006 22:02
ale kde vzít ten button :D já ho tam nemít :mad:
beecher (9270)|3.8.2006 12:30
Solory: Samozrejme, ze v C#, ne C++...

crapper: Ze by ho ve VS.NET pretahnout z nabidky controlu do formulare? ;)
crapper_ce4you (117)|3.8.2006 21:12
Já to tam ale nemám :-( ani další důležité prvky: viz. obrázek
00162110_toolbox_JtNh.jpg
beecher (9270)|3.8.2006 22:59
Ty delas app pro Smartphone, vid?
Pokud ano, tak je Smartphonich controlu mene... Na buttony se nehraje, pac to neni typicky Smartphoni prvek.
Tak si udelej to, ze po najeti na nejake pole se ti zmeni nejaka soft-key...
crapper_ce4you (117)|3.8.2006 23:57
Přesně tak :-) v tom případě díky moc.

Tak a ještě jeden dotázek k tomu hrabání v registrech. Nedá mi to spát. Jednoduchý příklad:

Udělám si projekt pro WM5
Na formulář fláknu jeden Label a do projektu naimportuju knihovnu funkcí Microsoft.Win32
Jednoduše ten kód vypadá takto

Imports Microsoft.Win32
Public Class Form1
Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click
Label1.Text = Registry.GetValue("HKEY_CURRENT_USER\Software\Microsoft\Shell\StartMenu", "GridView", "GridView")
End Sub
End Class

Spustím překlad, v aplikaci provedu MenuItem1_Click a text labelu se skutečně rovná hodnotě registru v uvedeném klíči. Vše OK
To samé udělám v projektu pro smartphone 2003, který používá CF.1 a problém je na světě. Kód se tváří OK ale kompilace je nemožná, že prej nemám deklarovanou funkci Registry. Škemrám o pomoc u msdn a proháním také googla, výsledek žádný. Tak si říkám že ta funkce Registry není v CF.1 asi zapouzdřena a hledám tedy nějakou knihovnu. Najdu Smart Device Framework 2.0, nainstaluju, a odměnou mi je jenom nějaká zmatená chybová hláška Platform not found. :-( Tak jednoduše to vypadá... budu brečet, hlava mě bolí. Existuje vubec ve VS.NET 2005 nějaký API viewer, zvyk z VB6 (sem tam skočil, našel funkci, skopnul jí do schránky a vyplivl do zdrojáku).
beecher (9270)|4.8.2006 10:59
Registry jsou novinka CF 2.0...

API Viewer? Jo, jmenuje se Object Browser... ;)
Saman_ce4you (1451)|4.8.2006 13:27
Pokud si dobre pamatuju API viewer je toola pro VB, ktera deklaruje basicovou fci pro export z DLL, konkretne pro WIN32 API.
Object browser umi nadeklarovat P/Invoke fci?
beecher (9270)|4.8.2006 13:44
Nejsem VBeckar, takze jsem to pochopil jako nejaky prohlizec trid, vlastnosti a metod...
crapper_ce4you (117)|4.8.2006 16:56
[QUOTE="beecher"]Registry jsou novinka CF 2.0...)[/QUOTE]
Pak jaký je tedy postup v CF.1 :?
beecher (9270)|4.8.2006 17:12
Neresit... CF 2.0 budou za chvili potrebovat vsichni... ;)
Navic, ted kdyz jde bez problemu nainstalovat na kartu...
topas (28)|5.8.2006 09:02
[QUOTE="crapper"][QUOTE="beecher"]Registry jsou novinka CF 2.0...)[/QUOTE]
Pak jaký je tedy postup v CF.1 :? [/QUOTE]

Jednose se daji naimportovat Win32 funkce pomoci atributu DllImport. Skoro vsechny vychytavky, ktere ma CF 2.0 muzete najit v Smart Device Frameworku od skupiny www.opennetcf.org. Praci s registry obsahuje take. Na jejich webu jsou k dispozici zdrojove kody, tak se muzes inspirovat. ;)

EDIT:

Jeste jeden tip. Na strance http://www.pinvoke.net/ je v sekci Smart devices seznam funkci, ktere jsou pripraveny pro copy-paste pouziti.
crapper_ce4you (117)|5.8.2006 11:33
Jo to jsem stáhl, jak jsem psal. Ale zdrojáky stáhnout nejdou. A ty co byly u instalace Smart Device Framework 2.0, při otevření v .NET hodí error Platform not found. Z jejich stránek to nějak stáhnout nejde, je tam napsáno: License fees start at $50

Každopádně jsi mě přivedl na stopu PInvokeLibary a vše se náhle otočilo. Takže díky moc. Hlava přestává bolet :-)
topas (28)|7.8.2006 08:47
Zdrojaky SDF 2.0 stahnou nejdou to je pravda. Ale rozhodne jdou stahnout zdrojaky SDF 1.4, ktere jsou pro CF 1.0, coz potrebujes jak jsem pochopil. SDF 2.0 je pro CF 2.0 ;)

Zdrojaky si muzes prohlednout pres http://vault.netcf.tv/VaultService/VaultWeb/login.aspx pouzitim loginu guest a hesla guest. Pro jejich stazeni bude potreba nejakej CV client.