- Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
- Az USA vizsgálja a RISC-V kínai terjedésének kockázatát
- Kicsit extrémre sikerült a Hyte belépője a készre szerelt vízhűtések világába
- Egészen nagy teljesítményspektrumon fedné le a mobil piacot az AMD
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- iPad topik
- OLED TV topic
- Autós kamerák
- Bluetooth hangszórók
- AMD Navi Radeon™ RX 6xxx sorozat
- Amlogic S905, S912 processzoros készülékek
- Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
- Multimédiás / PC-s hangfalszettek (2.0, 2.1, 5.1)
Hirdetés
-
Új Beats fej- és fülhallgatók jelentek meg
ma Frissítette a Solo termékcsaládot az Apple házi audiomárkája.
-
Premier előzetesen a Gray Zone Warfare
gp A mai naptól hivatalosan is elrajtol a játék korai kiadása PC-n.
-
Karácsonyfaként világíthat a Thermaltake új CPU-hűtője
ph Az ASTRIA 600 ARGB ráadásul a hűtési teljesítmény szempontjából sem szégyenkezhet.
Új hozzászólás Aktív témák
-
Karma
félisten
Mivel olvasol a fájlból? A StreamReader dokumentációja szerint \r, \n és \r\n-ek esetén is leválasztja a sort. A TextReader hasonlóan viselkedik, sőt még az Environment.NewLine propertyt is figyelembe veszi - ezt is felhasználhatnád akár.
Az biztos, hogy a saját ReadLine() nem jó megoldás.
Működik, de nem kéne mindig újra feltalálni a kereket.[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
Egy WPF-es kérdésem lenne, amivel már egy ideje szívok... Próbáltam rákeresni, de nem voltam eredményes.
Adott két Selector-leszármazott (egy TabControl és egy ComboBox), melyek ItemsSource-a egy-egy ObservableCollection.
Azt szeretném elérni, lehetőleg codebehind nélkül (de ha nem úszom meg, beadom a derekam), hogy egy elem mindig ki legyen jelölve, azaz amikor az aktív elemet törlöm a collectionből, akkor egy másik lesz Selected, illetve ha az üres collectionhöz adok egy elemet, az is választódjon ki azonnal.
Valaki csinált már ilyet?
Ez a ComboBox:
<ComboBox ItemsSource="{Binding Scripts}" DisplayMemberPath="ScriptName" SelectedItem="{Binding CurrentScriptModel, Mode=TwoWay}"/>
Illetve a kapcsolódó collection:
private ObservableCollection<ScriptViewModel> _scripts = new ObservableCollection<ScriptViewModel>();
public ObservableCollection<ScriptViewModel> Scripts
{
get
{
return _scripts;
}
}
private ScriptViewModel _scriptModel = new ScriptViewModel { ScriptName = "XXX" };
public ScriptViewModel CurrentScriptModel { get { return _scriptModel; } set { _scriptModel = value; NotifyPropertyChanged("CurrentScriptModel"); } }[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
Mármint milyen objektumot akarsz velem leszármaztatni?
Egyébként ezt más ember nem fogja olvasni. Mondjuk ezzel a motivációval írta meg egy csimpánz eredetileg: WPF elemekből de WinFormsos (vagy inkább Delphis) logikával, millió+1 getter/setter hívás széthányva egyetlen MainWindow.xaml.cs állományban többezer soron át. Én leültem mindezt megcsinálni szépen, hiszen bugos is volt, javítani meg lehetetlen.
Szerk.: A javítással legalább értem mire gondolsz
Mindenki: azt hiszem tényleg ez lesz a holnapi program. A View osztályba belerakom ezt a kiválasztás-logikát, aztán remélem menni fog Az eredetiben is volt ilyen (nem csoda), csak reméltem, hogy meg tudom oldani kevesebb kóddal.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
válasz eziskamu #2479 üzenetére
Ez szerintem érdekes lehet.
Sajnos a Visual Studionak csak a fizetős változataival lehet a .NET Compact Frameworkkel fejleszteni, az Express nem elég hozzá az addintámogatás hiánya miatt. Valamint ahogy te is tapasztaltad, az asztali .NET nem fut mobileszközökön
Amúgy a VS fejlettebb verzióinak is van trialja.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
Hát igen, null referencián nem könnyű hosszot mérni. Inicializáld a változóidat! Mondjuk String.Empty-vel a szamot, a szorzast meg nullával.
Nem feltétlen így csinálnám a while ciklust, de abba nem akarok beleszólni. Na jó, mégis: a szamra semmi szükséged kívül, elég ha a szorzas látszik a while cikluson kívül. (Amit egyébként szorzonak is hívhatnál.)
És a do while is teljesen jogos.
Convert.ToInt32() helyett meg int.TryParse()-ra szavaznék. Egy kicsit más a szintaxisa, de legalább nem tud robbanni, és nem drótozol be vele változóméretet se.
Csak nálam nem működik Chrome alatt a Monospace?
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
A szoros csatolás az, amikor a View codebehindjában előveszed a DataContextet és elkezdesz matatni benne. Ekkor konkrét interfészhez vagy osztályhoz kötöd a Viewt. Vö. amikor bindingot használsz, csak a propertyk nevének kell egyeznie, de a csatolt objektum típusáról egyébként mást nem kell feltételezni.
Konkrét példát egy darab iPaddel felszerelve nem írnék
Szerintem elképzelhető simán.Másfajta szoros csatolás meg az, ha az üzleti logikát belekened a Viewba. Akkor meg az alkalmazásod működése függ a konkrét View típustól... De ennek elkerüléséről szól az MVVM.
“All nothings are not equal.”
-
Karma
félisten
Akkor ideje végre leírnod, hogy mit is szeretnél pontosan. Először memóriát akartál foglalni, lett is rá megoldás, aztán bejött a MemoryFailPoint, nem volt jó, még egy foglalás, nem volt jó...
Egyébként meg hót egyszerű a MemoryFailPoint használata: csak a konstruktornak meg kell adnod, hogy mennyi memóriát szeretnél biztosítani, aztán ha végeztél, Dispose (vagy használhatsz using blokkot is). Természetesen try blokkba kell tenned, hogy az exceptiont lekezelhesd, ha nem állna rendelkezésre ekkora heapszelet.
De ez mind le van írva az MSDN-en, még csak nem is érthetetlenül.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
válasz dudika10 #3591 üzenetére
A C programozás topikot erre találod.
Egyébként egyszerű a dolog, a scanf az újsor karaktert olvassa be a billentyűzetpufferből, amit az első karakter beolvasásánál benne hagytál. (Az első hívás csak a karaktert húzta be, az enter ottmaradt.)
Nagyon gyakori probléma amibe belefut mindenki, amikor kezdő.
Ezért is menj át a másik topikba, és keress rá a scanf-re.Szerk.:
Az fflush(stdin) az egyik lehető legrosszabb megoldás (jutalma: guillotin), mert a szabvány szerint illegális, és teljesen implementációfüggő.Egy karakter beolvasásához a getchar() tökéletesen elég amúgy is.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
válasz xxSanchez #3633 üzenetére
Kicsit konkrétabban nem tudnád megírni, mi a probléma?
A példaprojekt se működött?A túl régi példákkal (mint pl. ez is) az simán lehet baj, hogy régi Windowshoz, vagy 32-bites explorerhez készültek. Majd napközben ránézek én is.
Szerk.: Áh, írja is egy kommentelő, hogy 64-biten semmi.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
Formsszal én főleg csak barkácsolni szoktam, de ezt próbálnám meg.
“All nothings are not equal.”
-
Karma
félisten
Akkor is elszáll, ha az excel hívásokat kikommentezed? Nekem alapjáraton fura, hogy előbb indítod el a workert, mint hogy a DoWork eseményt bekötöd. Meg egyébként ez az exception akkor gyakori, ha UI komponenseket bizgerálsz Invoke nélkül, másik szálból.
Szerk.: oké, ezesetben tárgytalan.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
Akkor ha canvas tömböd van, már régen rossz. Használj ListBoxot vagy ItemsControlt, és ezeknek az ItemsSource és ItemTemplate attribútumait a Canvasok legyártásához. A sablonban pedig sok lehetőséged van: létrehozhatsz Buttonöket (Commandot átadva nekik), vagy a Canvasnak adsz Tap eseménykezelőt, vagy Behaviorokkal is lehet játszani.
“All nothings are not equal.”
-
-
Karma
félisten
válasz martonx #3771 üzenetére
Ja értem. Plaintextben jönnek a mezőnév-értékpárok, amiknek a lehetséges kulcsait sehol se akarod felsorolni újra. Hát érdekes kihívás ezt típusérzékenyre megcsinálni.
Gyanítom a Dynamic LINQ is reflexióra épül, talán nem lene lassabb puszta kézzel végigmenni a listán, lekérni reflexióval a property típusát, és a megfelelő Where feltételt rátűzni a selectre.
“All nothings are not equal.”
-
Karma
félisten
Na, ma is tanultam valamit. Amikor elkezdtem írni ezt a hozzászólást, meg voltam győződve ennek ellenkezőjéről (pl. mert a Paint.NET is külön időt tölt "optimalizálással"), de nem ez az általános viselkedés. Bocs a fölös OFFért.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
-
Karma
félisten
válasz forbence #3865 üzenetére
Hát ez nem volt valami konkrét kérdés, de a string.ToCharArray metódus char[]-t csinál neked.
Ha pontosítasz, gondolkodom is rajta egy kicsit.
“All nothings are not equal.”
-
Karma
félisten
A public static int mezőt bárhonnan el tudod érni a Form példány nélkül, hiszen azért static. Ezzel nagyon gyorsan és igénytelenül át lehet hidalni a problémát. Rendes MVC felbontás nélkül kár erőlködni szerintem szépítési kísérletekkel...
A formos kérdésre: mi a kénkőért tennél ilyet? Azaz miért kéne a Formot bárkinek ismernie?
“All nothings are not equal.”
-
Karma
félisten
válasz tototos #3883 üzenetére
Nem túloztad el felénk a specifikálást
Például feltételezhető, hogy a sorazonosítóban és a harmadik mezőben (Steering_msg_1:)-es mezőben nem lehet szóköz, és a második mező (256) biztosan szám? Mert ha igen, elég könnyű rá regexet írni, és capture groupokkal kirángatni a megfelelő értékeket. Ha viszont nem lehet feltételezni a szóköztelenséget, akkor nagyobb baj van.
Így pl. fel lehet darabolni, ha igaz a feltételezés: (.+?) ([0-9]+) (.+?): (.*)
C#-ban konkrétan (nem teszteltem!) ilyesmi:
var regex = new Regex(@"(.+?) ([0-9]+) (.+?): (.*)");
var match = regex.Match(input);
if (match.Success)
{
var lineId = match.Groups[1].Value; // fontos! 1-től kezdődnek a groupok!
var something = match.Groups[2].Value;
var something2 = match.Groups[3].Value;
var message = match.Groups[4].Value;
}[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
válasz Amartus #3886 üzenetére
Silverlightban tök jó erre a PlaneProjection, de nem sokat segít WPF-ben rajtad
Viszont volt, aki újraírta: [link] Sajnos az eredeti oldal lepusztult, de innen a Waybackről a projektet is le lehet tölteni még mindig.Egyébként itt találtam a linket.
Magam nem sok WPF-et programoztam.[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
-
Karma
félisten
A ciklusodat 0-tól 49-ig járatod (ezek a tömb érvényes indexei is egyébként), de belül t[i+1]-et írtál, ami az utolsó lépésben 50 -> robban a túlindexelés. A javításhoz a ciklust ne nullától, hanem 1-től indítsd ugyanígy, és tüntesd el a +1-et; ahogy Athlon64+ is megírta.
Másrészt t[0]-t minden lépésben beállítod, teljesen felesleges (bár nem okoz hibát). Harmadrészt ne legyen büdös a debuggert használni, azonnal látszik az Exception eldobódásánál, hogy milyen i érték mellett történt a robbanás.
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
válasz Neil Watts #3916 üzenetére
"Megnéztem a kódodat most, s vannak benne érdekességek. tömböt forral az életben nem fogsz tudni feltölteni. While, s int elemszam bevezetése ajánlott véleményem szerint. "
Ezt kifejthetnéd kicsit, mert innnen nézve eléggé a valóságtól elrugaszkodott kijelentés és tanács.
“All nothings are not equal.”
-
Karma
félisten
Amúgy az előző konstrukcióban van valami oka annak, hogy innen próbálod indítani a BackgroundWorkert, nem pedig a SysTrayAppon belül? Drkbl jó úton jár, a BackgroundWorker működéséhez kell a megfelelő kontextus, ami ebben a formában nem áll elő.
A linkelt SO kérdésben is említik az egyszerű megoldást: használj pl. ThreadPoolt. Vagy a C# 5.0-öt használsz, ott az async/await is. (Microsoft.Bcl.Async csomaggal meg régi .NET-en is megy.)
“All nothings are not equal.”
-
Karma
félisten
Filózok folyamatosan a problémán, igazából ha mondjuk ebből a példából indultál ki, akkor az előzőleg említett állításom nem áll meg - egy elrejtett Form az alapja az egésznek, a rendes kontextus az Application.Runnak köszönhetően felépül.
A linkem a konzol alkalmazásokra vonatkozott csak, ez meg nem az.
Viszont felmerült bennem egy kérdés a kódod azon részére, amit nem mutattál eddig: az mWorker változót hogyan deklarálod és mikor hozod létre a BackgroundWorker objektumot? Nem maradt ki véletlenül a new?
Ettől függetlenül a ThreadPool jó dolog
[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
-
Karma
félisten
A StringComparison egy enum, amit a String StartsWith metódusa egyik változatának tudsz megadni paraméterként.
“All nothings are not equal.”
-
Karma
félisten
válasz Bobrooney #4221 üzenetére
Nem tudom mit építesz, de három tippem van:
1) SQLite, ha csak lokálisan akarsz valami nagyon egyszerűt;
2) SQL Express, ha valami nagyobb kell, sokat gondolkodni meg nem akarsz az ügyön (VS-sel feltelepül és minden flottul megy vele konfiguráció nélkül),
vagy 3) SQL Azure, ha egyébként webalkalmazást fejlesztesz és hostolni is akarod valahol - és ez a valahol az Azure.[ Szerkesztve ]
“All nothings are not equal.”
-
Karma
félisten
válasz leximester #4224 üzenetére
Ez nem egy "var típusú" változó, hanem egy AudioVideoCaptureDevice típusú. A var miatt nem kell külön kiírnod a blokkon belül, a fordító kitalálja - más szóval csak egy kis könnyítés neked.
Ha át akarod adni, el akarod tenni tagváltozóba vagy bármi hasonló, a valódi típusát kell használnod, amit fenn kiemeltem.
[ Szerkesztve ]
“All nothings are not equal.”
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Kihívás a középkategóriában: teszten a Radeon RX 7600 XT
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- Milyen okostelefont vegyek?
- Xbox tulajok OFF topicja
- Vallás
- iPad topik
- OLED TV topic
- Autós kamerák
- Bluetooth hangszórók
- További aktív témák...