- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Samsung Galaxy Z Fold3 5G - foldi evolúció
- Poco M3 - felújított állomás
- Xiaomi 11 Lite 5G NE (lisa)
- Hivatalosan is bemutatta a Google a Pixel 6a-t
- iPhone topik
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Fotók, videók mobillal
- Samsung Galaxy A55 - új év, régi stratégia
- Nothing Phone (1) - nem semmi (2)
Hirdetés
-
Napelem- és szélfarmot fejleszt a Microsoft
it További több mint 10 milliárd dollárt fektet a Microsoft a megújuló energiába, hogy elláthassa árammal az adatközpontokat.
-
2026-ban hozhatja saját IGP-jét a Samsung
ph Persze nagy kérdés, hogy mennyire lesz majd valóban saját tervezésű.
-
Beúszott az új Black Shark GS3 Kínába
ma A Xiaomi márkája robosztus órának kinéző csomagolásban kínál olcsón aktivitáskövetőt.
Új hozzászólás Aktív témák
-
kingabo
őstag
válasz RedSign #1779 üzenetére
Hali!
Ha jól emlékszem a draw eseményre kell felíratkozni, ekkor kapsz egy graphics példányt is. A probléma szerintem az lesz, hogy a Te rajzolásod hamarabb lefut, mint a fenti draw, ezért ha van a webcam-nek képe, akkor azt rárajzolja a rajzodra.
(#1778) tototos: öröklődés? Létrehozol egy saját form osztályt, ami a Form-ból származik és lesz még egy plusz adattagja, ami a szűlőjére mutat.
[ Szerkesztve ]
-
kingabo
őstag
válasz RedSign #1785 üzenetére
Paint az esemény és onPaint a hozzá kapcsolódó automatikusan elnevezett esemény kezelő. Ha lenne webcam-em megpróbálnám hátha rájövök hol veszik el a kép, de így nem fog menni
(#1784) tototos: hirtelen ezt találtam: [link] Úgy látom csak ShowDialog-ra műxik sima Show-ra nem. Alul a hsz-ben van erre 1 megoldás!
-
kingabo
őstag
-
kingabo
őstag
válasz tototos #1793 üzenetére
Hali!
BackgroundWorker-rel sokkal könnyebb lenne megoldani, illetve a gombra kattintáskor le kell tiltani az összes formon lévő gombot és nem tud a lyúzer semmire sem kattintani. Vagy ha a gombletiltás nem tetszik, akkor egy bool változót kell deklarálnod a form-hoz, ha elkezdesz számolni igazra állítod, ha vége, akkor false-ra és minden gomb click esemény kezelőjében megvizsgálod, hogy a változó false-e, ha nem(vagyis számolsz), akkor return.
-
kingabo
őstag
válasz tototos #1798 üzenetére
Na megírtam a progit nem nagyzolás miatt csak, hogy tudjak segíteni ha elakadsz/ne ajánljak hülyeséget, nem akarnám 1:1-ben odaadni, inkább jöjj rá a dolgokra Te! (nem szivatásból, csak sok buktató van, amit jó ha magad is megtapasztalsz, így késöbb tudni fogod, hogy hogyan kell megoldani) De igaziból azt is jó lenne tudni, hogy mit tanultál, meg mennyi van meg.
Nagyjából így oldottam meg: gombra katt, ami létrehoz egy új thread-et és feldobja az ablakot, ebben a thread-ben nagy számítás szimulálására létrehozok egy timert, aminek a tick eseményére megnövelem a másik formon a progressbar értékét. Hogy a lyúzer ne tudja kilőni felíratkoztam a formclosing eseményre, ennek az eseménykezelőjében, ha nem végeztem a számolással, akkor az e.Cancel = true; utasítással nem engedem, hogy bezárja. Ha végeztem a számítással bezárom az ablakot.
Ha valamit nem értesz, kevés,... kérdezz nyugodtan.[ Szerkesztve ]
-
kingabo
őstag
Ha tudsz sql-ül, akkor a var line =... könnyen átírható LINQ-s formába (sql szerű "lekérdezéseket" írhatsz benne, de nemcsak sql-es adatbázisok lekérésére (LINQ to SQL), hanem pl listákon, tömbökön...):
var line = from x in lines
where x.Product.ProductID == product.ProductID
select x;
Ebből talán jobban látszik, hogy a lines listából kiválasztja azokat a sorokat amelyeknek a ProductID-ja megegyezik a paraméterben kapottal. A FirstOrDefault ezek közül a sorok közül visszaadja az elsőt vagy ha nincs a feltételnek megfelelő sor, akkor a default értéket, ami itt a null.
Az if-es részben megvizsgálod, hogy van-e ilyen sorod, ha nincs akkor beszursz egyet a paraméterekben kapott adatokkal, ha van, akkor csak növeled a darabszám értékét.
Szemléletesen: ha jól sejtem ez egy webshopban a kosárba tételnek a kódja. Vagyis miután valamit be akarsz tenni a kosárba megvizsgálod, hogy benn van-e (var line = ...), aztán ha már benne van a kosárban, akkor csak a bentlévő darabszámot növeled meg a most berakottakkal. Ha nincs benne, akkor egy új sor hozzáadásával bekerül az új elem a kosárban.
Remélem érthetően írtam le. -
kingabo
őstag
Nagy kérés lenne, hogy őstagként értelmesen tedd fel a kérdéseket?
Ez mit akar jelenteni? "a SelectedText láttam úgy hogy txt fájlt olvastak be, létezik?"
De bármi is akar lenni hülyeség, hogy tudnád egy comboBox kiválasztott értékét megtudni, hogy txt filet olvasol be? Vagy arra gondoltál, hogy file-ból akarod a combobox elemeit megadni? Arra van lehetőség, msdn-en van fenn kódból új elem hozzáadása, abból meg pár sor még, hogy ezt file-ból tegye. -
kingabo
őstag
A messagebox-al az a gond, hogy Te egy esemény kezelő megadását(SelectedIndexChanged) akarod kiíratni, helyette a SelectedText-et használd.
Ezután a kód után másold be az ArchElf által leírt kódot és kész is vagy, csak a megfelelő elemekhez tartozó szövegeket kell beírnod a tömbbe. -
kingabo
őstag
Ott a kivételben is, hogy DataGridViewRowCollection-t nem tud átküldeni a wcf. A legegyszerűbb, ha linq to sql-el kapcsolódsz a wcf-ben a db-hez, és a wcf az így kapott adotakat küldi át pl egy listában a winform-os proginak, amin van a gridview, és ennek a datasource-a lesz a lista.
A te megoldásoddal az a gond, hogy a wcf-hez bármivel kapcsolódhatsz: winform, wpf, winmo-s progi, asp.net és nem biztos, hogy mindegy támogatja azt amit használsz, másrészt az osztályt úgy írták meg, hogy nem lehet sorosítani, így a wcf se tudja átküldeni...[ Szerkesztve ]
-
kingabo
őstag
Komolyan nem értelek. Le lett írva, hogy hogyan kell feltölteni a comboboxot , aztán a tömbök feltöltése, illetve a megfelelő szöveg kiíratás. Ezeket egymás után kell tenned és kész. Miben kell még segíteni?
-
kingabo
őstag
válasz [pod]Diablo #1859 üzenetére
A főform kódjában: this.Close();
(#1858) kingabo: félre érthetően írtam. Egymás után végrehajtva a 3 lépést kapod amit szeretnél. Az első 2 mehet egy Init fv-be, amit a konstruktor meghív, a 3. meg a gomb eseménykezelőjébe.
[ Szerkesztve ]
-
kingabo
őstag
válasz [pod]Diablo #1861 üzenetére
Mármint hogy console? Sima karakteres ablakra (cmd)? Arra ott a return. Vagy console-ból létrehozott form-ra? Utobbival nem volt még dolgom, gondolom elöbb le kell lőni a formot, utána tudsz csak kilépni a progiból.
[ Szerkesztve ]
-
kingabo
őstag
válasz [pod]Diablo #1863 üzenetére
Bocs mostanában mindent túlbonyolítok.
Arra figyelj, hogy csak a main-ben lévő return-re lép ki a progid, másik fv-ben lévő return csak az őt hívó fv-be tér vissza. biztos ami biztos alapon leírta, hátha...
Ja és nincs mit!
[ Szerkesztve ]
-
kingabo
őstag
válasz Vasinger! #1894 üzenetére
Szebb lenne egy konstanst deklarálni, hogy hány elemed lehet max és mindig arra hivatkozni (tömb deklaráció, ciklus feltétel), így elég 1 helyen módosítani, ha kell, elkerülhetőek az ilyen hibák. const int MaxElemSzam = 48;
Esetleg a hossz := hossz + 1; helyett lehetne hossz++; vagy hossz += 1; -
kingabo
őstag
válasz Vasinger! #1908 üzenetére
"string[,] nevek = new string [49, 2]
...
while (név != "" && hossz <= 50)
Látod ezért mondtam, hogy használj konstanst erre, de nem...Egyébként ennyi lenne az egész:
const int MaxMeret = 49;
string[,] nevek = new string [MaxMeret , 2]
...
while (!string.IsNullOrEmpty(név) && hossz < MaxMeret )Ráadásul az intellisense fel is ajánlja és ha 49 helyett csak 10 név kell, akkor 1 helyen átírod és kész... Na mind1, ha inkább szenvedsz
szerk: D'oh kódban nem megy a félkövér
[ Szerkesztve ]
-
kingabo
őstag
válasz Vasinger! #1921 üzenetére
"Félre értés ne essék. Nem azért nem használtam a Te módszeredet mert nem jobb, vagy én nem akartam volna"
Ok, csak láttad Te is mennyi elgépelés volt egy ekkora progiban is és utána mennyi problémát okozott."hanem mert a tanárnak feltűnt volna és nem tetszett volna, ha nem az ő módszereit használtam volna."
Ez az ember aztán igazán tud programozni! Nem a tanárnak programozol, hanem magadnak. (sztem)
Hossz = 50 helyett, akkor már mehetett volna break is. A substringes hack-elés meg lassú és gáz. Ráadásul csak az első névnapost köszönti.
Szerintem az itteni megoldások szebbek voltak. -
kingabo
őstag
"Mod: Azt kihagytam hogy egy keydownt/keyupot rendelj az összes textboxhoz. Az aktuális
textboxra pedig (sender as TextBox)-ként tudsz hivatkozni."Szerintem ezen az irányon kell tovább menni. Utána az fv-ben minden konvertálás elött egy if, hogy a küldő textbox egyezik-e az éppen átváltandó számrendszerével, ha nem akkor kell konvertálni. Tehát pl ha a 10esbe írt, akkor a sender a 10-eshez rendelt textboxxal fog megegyezni az if-ben, a többiben nyilván nem, vagyis ott be is lép az if-en és át is váltja a számot a megfelelő számrendszerbe.
Remélem érthetően sikerült leírnom.
-
kingabo
őstag
Az if 2 ref összehasonlítása + 1 jmp, hogy a convert hogy van megcsinálva nem tudom, talán ellenőrzi, hogy egyezik-e a 2 számrendszer. Vagyis mindenképp kell összehasonlítás: vagy még a konvert elött "mi" írjuk meg, vagy a convert-ben az ms.
Bár tök mind1, ha nem keyup-ra kötve az átváltás, akkor több fölösleges munkát spórulunk meg.
[ Szerkesztve ]
-
kingabo
őstag
válasz Speederer #1952 üzenetére
Amit én mondtam az 8 sor, ha if nélkül írod meg akkor 4.
Az else ágban a for-ban a sok if helyett egy switch sokkal szebb lenne.
Talán a key down eseménynél meg tudod nézni, hogy melyik gombot nyomta le a véglény, ha ez pl bin-nál nem 0 vagy 1 akkor szólsz neki, hogy ejnye-bejnye.
-
kingabo
őstag
Tehát nincs...
Igaz csak bitmap-re, de ennél gyorsabb módot nem ismerek: c-s tömbként megyünk végig a képen:
Bitmap Picture1 = new Bitmap(width, height);
BitmapData Picture1Data = Picture1.LockBits(
new System.Drawing.Rectangle(0, 0, Picture1.Width, Picture1.Height)
, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
unsafe
{
int Remain1 = Picture1Data.Stride - Picture1Data.Width * 3;
byte* PtrP1 = (byte*)Picture1Data.Scan0;
for (int j = 0; j < height; ++j)
{
for (int i = 0; i < width; ++i)
{
PtrP1[2] = Layers[R, i, j];
PtrP1[1] = Layers[G, i, j];
PtrP1[0] = Layers[B, i, j];
PtrP1 += 3;
}
PtrP1 += Remain1;
}
}
Picture1.UnlockBits(Picture1Data);
Persze ehhez a projektben engedélyezni kell az unsafe használatát. A fenti kód egy 3 dimes tömböt pakol át a képbe. Hirtelen jobb pl-t nem találtam.(#1975) hunfatal: ez is bitről bitre hasonlít össze, szal ugyanott vagy.
[ Szerkesztve ]
-
kingabo
őstag
válasz #90999040 #1978 üzenetére
A bitmap által támogatott kép formátumok: [link]
Nem vagyok benne biztos, de ennek a módnak nem kell plusz memória terület, az eredeti képen garázdálkodik és baromi gyors. (6 rétegű műholdképeket kezeltünk így )
Szerintem a korábban említett enum-os megoldás ezek után az egyetlen járható út."De a lényeg, hogy így vagy úgy, de megoldható."
Ráadásul az ígyre és az úgyra is van pl vagy segítség!Engem továbbra is érdekelne, hogy a resource-os változatnál miért nem egyezik a 2 ref.
[ Szerkesztve ]
-
kingabo
őstag
válasz [pod]Diablo #1999 üzenetére
Ha pl egy groupbox-ot használsz amibe csak a gombok vannak, akkor így is megkapod a sorszámát a gombnak:
int sorSzam = groupBox1.Controls.IndexOf((Control)sender);
A sorrendet a gb-hez való hozzáadás fogja jelenteni. (ha kódból pakolod bele, akkor a korábbinak lesz a kisebb sorszáma, ha az összehúzogatós felületen raktad össze a gui-t, akkor fordított)(#2002) hunfatal: folyamatosan növel egy i változót.
(#2005) emonitor: megelőztél. De ennek így mi értelme? Kell ehhez még egy plusz változó amit szintén karban kell tartanod... Ha azt kiveszed, akkor meg megkaptad a for-t.
[ Szerkesztve ]
-
-
kingabo
őstag
válasz Sk8erPeter #2119 üzenetére
"Most azon tanakodtam, hogy helyesírás szerint "C# programozás" vagy "C#-programozás" (kötőjel). Én utóbbira tippelnék, mert tulképpen a C#-nak a programozása, de lehet, hogy tévedek. "
C ill C++-nál szóköz van nem kötőjel.
szerk: Cuda, batch, Opengl szintén.[ Szerkesztve ]
-
kingabo
őstag
válasz Sk8erPeter #2125 üzenetére
"Szóval ez még minimális szinten sem mérvadó"
Te neveztetted át a C++-ost arra!Nekem mind1, hogy szóköz vagy kötőjel van köztük, csak leírtam, hogy a többi hogy van.
Köszi az átnevezést!
Ú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!
- IPHONE SZERVÍZ BAZÁR! SZERVÍZ ESZKÖZÖK, SZERSZÁMOK! FÓLIAVÁGÓGÉPEK REMEK ÁRON!
- HP EliteBook 840 G6 -i7 8665U/16GB/256GB SSD/Magyar nyelvű billentyűzettel
- Eladó 42U server rack
- Lenovo 4. generációs i3-4130 sff pc, 16GB vagy 32GB rammal
- Új Bontatlan Univerzális monitorállvány, 17-27'' , VESA 100x100/75x75 UNOXAR UX-MDS-10
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest