Ukončení aplikace
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í.
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?
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?
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]
[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]
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 :-)
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.
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.
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?
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?
Ve VB.NET jsem ty hodnoty z registru přečetl rovnou příkazem Registry.GetValue :-) huráá (Nutno importovat Microsoft.Win32)
[QUOTE="crapper"]
pomohlo: Me.Dispose()
[/QUOTE]
Spravnejsi by bylo pouziti
[CODE]Application.Exit();[/CODE]
pomohlo: Me.Dispose()
[/QUOTE]
Spravnejsi by bylo pouziti
[CODE]Application.Exit();[/CODE]
[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ý
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ý
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 ;)
A vubec to neni tak obtizny, sice to neudelam za 10, ale asi za 20-30s ;)
[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.
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.
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
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
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.
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.
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.
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.
[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]
[CODE]private void button1_Click(object sender, EventArgs e)
{
button1.Text = textBox1.Text;
}[/CODE]
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 :-)
Dík všem zúčastněným za pomoc, kouzelníku i plážovému mužíku :-)
Solory: Samozrejme, ze v C#, ne C++...
crapper: Ze by ho ve VS.NET pretahnout z nabidky controlu do formulare? ;)
crapper: Ze by ho ve VS.NET pretahnout z nabidky controlu do formulare? ;)
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...
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...
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).
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).
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?
Object browser umi nadeklarovat P/Invoke fci?
Neresit... CF 2.0 budou za chvili potrebovat vsichni... ;)
Navic, ted kdyz jde bez problemu nainstalovat na kartu...
Navic, ted kdyz jde bez problemu nainstalovat na kartu...
[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.
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.
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 :-)
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 :-)
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.
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.