Hirdetés
Új hozzászólás Aktív témák
-
Jhonny06
veterán
Sziasztok!
Most került hozzám egy 2. monitor és úgy szeretnék dolgozni, hogy az egyik fájl az egyik monitoron legyen megnyitva (meg az egész VS úgy, ahogy szokott), a másikra pedig áthúznék egy másik fájlt, akár teljes képernyős nézetben, de ezt így elvileg nem lehet. Ha kétszer nyitom meg a VS-t, akkor ugye ott vannak a hozzáférési hibák, ez tehát kizárva. Nem akarom összevonni a két monitort, tehát az sem játszik, hogy az egyik tabra jobb egérgombbal kattintva vertikális nézetbe állítom őket.
Valami ötlet?
-
Jhonny06
veterán
Úgy kell elképzelni, mint amikor egy beállításokkal kapcsolatos tabot bárhova húzhatsz, támogatva van a több monitoros megoldás, simán átmegy, ezt kóddal miért nem lehet megcsinálni?
Magyarul azt szeretném, hogy dockable legyen.
[ Szerkesztve ]
-
Jhonny06
veterán
-
Jhonny06
veterán
-
[ Szerkesztve ]
-
Jhonny06
veterán
Nem állítottál be visszatérési értéket a függvényednek, azaz void. Érték szerinti paraméterátadásnál csak egy másolat készül a változóról, amit a függvénybeli értéke fel is vesz, de visszatérésnél a main() függvényben az eredetit írod ki, ami nem kapta meg. A tömböt dinamikusan foglaltad le, a függvényben egyből a memóriába írod, így az jó. A number változódat ne érték szerint add át, hanem mutatóval. Vagy legyen a függvényednek visszatérési értéke és akkor az x-el térj vissza.
-
Jhonny06
veterán
Pl.:
static int m(int x, int[] y)
{
x = 3;
y[0] = 3;
return x; //!!!!!!!!!!
}
static void Main(string[] args)
{
int number = 0;
int[] numbers = new int[1];
System.Console.WriteLine("number is " + m(number, numbers) + " and numbers[0] is " + numbers[0]);
Console.ReadLine();
}[ Szerkesztve ]
-
Jhonny06
veterán
1., A string egy karakterlánc, képzeld el úgy, mint egy tömböt, aminek nem egész (int) a típusa, hanem karakter (char). Egy string elemét is el tudod érni úgy, mintha karaktertömb lenne, azaz:
string nev = "Marci";
esetén: a nev 0. eleme (azaz az első elem) egy M betű lesz.
A többit szerintem fölösleges kitárgyalni. Nem tudom, hogy mit akarsz ezzel a kóddal, de egy string hosszát így tudod meghatározni (a String osztály minden objektuma el tud érni bizonyos tagfüggvényeket, a Length a hosszát adja vissza, angolból ismerős lehet), például:
String isbn = Console.ReadLine();
Console.WriteLine(isbn.Length);[ Szerkesztve ]
-
Jhonny06
veterán
Ez a lehető legrosszabb tanács volt. Az a baj a C#-al, hogy sok minden már egyenesen túl egyszerű benne. Jobb, ha "szarakodik" azzal a bubble sort algoritmussal, mert ezekből tanul az ember, nem abból, hogy a beépített sort függvényekkel rendezget. Ha később át kell állnia C-re vagy C++-ra, nagy bajba lesz az ilyenek miatt. Vagy azt mondják, hogy VS meg IntelliSense nélkül jegyzettömbben írj meg valamit..
[ Szerkesztve ]
-
Jhonny06
veterán
Ennek a get/set-nek van valami lényegi értelme? Most tanultuk OOP-n, de ha értéket akarok rendelni egy változóhoz, simán hivatkozom rá, minek külön függvény, vagy úgy egyáltalán, minek ezzel foglalkozni? Get-el ugyanez. Én megyek el valami mellett?
-
Jhonny06
veterán
Sziasztok!
Egy osztály tagfüggvényében ki tudom íratni egy adott példány adatait anélkül, hogy a példányt átadnám a függvénynek paraméterként? Érzem, hogy hülye kérdés, de csak van erre valami megoldás. Virtuális pofonokat elfogadok.
[ Szerkesztve ]
-
Jhonny06
veterán
Van egy osztályom, annak tagváltozói. A konstruktorban beállítom, hogy ezek példányosításkor kapjanak egy bizonyos értéket. Létrehozok egy tagfüggvényt, ami ezeket egy string-be összevonva adja vissza, minden példányról külön, azaz példányszintű a függvény. Létrehozok egy új példányt és meghívom a függvényt. A kérdés arra vonatkozott, hogy muszáj ennek a függvénynek átadni paraméterként az adott objektumot (ami meghívja), hogy el tudjam érni az adott objektum tagváltozóit, vagy van valami okos trükk erre (mint a tagváltozókra a this)?
[ Szerkesztve ]
-
Jhonny06
veterán
Nem az adott objektum, az adott példány. Nem egy osztály tagváltozóit akarom lekérdezni a függvénnyel, az nyilván evidens. Hanem létre akarok hozni egy függvényt, amelyet minden egyes példány elér és kiírja róla az infókat. Ezzel kapcsolatban kérdeztem azt, hogy a példány paraméter átadása nélkül el lehet-e érni a példány tagváltozóit a függvényben, de akkor gondolom nem.
Itt van konkrétan: [link] (30. sor)
[ Szerkesztve ]
-
Jhonny06
veterán
Sziasztok!
Van egy feladat, amiben elakadtam. Idáig sikerült megírni, a következő lépést viszont nem értem.
"Az Adatbázis példányosításkor hozzon létre véletlenszerű Hallgatókat és azokból 20-30 darabot (maga a darabszám is legyen véletlenszerű)."
Megvan az üres Adatbázis osztályom. Példányosításkor, azaz nyilván a konstruktorba kell valamit mókolni. Az is világos, hogy az előző osztály (Hallgato) objektumaiból kellene egy tömb, hozzá egy Random érték, 20-30 között. De ezt hogy valósítom meg? Adattagként létrehozom az objektumtömböt és a konstruktorban egy for ciklusban kapják meg az "értéket"? Meg ezentúl a Adatbazis osztály példányával hogy érem el, mint tömb? Magát a szintaktikáját értem a dolognak, "csak" a logikáját nem, hogy mit akar megvalósítani. Valami ilyesmire gondoltam (a Random sincs túl jó helyen ):
class Adatbazis
{
public static Random rand_adatbazis = new Random();
public int tomb_hossz = rand_adatbazis.Next(20, 30);
private Hallgato[] tomb;
public Adatbazis()
{
for (int i = 0; i < tomb_hossz; i++)
{
tomb[i] = new Hallgato();
}
}
}[ Szerkesztve ]
-
Jhonny06
veterán
válasz Jester01 #2605 üzenetére
A konstruktorba írva az egészet jó lenne, vagy muszáj az osztály adattagjaként megmaradnia? Igazából ezt így korábban is sikerült létrehozni, de a logikáját nem értem, hogy ezek után egy Adatbazis példánnyal mit lehet kezdeni, hogy lehet elérni a másik osztály objektumait?
class Adatbazis
{
public Adatbazis()
{
Random rand_adatbazis = new Random();
int tomb_hossz = rand_adatbazis.Next(20, 30);
Hallgato[] tomb = new Hallgato[tomb_hossz];
for (int i = 0; i < tomb_hossz; i++)
tomb[i] = new Hallgato();
}
} -
Jhonny06
veterán
Fölösleges az az a és b változó az elején, az if elágazásba egyszerűen x == 1-et és x == 2-t írj. Amúgy meg az if blokkokat érdemes teljes egészében elválasztani, mert bár egyértelműen továbbfut, okozhat kellemetlenséget és az olvashatósága sem a legjobb. Nekem így lefut szépen.
[ Szerkesztve ]
-
Jhonny06
veterán
válasz Dr. Student #2663 üzenetére
Bekérsz egy számot, majd írsz egy for ciklust ami addig a számig fog menni. A for cikluson belül lesz egy feltétel, ami megvizsgálja, hogy az adott index érték (i) osztható-e maradék nélkül a bekért számmal. Ha igen, akkor a program elején létrehozott mondjuk db nevű változódat növeled 1-el. Ha a ciklus végén a db == 2, akkor a szám prím. Nyilván vannak hatékony algoritmusok erre, de ez a legegyszerűbb, "no-brainer" fajta.
[ Szerkesztve ]
-
Jhonny06
veterán
válasz Dr. Student #2666 üzenetére
Most akkor ciklus amíg kell, vagy nem? Mert az elején azt írod, aztán meg hogy azért vontak le pontot. Mindegy, while-al is csak úgy lehet, ha van egy index változód, amit mindig növelsz. Belinkelhetnéd a diát.
while(i != szam)
{
...
i++;
}vagy
for(int i = 0; i < szam; i++)
{
...
}[ Szerkesztve ]
-
Jhonny06
veterán
válasz Dr. Student #2668 üzenetére
Ja hogy Sergyán (Ugyanarra az előadásra járunk) Amúgy igen, a "ciklus amíg" a while-ra vonatkozott, tehát az előző hsz-embe lévő első változattal jó lesz a prímszámos feladat. Ezeket az algoritmusokat egyébként nem kell szó szerint betanulni, mert sok fölösleges dolog van bennük, ami megzavar.
Illetve a while(i != szam) azért nem jó, mert önmagát már nem fogja figyelembe venni. Tehát inkább while(i <= szam) és ezzel jó.
A teljes programkód:
[ Szerkesztve ]
-
Jhonny06
veterán
válasz Neil Watts #2721 üzenetére
ASCII kódtáblát ajánlom figyelmedbe, char típusú változóval lehet trükközni, mondjuk számként reprezentálni egy betűt.
Pl.: char c = (char) 100;
Ugyanúgy használhatod a Next függvényt az intervallum megadására, csak konvertálni kell a típusok között.
-
Jhonny06
veterán
Sziasztok!
WPF-be hogy lehet azt megoldani, hogy _egy_ függvényt írok mondjuk 9 imageBox-nak és mindegyikre ha rákattintok, akkor ugyanazt a képet hozza elő (mindegyikbe külön-külön)? Gomboknál ugye meg lehet a ((Button)sender)-el csinálni, de itt nem. Nincs valami általános megoldás erre (ami nem csak imageBox-al működik, hanem bármilyen control-al)? Mert ha megírom az elsőt és azt alkalmazom mindegyikre, akkor mivel az első nevével jött létre, mindegyik arra fogja alkalmazni. Naponta belefutok ebbe és kurva idegesítő.
[ Szerkesztve ]
-
Jhonny06
veterán
Sziasztok!
Egy WPF-es alkalmazásnál valahogy le lehet tiltani egyszerűen az átméretező gombot? A kis méret és a bezárás maradna, csak mivel egy kis ablakos alkalmazás lenne, ezért nem skálázódnának a control-ok (illetve WPF-en belül automatikusan nyilván igen), mármint nem lehetne nagyítani, így nincs értelme és csak megzavarná a felhasználót. Találtam mindenféle bonyolult kódsort, esetleg van egy egyszerű property erre?
Tehát a középső gombról van szó:
[ Szerkesztve ]
-
Jhonny06
veterán
Vicces? Azt a pár controlt behúzod a toolbox-ból és oda helyezed, ahova akarod. Ebbe nem az UI a lényeg, hanem a logika (XAML-be kézzel írod be pl. az egyes button-ok koordinátáit és mindig nézed design nézetbe, hogy jó-e? ). Amúgy nem az én pályám a C# és WPF, csak azért foglalkozom vele most, mert muszáj.
-
Jhonny06
veterán
válasz petersonal #3049 üzenetére
Azt is tolom, de nem.
-
Jhonny06
veterán
Sziasztok!
Ezt hogy tudnám átkonvertálni, hogy működjön (utolsó sor)? Régen mintha castolással összejött volna, de most sehogy se megy.
Control s = sender as Control;
if (game.Choice == 'X')
s.BackgroundImage = "\\images\\char_x.png"; -
Jhonny06
veterán
válasz Peter Kiss #3116 üzenetére
Nem ez volt az, de így is megy, köszi.
-
Jhonny06
veterán
Az lehet, hogy nem tudom elérni a DispatcherTimer classt? A System.Windows.Threading-en belül van, de nem tudok rá hivatkozni using-al. WindowsBase.dll assembly-ben van, valahogy hozzá kéne adni referenciaként a Visual Studio-ban?
-
Jhonny06
veterán
válasz WonderCSabo #3126 üzenetére
Köszönöm.
-
Jhonny06
veterán
Egy pictureBox tartalmát hogy tudom törölni? Így próbáltam, de semmi.
pictureBox1.Image = null;
vagy
pictureBox1.Invalidate();
Egyik se megy. Próbáltam utána frissíteni a Formot, de még mindig benne van a kép. Ráadásul akkor újratölti az egész progit, ami nekem nem jó, mert van egy felugró ablak az elején, amit értelemszerűen nem akarok, hogy újra megjelenjen, mert annak csak a program indításakor kell felugrania. Bár ezt ki tudom védeni egy segédváltozóval, nem egy nagy kaland, de maga a kép akkor se tűnik el. Köszi.
[ Szerkesztve ]
-
Jhonny06
veterán
Egy formon belül lehet használni egy másik form eseménykezelőjét? Mert ugye csak a sajátjait látja alapból. Próbáltam publiccá tenni, de nem megy.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Anglia - élmények, tapasztalatok
- Vodafone otthoni szolgáltatások (TV, internet, telefon)
- Wise (ex-TransferWise)
- Gaming notebook topik
- PlayStation 5
- Projektor topic
- Call of Duty: Black Ops 6
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Hardcore café
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- További aktív témák...
Állásajánlatok
Cég: HC Pointer Kft.
Város: Pécs
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest