Keresés

Részletes keresés

Captain Kirk Creative Commons License 2011.10.01 0 0 903

tömbként akarom példányosítani a saját classomat, a következő módon:
Test[] cp = new Test[10];
(A Test kész van). A problémám az hogy a Test konstruktora vár egy bemenő paramétert, és azt nem tudom hogy hol adhatnám meg. (mert ugye a tömbelemszám helyére kéne tenni alapból.) A következő megoldás meg elég baromság: Test[] cp = new Test[10](5);
A segítséget előre is köszi

ZaphodBeeblebrox Creative Commons License 2011.09.30 0 0 902

Felrakod az MS Chart komponens csomagot és máris tudsz grafikont rajzolni.

 

ZB

Előzmény: Nesta82 (900)
sztárszkiéshács Creative Commons License 2011.09.21 0 0 901

Kicsit OFF. bocs miatta de nem találtam másikat

 

 

34 éves gépészmérnök vagyok és arra az elhatározásra jutottam hogy átképzem magam C++ programozónak ill másod szakmát szerzek.....

Műszaki programozásban van tapasztalatom (egyszerűbb program nyelveken Pascal, VBasic), viszonylag összetett progrmokat is írtam már komolyabb matematikai háttérrel.

 

Kérdésem az lenne hogy mennyi ideig tartana egy versenyképes, eladható tudás megszerzése?

 

Hol vannak az országban olyan iskolák ahol célirányosan erre képeznek és a papírjukat is elismerik?

 

Mivel érdemes kezdeni és folytatni? szóval jöhet minden ami létezik! :)

 

Nesta82 Creative Commons License 2011.09.21 0 0 900

Sziasztok!

A következő kérdésem az lenne, hogy hogyan tudok grafikont rajzoltatni c#-ban.

 

Üdv, és köszi előre is.

Nesta82 Creative Commons License 2011.09.18 0 0 899

Szia!

Köszi a linket!!!

Előzmény: AlterEgo5561 (898)
AlterEgo5561 Creative Commons License 2011.09.15 0 0 898

http://www.connectionstrings.com/ Itt kiválasztod az Access-t és.....

Előzmény: Nesta82 (897)
Nesta82 Creative Commons License 2011.09.14 0 0 897

Sziasztok!

Abban szeretnék segítséget kérni, hogy hogyan tudok adatbáziskapcsolatot létrehozni egy access adatbázissal. Le tudná írni nekem vki lépésről lépésre.

Törölt nick Creative Commons License 2011.09.13 0 0 896

Nem ilyenre gondoltam (ennél egyszerűbb minden tabra kitenni egy pBox-ot).

Valami olyasmire gondoltam, hogy az alap formra teszem a képet, és a tab controll átlátszó. (ez nem jó megoldás, ugyanis a görgetősávok nem elérhetők)

Tehát valami olyasmi kellene mintha tab lenne, azonban valójában csak a fülekre (ha úgy tetszik mint gombok) lenne szükségem.

Előzmény: Törölt nick (895)
Törölt nick Creative Commons License 2011.09.13 0 0 895

Hát manuálisan kell tabváltáskor a kép kontrollokat eltávolitani a régi tabról, és hozzá adni az aktuálishoz, a láthatóhoz. Ha jól értettem, hogy mit szeretnél.

Előzmény: Törölt nick (894)
Törölt nick Creative Commons License 2011.09.12 0 0 894

Sziasztok!

 

Ismét segítséget szeretnék kérni.

Mondjuk ez inkább elméleti.

Tehát a program elrendezése tabokkal tagolt, ezen belül splitt konténer, jobb oldalon nagy kép (pictureBox), bal oldalon bélyegkép, és alatta a beállítások.

A tabokat szeretném valahogy kiváltani, vagy úgy megoldani hogy egyetlen pictureBox-ot kezeljen. Tehát ne legyen 10-15 tabonként 2 kép doboz.

Van valami ötletetek?

 

Előre is köszönöm.

Törölt nick Creative Commons License 2011.08.29 0 0 893

Köszönöm.

Előzmény: Törölt nick (892)
Törölt nick Creative Commons License 2011.08.29 0 0 892

1, a formra feltett controlok a form fieldjei között hozzáférhetőek. Ez igaz a tabokra pakolt cuccokra is.

2, A Localizable tulajdonság form szintű. Elég a fromon beállítani a nyelvet, és írhatod a context menüre a szöveget a megfelelő nyelven.

Előzmény: Törölt nick (891)
Törölt nick Creative Commons License 2011.08.29 0 0 891

Köszönöm.

 

1; azt értem, hogy ahol kell oda egy picture box kell, csak a hivatkozása nem tiszta. (de ezek szerint benn marad a memóriában, csak ki kell okoskodnom.

 

2; A többinél működik amit írtál, csak a menünél nincs ilyen. Vagy futásidőben kell másolni (klónozni?) hogy meg lehessen változtatni a text tulajdonságát?

Előzmény: Törölt nick (890)
Törölt nick Creative Commons License 2011.08.29 0 0 890

1, minden tabra kell tenned egy pictureboxot, amelyiken meg akarod jeleniteni.

2, A form Localizable propertyjét kell true-ra állítani a designerben, majd ki kell választani az aktuális nyelvet. pl. Ha Hu-hu-ra állítod, akkor a magyar nyelven írhatod a feliratot.

Előzmény: Törölt nick (889)
Törölt nick Creative Commons License 2011.08.29 0 0 889

Sziasztok!

 

Szeretnék segítséget kérni. Az utóbbi napokban tanultam a nyelv alapjait, illetve a VS 2008 felületével ismerkedtem.

 

Ami nem világos. Létrehozok (vagy megnyitok) egy képet. Ez egy tab-on belüli image box-ban jelenítem meg. Valahogy elérhető a többi fül alatt is?

 

Másik kérdésem, hogy a többnyelvű programnál a menü (context menu) hogyan lehet a többi nyelvre is beállítani?

 

Előre is köszönöm.

csipkebéka Creative Commons License 2011.07.07 0 0 888

Na, eltűnt, amit írtam..:((

Szóval egyrészt köszönöm szépen; mindenképpen ki fogom próbálni

 

Egy újabb kérdés:

 

g1 - egy group, amiben textbox-ok, label-ek vannak

GroupBox1 szintén egy gorup, amiben szintén textbox-ok vannak

 

Azt szeretném elérni, hogy amikor g1 group-on megnyoom az egér jobb gombját, a groupbox1 bal felső sarka ott jelenjen meg, ahol a kurzor éppen áll

 

Erre a következő utasítással kísérleteztem:

 

groupBox1.Location= new Point(mousePosition.X, mousePosition.Y);

 

Nem működik; úgy tűnik, ha én egy "group"-on nyomom meg az egeret, a Location változtatása valahogy a group-hoz alkalmazkodik (annak pozíciójához?) és nem a tényleges kurzorpozícióhoz

 

Egyfajta ellenőrzésképpen beleraktam a következő sort a "mosusedown" eseménybe:

 

tetxBox1.Text( "X: " + mousePosition.X.toString() + " Y: " + mousePosition.Y.toString();

 

Szóval jó koordináták jelennek meg a textbox1 mezőben, ugyanakkor a groupBox1 szarik odakerülni, ahol a kurzor van - össze-vissza ugrál

 

Mintha group-on megnyomva az egeret, a koordináták a grouphoz alkalmazkodnának, nem a képernyő bal felső sarkához

 

.megpróbáltam utánajárni, nem találtam magyarázatot..:(((

Előzmény: Törölt nick (887)
Törölt nick Creative Commons License 2011.07.05 0 0 887

A C# egyik legnagyobb előnye a hatalmas osztálykönyvtár, amivel nagyon gyakran nagyon könynedén megvalósíthatóak a feladatok.

 

Itt pl egy rövid kis rutin, ami rekurzívan XML-be írja a vezérlő fa néhány fontos tulajdonságát:

 

private void SavetoXML()
{
 using (XmlTextWriter writer = new XmlTextWriter("mycontrols.xml", Encoding.UTF8))
 {
  writer.Formatting = Formatting.Indented;
  SerializeToXML(writer, this);
 }
}

private static void SerializeToXML(XmlWriter writer, Control control)
{
 writer.WriteStartElement("Control");           
 writer.WriteAttributeString("Name", control.Name);
 writer.WriteAttributeString("Type", control.GetType().FullName);
 writer.WriteAttributeString("X", control.Location.X.ToString());
 writer.WriteAttributeString("Y", control.Location.Y.ToString());
 writer.WriteAttributeString("Height", control.Height.ToString());
 writer.WriteAttributeString("Width", control.Width.ToString());

 foreach (Control child in control.Controls)
 {
  SerializeToXML(writer, child);
 }

 writer.WriteEndElement();
}

 

Próbáld ki a saját alkalmazásodban, érdemes.

Előzmény: csipkebéka (886)
csipkebéka Creative Commons License 2011.07.05 0 0 886

OK, kösz, elindulok e fogalmak nyomán.

Én még abban élek, ha valamit meg kell csinálni, akkor azt magamnak kell megcsinálni elemi részekből; lassan szokom az objektumorientált ingyombingyomot, na!...:))

 

Hát én egyébként ahogy előállítok egy (alul a képen látható) objektumot, elmentem a pozícióját (ezt minden átmozgatásnál át is írom), a színét (ha változtatom, azt ís módosítom), a "tárolt" elemeit, a hozzá tartozó feliratokat, stb. - objektumtípustól függően egy-egy listában, Így van marék listám. Tárolom külön, hogy melyik objektumtípusból mennyi is van, így aztán amikor elmentem a képernyőt, akkor összeállítok egy olyan stream-et, ami a képernyő (form) x-y méretével  kezdődik, aztán azzal, melyik objektumból hány darab van, aztán egyszerűen jönnek sorban a létező listák elemei, majd ezt a karakterfolyamot elmentem egy .TXT fájlba. Hogy megkülönböztessem az adatokat, minden egyes adat után egy "*" karakter van

Amikor visszaolvasom, sorban ahogy jönnek egymás után a csillagtól csillagig tartó sztringek, azokból felépítem újra az objektumokat - és így az egész képernyőt.

Kicsit munkás volt (nekem) összeállítani ezt a fajta mentést, de működik a dolog...:))

(Csak elvetélt dolog volt "*" karaktert használni "adatelválasztónak", ugyanis ha egy feliratban épp "*" lenne, akkor összeomlik az egész konstrukció....:)))

 

Na mindegy, tanulok tovább....keresek új csontot, amit rághatok....akad a környezetemben épp elég megoldani való probléma...:))

 

Kösz még egyszer!

Előzmény: Törölt nick (885)
Törölt nick Creative Commons License 2011.07.05 0 0 885

Control-tree serialization. Közvetlen támogatás nincs, de nem nagy kaland implementálni. Formátumok tipikusan XML, JSON, esetleg saját, struktúrált adattárolást támogató formátumok, igény szerint. Megvalósítható a .NET bináris tipus-serializációs infrastruktúrája segítségével is. 

 

A jelenlegi implementációd hogyan tárolja a fa struktúrát?

Előzmény: csipkebéka (884)
csipkebéka Creative Commons License 2011.07.04 0 0 884

Bár már a kérdéseimből is látszott eddig is rögtön, hogy dilettáns vagyok, azért megpróbálom értelmesen megfogalmazni mire vagyok most kíváncsi...:))

 

Az alábbiakban ismertettem az önként bevállalt szívásomat (nekem szívás és egyben sikerélmény - de ez mindegy)

 

Szóval dinamikusan előállítok mindenféle objektumokat a képernyőn - ezek jószerivel textbox-ok, label-ek - group-okba rendezve; a számuk előre nem meghatározott.
Ezeket ide-oda húzogatom, majd ez előáállt képernyőállapotot elmentem, méghozzá a következőképpen:

Tárolom az összes előállított objektum összes lényeges adatát listafájlokban, ezekből mentéskor képezek egy streamet és azt elmentem szövegfájlként.
Amikor visszaolvasom - mivel ismert a beolvasott stream szerkezete (naná, én csináltam..:)), sorban előállítom belőle az objektumokat és előáll az elmentett állapot.
Működik, semmi baj vele; meg vagyok elégedve magammal, hogy megcsináltam. De!!!

 

Valaki azt mondta, nem létezik, hogy erre (mármint a mentésre) nincsen kész megoldás; anélkül, hogy igazán értene hozzá, azt mondta, biztos valahol a .NET eleve tárolja az előállított objektumaimat és egyszerűbb (és persze szabványosabb) lenne lementenem valami eleve kész objektum-mentő akármicsodával???

Tényleg nem valószínű..

Szóval - tanulási célzattal (..:)) - az érdekelne, létezik-e olyan algoritmus, ami alkalmas arra, hogy elmentse a programfutás közben előállított objektumaimat anélkül, hogy nekem kellene kitalálnom egy kötött formátumú karaktarsorozatot.

Szóval: merre induljak el ezzel a problémával?

(Még egyszer: nem házifeladat, megoldottam és tényleg működik az, amit elő akartam állítani (meg tudom mutatni a kutyaütő alkalmazásom programkódját - ha valaki egyáltalán kíváncsi lenne rá), puszta kíváncsiságról van szó tehát, arról, miképpen, merre kell elindulni, ha feltételezem, hogy mások ezt a problémát megoldották)

 

Előre is köszönöm ha valaki veszi a fáradságot és válaszol..:))

 

(Hozzáértő, kicsit idegesebb versenyzők nyugodtan kezdjék azzal, hogy "seggfej vagy barátom", de utána mondjanak érdemi választ; hosszú kioktatásra, tanácsra, miszerint csekkeljek be a puszta kíváncsiság okán egy 100 kilós tanfolyamra, vegyek szakirodalmat, mielőtt ilyesminek nekifogok, előbb tanuljak 4 évig, miegyéb nyalánkságra nincs szükségem...:))

Törölt nick Creative Commons License 2011.07.01 0 0 883

"Érdekes, hogy 794-ben még más volt a véleményed. Vagy igényesség sem kell már, netán sorszámok szerint kezdtek fizetni? Mintha a 796 utolsó mondata is aktuális lennen jelen helyzetben."

 

Két teljesen más emberről, és hozzáállásról van szó. Az egyik "programozó", a másik ismerkedik hobby szinten a nyelvvel. Aki hobby szinten érdeklődik, attól nem kell elvárni akadémiai szintet. Aki pedig ebből keresi a kenyerét, attól igen.

Előzmény: digicat (876)
Törölt nick Creative Commons License 2011.07.01 0 0 882

"Ha egy kontrolhoz akarok adni egy másikat akkor emberKontrol.Parent = egyikCsoportPanel, ha másik csoportba teszem az illetőt akkor emberKontrol.Parent = másikCsoportPanel, ha egyik csoportban sincs az illető akkor emberKontrol.Parent = null (vagy gyűjtőPanel), nem érdekel engem a Controls foglalkozzon vele a rendszer ha akar."

 

Az van, hogy ilyenkor pont a Controls-t menedzseled, csak más szintaktikával :-)

Előzmény: digicat (876)
Törölt nick Creative Commons License 2011.07.01 0 0 881

"Miért kellene nekem menedzselni a Controls-t?"

 

Úgy tűnik nem vagy tisztában a Controls szerepével, vagy a dinamikusan létrehozott vezérlők fogalmával.

Ha azt akarod, hogy egy vezérlő megjelenjen a felületen, akkor be kell tenned a Controls-ba. Ha dinamikusan hozod létre/szünteted meg a vezérlőket, akkor neked, manuálisan kell betenned/kivenned a Controlsba/ból.  Ezt nem tudod megspórolni, ezt nem csinálja meg a designer (ha dinamikusan létrehozott vezérlőkről van szó), és nem csinálja meg helyetted a runtime (?!?) sem.

Előzmény: digicat (876)
csipkebéka Creative Commons License 2011.07.01 0 0 880

Igen...köszönöm szépen, most már kezdem én is látni...kényszerűségből....:))

Sebaj, kicsit káromkodtam, aztán megoldottam

Előzmény: Törölt nick (873)
csipkebéka Creative Commons License 2011.07.01 0 0 879

public void OnMouseDown (object sender, MouseEventArgs e)

 

{

 

 

 

}

 

Ha ezt a mezei, legegyszerűbb szerkezetet használom és nem csak a Button-okhoz rendelem, hanem a Group-jaimnak is ez a mousedown esemény-lekezelője, akkor a gép/program időnként téveszt: egy gombot nyomok meg, de úgy érzi, mintha group-on nyomtam volna meg az egeret - és viszont.

 

Ha az alábbihoz hasonló (az egyik itt segítő topiktárstól látott) rövid ingyombingyomot belerakom, akkor el tudom különíteni a gombon történt gombnyomást a goup-on történttől:

 

Button button = sender as Button

if (button != null)

{

.....

}

 

Erre mondom azt, hogy amikor tanulsz - és akkor bármelyik szakirodalmat nézhetem(!) - legfeljebb a fenti szerkezetet találod meg, az alább beírt if-es ingyombingyomot nem, tehát olyat nem találsz, ahol ez le lenne írva - ezzel szemben szó nincs arról, hogy enélkül néha nem tudja a masina elkülöníteni, melyik objektumon nyomtam meg az egeret - legalábbis nem következetes, össze-vissza működik

OK, tudom, tanulmányozzam a sendert, az e-t és egyáltalán az egészc#  filozófiáját.

Meg is teszem

Ezzel nem is lenne bajom, bajom azzal van, amikor a tankönyv mond valamit és baromira nincsen ott, hogy ez (ha többféle objektumon működik) következetlenül fog működni ha nem vacakolok bele külön valamit.

...és akkor úgy érzem, amikor a következetlen működést látom, megint olyasvalamivel lopják az időmet, amit megspórolhattam volna, ha legalább utalnak rá...és ismét peregnek a percek az utánajárással...

 

 

 

Előzmény: digicat (877)
csipkebéka Creative Commons License 2011.07.01 0 0 878

:)))

Nem fogok megsértődni, nyugodtan terelgess megfelelő irányba..:))

Bár ismét hangsúlyozom, nem óhajtok fejlesztővé válni; kb. kétévente akad egy olyan probléma, ami valamiért  vagy megtetszik/érdekelni kezd vagy meg "kell" csinálni és akkor programozni vagyok kénytelen valamilyne nyelven - amit természetesen(?) nem ismerek, már rég elfelejtettem, soha nem voltam benne profi, gyökeresen új verziója van.

 

Igazad van, a Location úgy működik, ahogy....

De ha az ember nem óhajt hihetetlen mértékben elmélyedni az isteni C# rejtelmeiben, és adott esetben a legegyszerűbbnek az tűnik (az is a legegyszerűbb módszer az esetek többségében), ha egy példában látott utasítást egyszerűen bemásol, akkor érthető módon megütődik, ha egy állítólagosan működőképes példából kiszedi mondjuk az allábbi két sort és azonnal hibát jelez már a szerkesztő-fordító is:

 

objA.Location.X=34;

objA.Location.Y=56;

 

Ilyenkor mit csinál a "helyes irányba terelendő" dógozó?

 

Szakirodalomhoz fordul: először jobban (illetve először) megnézi, hogy szerkesztés közben mit is ír maga a "gyors-segítő sárga keret" - ez azt látja az ermberfia, hogy set/get....ekkor a dógózó kicsit ideges lesz, mert ha más property-k simán a fenti szintaktikával megváltoztathatók, akkor ez most mi a tűróért nem?!

Ekkor elkezd ugye az ember komolyabban utánanézni, detektálja, hogy a neten kb. 20.000 hozzá hasonló kutyaütő teszi fel azt az ostoba kérdést, hogy a fenti két utasítás miért hibás és fogjuk rá, elég hamar talál valakit, aki jó példát közöl a Location megváltoztatására.

Ha a dógozóban még mindig buzog a hozzáértés utáni vágy, akkor elkezdi tanulmányozni a Location-t részletesebben egy hiteles fórumon.

Szóval a "helyes irányt" illetően már részben rajta vagyok a témán: legalább utólag utánamegyek, merthogy kénytelen vagyok...

 

...csak tudod úgy érzem, túl sok felesleges idő ment el ezzel az egyetlen vacakkal és mindez azért, mert valaki egy (egyetemi!) kezdőknek való "szakirodalomban" szar példát hozott (nem próbálta ki) és félrevezetőnek érzem a gyorssegítség "set/get" megjegyzését is, ami azt érzeékelteti a hozzá nem értővel, hogy ugyanolyan módon állítható propertyvel áll szemben, mint a többi

..és túl sok ahhez hasonló aprósággal van ez így - így aztán úgy érzem, néha joggal szidom..:))

 

 

De mondok más példát, s igazad lesz ezúttal is, ha azt mondod, előbb nézzek utána részleteiben:

 

Az alább látható az a képernyőkép, amit beraktam.

Nos, a dinamikusan előállított "group" második felirata egy "label"-en van, a többi textbox objektum

 

Generáltam  egy, a group-hoz rendelt "mouseEnter" esemény-t, ami azzal indul, hogy a kurzor "kézzé" változik, illetve egy mouseLEave eseményt, ahol is visszaváltozik.
Nincs is ezzel semmi baj, alapvetően működik is a dolog, csak a torka véres:
Ha group - illetve azon belül a textbox(ok) - felett van az egér, "kéz" marad a kurzor, ezzel szemben ha a group"-ban lévő "label" fölé húzom az egeret, akkor visszaváltozik - mitha csak lementem volna a group-ról...

Biztosan természetes, hogy ennek így kell lennie.
Én mindenesetre azt vártam volna, hogy a gorup egészére igaz az esemény és a label e tekintetben pontosan úgy működik, mint a group-ban lévő tetxbox(ok).
Eszembe sem jutna előbb megnézni, vajon ez így van-e, így lesz-e, csak akkor kezdek el utánajárni, amikor látom, hogy ez baromira nem így van
OK, igazad van, nem úgy működik, ahogy én elképzeltem.
Nyilván más logika szerint építették fel a label-t és ez így logikus
Ugyanakkor én úgy érzem, joggal hőbörgök...:))...megint egy olyan apróság, ami tízperceket vesz el az ember életéből

---

 

A gépre, amin használni óhajtják az én egyedülállóan zseniális alkalmazásomat, semmit nem lehet installálni (tehát szóba sem kerül holmi ingyenes adatbázis-tároló sem), a programnak tehát önmagában futtathatónak kell lennie mondjuk egy pendrive-ról, semmit nem lehet a gépre rátölteni a netről bármennyire is ingyenes.
(No meg még mindig ott tartok, hogy még ha akadna is ezt a funkciót megvalósító alkalmazás, azt valszeg sokkal bonyolultabb lenne kezelni, mint az én speciálisan erre a célra kifejlesztett, téglalapokat huzgáló és csoportosító alkalmazásomat.)

 

---

Meg aztán: Miért is keresgélnék erre a feladatra alkalmas programot?! A francé' akarsz arról lebeszélni, hogy szakszerűen képződjek és magam állítsam elő a magam programját és ezzel sikerélményeim legyenek?
Vagy féltékeny vagy, félsz, hogy minnyá többet fogok tudni erről az egész C#-akármicsodáról?!...:))))

Előzmény: digicat (874)
digicat Creative Commons License 2011.06.30 0 0 877

"Hát baromira nem bír üzembiztosan működni (legalábbis ha a neten fellelt péládt írom be); csak akkor működik, ha külön még mindenféle vizsgálatot végez az ember, vajon tényleg arra kattintottam-e, amire..."

Erre tudnál példát adni?

A neten talált példákkal pedig nagyon óvatosan kell bánni, az emberek képesek a lehető legrosszabb példát másolni millió példányban, amitől az úgy fog látszani mintha jó lenne.

Előzmény: csipkebéka (871)
digicat Creative Commons License 2011.06.30 0 0 876

Miért kellene nekem menedzselni a Controls-t? Megteszi helyettem a rendszer (designer vagy runtime) ha akarja, ez a dolga, az enyém meg az, hogy a saját dolgaimat menedzseljem, nem keverem a kettőt.

Ha egy kontrolhoz akarok adni egy másikat akkor emberKontrol.Parent = egyikCsoportPanel, ha másik csoportba teszem az illetőt akkor emberKontrol.Parent = másikCsoportPanel, ha egyik csoportban sincs az illető akkor emberKontrol.Parent = null (vagy gyűjtőPanel), nem érdekel engem a Controls foglalkozzon vele a rendszer ha akar.

 

A saját lista előnyeit és a Controls hátrányait és a korlátait is leírtam már. Ha érdekel olvasd el, ha csak unalomból kötekedsz akkor ahoj poplacsek.

Konkrétan ennél a feladatnál sem jó a Controls mert a gombok más-más kontrolhoz tartoznak attól függően hogy melyik csoportban vannak ezért mindig másik Controls listában vannak.

 

A C# (és az életben sok más) megismerése lehetetlen az elméleti alapok nélkül, lásd pl. Control.Location. Nem csak ezt, hanem sok mást sem lehet tapasztalati úton megismerni (pl. immutable osztályok, azok is okozhatnak meglepetést).

És ennek semmi köze a profisághoz, ez a belépőszint. Érdekes, hogy 794-ben még más volt a véleményed. Vagy igényesség sem kell már, netán sorszámok szerint kezdtek fizetni? Mintha a 796 utolsó mondata is aktuális lennen jelen helyzetben.

 

A Location (struct, immutable) miért rusnyaság? Megvan azoknak a helyük, csak kell tudni hogy melyik mire való és hogy működik. Középút nincs, vagy tudod vagy szívsz (és szidod magad helyett a nyelvet és a miniszterelnököt).

Előzmény: Törölt nick (869)
digicat Creative Commons License 2011.06.30 0 0 875

Felnőtt ember, én úgy gondolom képes egyedül is eldönteni mit akar, nem kell helyette döntsél sem te, sem én.

Előzmény: Törölt nick (868)
digicat Creative Commons License 2011.06.30 0 0 874

"miért nem megjegyzés nélkül segítenek az embernek"

Már írtam, csak akkor kérdezz ha képes vagy elfogadni a válaszokat.

Megkérdezted honnan lehetett volna megtudni (sok kérdőjel és felkiáltójel használatával), erre kaptál választ.

 

"igazán élvezetesnek azt találom, amikor minden egyes kósza bittel el tud számolni az ember"

Akkor rossz irányból közelítetted meg a feladatot (feltéve hogy nem akarod a hardvert is magad csinálni):

először kell írj egy BIOS-t, majd egy oprendszert, majd egy nyelvet, utána egy fejlesztőeszközt, és ha ez mind megvan akkor foglalkozhatsz a gombok tologatásával.

Igen, ez is irónia volt.

 

"és végképp utálom, amikor nem a leírásnak megfelelően működik valami."

A Location rossz példa, az a leírás szerint működik csak te értelmezted hibásan a leírást. 

A Location property írható ahogy az MSDN állítja és állításával változik a kontrol pozícója is, ennek viszont semmi köze ahhoz hogy a Location.X/Y állításának van-e bármilyen hatása a kontrol állapotára. .Net 4-ben le sem fordul:

Cannot modify the return value of 'System.Windows.Forms.Control.Location' because it is not a variable

 

Ha már ott voltál a Control.Location leírásánál akkor megnézhetted volna a többi tulajdonságot is, és valószinűleg találtál volna olyant hogy Left és Top, ezek valók arra hogy egy kontrol pozícióját állítsd (ne vacakolj Location = new Point(10, Location.Y) jellegű megoldásokkal, lámáknak való).

Control.Left Property:

Gets or sets the distance, in pixels, between the left edge of the control and the left edge of its container's client area.

Példa is van, célzottan, nem véletlenül.

 

Rengetegszer leírtam sok helyen, sok embernek: mikor elkezdesz használni egy osztályt fektess bele 5-10 percet abba, hogy elolvasod milyen metódusai és tulajdonságai vannak. Enélkül hogy akarod használni?

 

"honnan a fenéből kellene tudnom"

Ismét meg fogsz sértődni:  megtanulod mi a különbség a struct és az osztály között (senki nem született ezzel a tudással), ebben a konkrét esetben pedig elég lett volna elolvasni a leírást, részletesen le van írva (a lexikonod vagy hiányos vagy rossz oldalon nyitottad ki ha ezt nem találtad meg benne). 

Nem kell ehhez véletlen találni egy példát, még azt is írja hogy melyik propertyket kell állítani (Left, Right, Top, Bottom).

Control.Location Property

Because the Point class is a value type (Structure in Visual Basic, struct in Visual C#), it is returned by value, meaning accessing the property returns a copy of the upper-left point of the control. So, adjusting the X or Y properties of the Point returned from this property will not affect the LeftRightTop, or Bottom property values of the control. To adjust these properties set each property value individually, or set the Location property with a new Point.

Itt is van példa, nem véletlenül.

 

Tehát ha valóban érdekelnek a miértek akkor ott vannak a válaszok a dokumentációban, nem kell hozzá semmi véletlen csak az F1 gomb megnyomása (próbáld ki: írd be button1.Location majd vidd a kurzort a Location-re, nyomd meg az F1 gombot és pár másodperc múlva olvashatod a leírást).

 

"De hát épp ezt teszem"

Nekem fura a rendszered. Ha valami nem működik akkor nem a dokumentációt kezded olvasni hogy megtudd mit rontottál el, hanem panaszkodsz hogy a Control.Location hibás.

 

"és egyébként sem lehet felinstallálni egy ellenőrzött hálózatra jogtisztátlanul."

Eszembe sem jutott hogy szoftvert lopnál. Meglepődnél ha megnéznéd mennyi ingyenes szoftver létezik, webes is amiket még installálni sem kell.

 

"mert ahol használni kellene, nem engednék, hogy adatbázis-tárolót elérjen az ember"

Adatbázis alatt nem kell egyből százmillió forintos Oracle-re gondolni amelyik 2 millió forintos hardveren fut.

Egy Excel (OpenOffice) tábla is lehet adatbázis, továbbá van rengeteg lokális és beágyazott adatbáziskezelő (ingyenesek is, még Oracle és MS SQL is van ingyenes). Ami beágyazott azt installálni sem kell. Vagy ott van a .Net DataSet, az tud fájlba menteni.

 

"az, hogy végre azt csinálja a gép, amit elvárok tőle...és utálom, ha nem így van"

És ezt úgy tervezed elérni, hogy ... szidod az összes programozási nyelvet mert nem úgy működnek ahogy te elképzelted?

 

"elég nehéz engem elhajtani, úgyis jövök, ha valamit nem tudok"

Én nem akarlak elhajtani, csak kicsit helyesebb útra téríteni.

 

Az elméleti tudás egyébként nem nyelvfüggő, pl. a value type (struct) és immutable fogalmakkal más programozási nyelvekben is találkozhatsz, tehát ha egyszer megtanulod akkor sokszor felhasználhatod.

 

További sok sikert és kérdéseket ;-)

Előzmény: csipkebéka (871)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!