játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5448
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2520

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] > 40 < [45] [46]
storedenen - Tag | 22 hsz       Online status #48942   2007.03.09 14:34 GMT+1 óra  
Idézet
BerbeckU :
Üdv! Bővítgetem a WindowsForms-os progimat, jelenleg a mentés és betöltés lehetőségével próbálkozom.
Az adatokat DataGridView-ban tárolom. Azt már tudom, hogy kell a mentési és betöltési tallózó ablakot megnyitni, abban fájlokat filterezni, és lekérni a betallózott fájl elérési útvonalát.
A kérdésem az lenne, hogy hogyan lehet kinyerni a táblázatban szereplő adatokat a megadott oszlopokból rekordonként, majd azokat jól rendezve egy fájlba kiírni, amiből később be lehet tölteni. Tehát valami ilyesmire gondolok:

Kód:
;;;;;; 1. sor ;;;;;;
Az első sor valamely oszlopában lévő adat
Az első sor valamely másik oszlopában lévő adat
Az első sor valamely másik ozlopában lévő adat

;;;;;; 2. sor ;;;;;;
Az második sor valamely oszlopában lévő adat
Az második sor valamely másik oszlopában lévő adat
Az második sor valamely másik ozlopában lévő adat

...




Szérializálás: http://www.codeguru.com/columns/DotNet/article.php/c6595/#more
Jó ha végigolvassa az ember, mert ez még a .Net alapismereteihez tartozik.

   
Orphy - Törzstag | 1893 hsz       Online status #48639   2007.03.05 04:37 GMT+1 óra  
Valahogy így:

Kód:
foreach( DataRow dr in dataView.Rows )
{
   string adat = dr["oszlop neve, vagy id-ja"].ToString();
}


Lehet h nem teljesen okés, fejből írtam, de így kell csinálni.
Ha az oszlopokat nem akarod kézzel, akkor ugyanezen az elven végig lehet menni az oszlopokon is!
   
BerbeckU - Tag | 506 hsz       Online status #48508   2007.03.03 03:46 GMT+1 óra  
Üdv! Bővítgetem a WindowsForms-os progimat, jelenleg a mentés és betöltés lehetőségével próbálkozom.
Az adatokat DataGridView-ban tárolom. Azt már tudom, hogy kell a mentési és betöltési tallózó ablakot megnyitni, abban fájlokat filterezni, és lekérni a betallózott fájl elérési útvonalát.
A kérdésem az lenne, hogy hogyan lehet kinyerni a táblázatban szereplő adatokat a megadott oszlopokból rekordonként, majd azokat jól rendezve egy fájlba kiírni, amiből később be lehet tölteni. Tehát valami ilyesmire gondolok:

Kód:
;;;;;; 1. sor ;;;;;;
Az első sor valamely oszlopában lévő adat
Az első sor valamely másik oszlopában lévő adat
Az első sor valamely másik ozlopában lévő adat

;;;;;; 2. sor ;;;;;;
Az második sor valamely oszlopában lévő adat
Az második sor valamely másik oszlopában lévő adat
Az második sor valamely másik ozlopában lévő adat

...

___________
A lelkesedés az, ami a tudásnak ízt ad...


   
ShAdeVampirE - Törzstag | 1313 hsz       Online status #48504   2007.03.03 02:32 GMT+1 óra  
Asylum: pls. regeld be a projectet és ott beszéljétek meg!
   
Asylum - Törzstag | 5448 hsz       Online status #48500   2007.03.02 18:14 GMT+1 óra  
Megoldva...viszont megint egy csomo pixelenkénti munka Bocs az offért.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5448 hsz       Online status #48499   2007.03.02 17:46 GMT+1 óra  
Az vajon mért van hogy 3ds maxban renderelek 43x43 as felbontásba, viszont a progi jóval nagyobbként tölti be kivéve ha painttel átmentem a paint bmp jébe Ez gáz mert szeretném ha élesebb lenne picit
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5448 hsz       Online status #48490   2007.03.02 14:02 GMT+1 óra  


bug javítva. Most már az azonos hasznú mezők között véletlenszerűen választ.

[url]http://people.inf.elte.hu/asylum/programs/Cross5(beta).zip[/url]

A 9x9 es nem tetszett mert túl nagy volt.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
gaborlabor - Moderátor | 4449 hsz       Online status #48483   2007.03.02 13:48 GMT+1 óra  
én 3* játszottam ellene, de mindháromszor döntetlen lett. nem kicsi az a 7*7es pálya? 9*9-esen könnyebben nyerhetne az egyik fél..
ja, és kicsit átírtam a highscores.txt-t. rajta kellett lennem.

   
Asylum - Törzstag | 5448 hsz       Online status #48482   2007.03.02 13:45 GMT+1 óra  
Azaz mégse, találtam egy bugot
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5448 hsz       Online status #48471   2007.03.02 12:06 GMT+1 óra  
Szinek javítva és...béta
[url]http://people.inf.elte.hu/asylum/programs/Cross5(beta).zip[/url]
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5448 hsz       Online status #48402   2007.03.02 01:37 GMT+1 óra  
Ááá most vettem ésre h xp alatt minden tökmás szinü...nah akkor átkell szinezni őket.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5448 hsz       Online status #48371   2007.03.01 11:06 GMT+1 óra  
Mert 49 gombot tetü lassan tölt be (illetve nem lassu de látszik és sztem több memoria is).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Orphy - Törzstag | 1893 hsz       Online status #48370   2007.03.01 11:01 GMT+1 óra  
Ügyes

Azt viszont még mindig nem értem, hogy miért game-loop-pal csináltad, és miért nem eseménykezelten Button-okkal...
   
TPG - Tag | 3402 hsz       Online status #48359   2007.03.01 09:31 GMT+1 óra  
Idézet
Asylum :
Röhögni fogtok
Nem tudom kinyirni Csak dönteltelnre tudom kiügyeskedni de elverni nem
Nemtom mi az algo neve de hatásos...csak sok benne a ciklus

http://www.prog.hu/cikkek/?aid=415


Nekem sikerült megverni, igaz hogy kevésszer, de sikerült.
Reality is almost always wrong. - House

   
Asylum - Törzstag | 5448 hsz       Online status #48345   2007.03.01 08:31 GMT+1 óra  
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Ati500 - Tag | 119 hsz       Online status #48337   2007.03.01 08:04 GMT+1 óra  
Az amúgy nem feltétlen baj, ha sok benne a ciklus, nekem oldott már meg a c# olyan meredek dolgokat is 1 mp alatt, hogy hajaj... Pedig nincs túl erős gépem.
Szóval ha vmihez sok ciklus kellene és máshogy nem lehet, nyugodtan használd, mások is használják, mégsem lassul a progi...

   
Asylum - Törzstag | 5448 hsz       Online status #48324   2007.03.01 06:54 GMT+1 óra  
Röhögni fogtok
Nem tudom kinyirni Csak dönteltelnre tudom kiügyeskedni de elverni nem
Nemtom mi az algo neve de hatásos...csak sok benne a ciklus

http://www.prog.hu/cikkek/?aid=415
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
~Cre@tine~> - Tag | 702 hsz       Online status #48318   2007.03.01 04:42 GMT+1 óra  
Idézet
Asylum :
Találtam egy érdekes algoritmust: nem keresőfát használ mégis jónak tűnik. Egy baja van: sok ciklus van benne (mégis pillanatok alatt lefut...tud vmit eza C# ) már csak jól meg kell írni és irigykedhetnek a kollégák a suliban


Amőbára a minmax algoritmus pont jó. Próbálgatja a gép a lerakott elemek körüli mezőket és az adott állást leosztályozza, aztán kiválasztja a legjobb pontot és kész. Bár ilyen 7*7-es táblához olyan nagy algoritmus nem kell szerintem.

   
Asylum - Törzstag | 5448 hsz       Online status #48298   2007.03.01 00:44 GMT+1 óra  


Naja csak előfordulhat hogy zh n linux alatt kell megirnom a progit szal aztis gyakorolni kéne Nekem csak az a bajom h ugyanazt kell megirnom...irtam a gyakveznek is de aszondta h jobb ha megszokom LOL
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
kicsy - Szerkesztő | 4304 hsz       Online status #48292   2007.02.28 15:24 GMT+1 óra  
Idézet
Asylum :
Amugy szerintetek is baromság h UGYANEZT linux alá is meg kell irnom? ugyanugy dosival meg mindennel...300 feladatbol nem képesek egy másikat adni...megáll az ace



Mono
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
Asylum - Törzstag | 5448 hsz       Online status #48288   2007.02.28 14:28 GMT+1 óra  
Találtam egy érdekes algoritmust: nem keresőfát használ mégis jónak tűnik. Egy baja van: sok ciklus van benne (mégis pillanatok alatt lefut...tud vmit eza C# ) már csak jól meg kell írni és irigykedhetnek a kollégák a suliban

Amugy szerintetek is baromság h UGYANEZT linux alá is meg kell irnom? ugyanugy dosival meg mindennel...300 feladatbol nem képesek egy másikat adni...megáll az ace
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
~Cre@tine~> - Tag | 702 hsz       Online status #48279   2007.02.28 13:47 GMT+1 óra  
Ilyen kis táblánál túl nagy AI nem kell. Egyszerűen végigzongorázod a lehetőségeket és kész. A CPU terhelést nem is néztem. Nálam a tili-toli alig eszik 2-3% ot. Szerintem ilyen kis táblás játékhoz elég lett volna egy sima gomb vagy pictureBox mátrix és kész.

   
Asylum - Törzstag | 5448 hsz       Online status #48238   2007.02.28 07:45 GMT+1 óra  
Énis tudom h hiányzik és akartam is irni de...ez eaf beadando
Amugy meg sajni még nem tanultam mesterséges intelligenciát De azért körülnézek
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Orphy - Törzstag | 1893 hsz       Online status #48220   2007.02.28 04:11 GMT+1 óra  
Így pofára nem rossz, tetszenek a köreid, és az x-eid.

Amit Cre@tin is mondott, az AI hiányzik.
Én ehhez még annyit tennék hozzá, hogy egy ilyen kis egyszerű játéknál nem tartom indokoltnak, hogy megegye a procit 100%-ra. A game loop helyett próbálj meg valami eseményvezérelt működést megvalósítani, nem kell folyamatosan renderelni, csak ha valami változik.
A dokumentáció nálam 404-es hibát dobott, és sokáig volt "fehérember várni homokóra" effektus, amire megjelent az Explorer ablaka.
   
~Cre@tine~> - Tag | 702 hsz       Online status #48219   2007.02.28 03:46 GMT+1 óra  
Ez jó de az AI az hol van? Így a játék teljesen olyan, mitha sima gombok lennének feltéve és a background kép meg változik ha rákattintok.

   
Asylum - Törzstag | 5448 hsz       Online status #48182   2007.02.27 11:44 GMT+1 óra  
Lehet tesztelni: http://people.inf.elte.hu/asylum/programs/Cross5.zip
Tuti vannak benne még bugok de nincs erőm az összes lehetöséget végigprobálni
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5448 hsz       Online status #48171   2007.02.27 10:53 GMT+1 óra  
Mármajdnemkész

C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Orphy - Törzstag | 1893 hsz       Online status #48114   2007.02.27 00:20 GMT+1 óra  
Úgy, hogy az új ablakot nem .Show()-al, hanem .ShowDialog()-gal nyitod meg.
   
Asylum - Törzstag | 5448 hsz       Online status #48106   2007.02.26 14:49 GMT+1 óra  
Áááh téleg már irtad bocs, kösz, müxik

A fókuszos ez volt: Ha az alkalmazásban felugrik egy ablak, hogy tudok neki kizárólagos fókuszt adni
Tehát addig ne kattinthasson a user vissza a gamebe amig be nem zárta.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Orphy - Törzstag | 1893 hsz       Online status #48097   2007.02.26 12:00 GMT+1 óra  
Átadás referenciaként:

Kód:
private void fuggveny( ref referenciakent_atadott_valtozo)
{}


Alapból nem mindent ref-ként ad át, úgy tudom, csak a nagyobb, illetve user által kreált osztályokat adja át alapból ref-ként. Az egyszerű típusok (int, string), és a struct-ok default-ban érték szerint mennek át.

Öööö, nekem az a fókuszos kérdés kimaradt...
   
Asylum - Törzstag | 5448 hsz       Online status #48095   2007.02.26 11:40 GMT+1 óra  
Noh most jött el aza pillanat hogy marha jólenne referenciát meg pointert használni... ugyanis nem akarok 30 ezermillio window formot belepakolni az amugyis 475 soros + 4 osztályos programba..
szal valami trükk nincs hogy a fő osztály egy elemét valahogy referenciaként átadjam egy másik osztálynak ami megváltoztasson benne valamit? Konkrétan a játékosok nevét kéne átírnia.
Aszittem alapbol ref szerint történik az átadás de nem adja át

Ja és a fókuszos kérdésre is tud vki választ? (= köszi
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Orphy - Törzstag | 1893 hsz       Online status #48034   2007.02.26 00:36 GMT+1 óra  
Ha tudod az elérési útját, akkor csak simán elindítasz egy process-t. Ilyenkor elvileg a file-hoz rendelt program fog elindulni.

http://blogs.msdn.com/csharpfaq/archive/2004/06/01/146375.aspx
   
Asylum - Törzstag | 5448 hsz       Online status #48027   2007.02.25 14:41 GMT+1 óra  
Ja igen hogy hogyan lehet azt megcsinálni hogy rákattint egy gombra és azmeg megnyitja a doksit adobe readerrel vagy ie vel (pdf lesz az tuti).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5448 hsz       Online status #48026   2007.02.25 14:38 GMT+1 óra  
Tök jól haladok az amőbával nemis nehéz ez (kövezzetek meg de megint ugyérzem magam mint a darkbasices időkben )

Két kédésem lenne:

1) Ha az alkalmazásban felugrik egy ablak, hogy tudok neki kizárólagos fókuszt adni (hűdejol megfogalmaztam ), szóval hogy ne tudjon a user visszakattintani a game re hanem elöbb zárja be vagy csináljon vele valamit.

2) Elfelejtettem pill.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
~Cre@tine~> - Tag | 702 hsz       Online status #48005   2007.02.25 11:10 GMT+1 óra  
Egyszerű szinezést simán meg lehet vele oldani csak át kell nézni a color mátrixot picit jobban. A .NET rengeteg dolgot tartalmaz, úgyhogy várható volt, hogy ilyennek is kell lenni benne. A paint.NET is biztos így csinálja a szinezést.

   
Ati500 - Tag | 119 hsz       Online status #48004   2007.02.25 11:07 GMT+1 óra  
Hát ez érdekes, majd belenézek...
Amúgy alap képeffektekhez kéne (solarize, black & white, brown & white stb.), nem akarok semmit a progival, csak olvastam egy cikket a képpontonkénti manipulációkról és gondoltam megírom c# alatt... Ekkor jöttek a gondok a sebességgel, de lefordított exet futtatva nem volt különösebb probléma.
Csak gondoltam, akármikor hasznos lehet, ha tisztában vagyok a c# és a gui használatával ilyen téren is...

   
~Cre@tine~> - Tag | 702 hsz       Online status #48000   2007.02.25 10:51 GMT+1 óra  
Itt vannak komolyabb effektek, nagyon én se másztam bele. Nézd át jobban itt
A color matrix-os sebességről: "I tried this on my antique Windows 98se© machine running a Pentium II© processor and got HighSpeed at 220 ms and HighQuality at 270ms, but this wasn’t consistent and likely as not they both ran at 220ms."

   
~Cre@tine~> - Tag | 702 hsz       Online status #47999   2007.02.25 10:48 GMT+1 óra  
Attól is függ milyen effekthez kell. Szinezésre jó, de mondjuk motion blur-hoz már ez kevés lesz.

   
Ati500 - Tag | 119 hsz       Online status #47998   2007.02.25 10:45 GMT+1 óra  
Őőő, és el tudnád magyarázni, hogy a Matrix elemei mit csinálnak, meg hogy működik ez az egész?
Mert ez így működik frankón, de egyéb effekthez...

   
~Cre@tine~> - Tag | 702 hsz       Online status #47997   2007.02.25 10:45 GMT+1 óra  
A 2. megoldásnál már nagyságrendekkel gyorsabb lett.
A parse dolgot meg kikeresem. Az is lehet, hogy a Parse nem működött a convert to meg igen, de már arra se emlékszek pontosan.

   
balogh9 - Törzstag | 801 hsz       Online status #47996   2007.02.25 10:38 GMT+1 óra  
Idézet
Ati500 :
Köszi, mindjárt ki is próbálom!
Amúgy egy kis egyszerű képszerkesztő progit szerkesztgetek és próbáltam nem a szerkesztőböl futtatni, hanem a lefordított exe-t indítottam el és így sokkal gyorsabb volt... Szerkesztőböl egy 200*100-as kép is volt jó pár mp, a lefordított exe-vel meg 1024*768-as háttérképet solarize-oltam úgy 4-5 mp alatt... Szóval végülis megoldódott, de ha ez a módszer, amit te írsz, még a szerkesztőben is gyorsan működik, akkor lefordítva még gyorsabb lesz - ami jó.
C# nem gagyi, ezt tudtuk eddig is.


______

én is kipróbáltam, az exevel egész yo a sebesség
_____________________
C++ && OGL
   
Ati500 - Tag | 119 hsz       Online status #47987   2007.02.25 09:22 GMT+1 óra  
Köszi, mindjárt ki is próbálom!
Amúgy egy kis egyszerű képszerkesztő progit szerkesztgetek és próbáltam nem a szerkesztőböl futtatni, hanem a lefordított exe-t indítottam el és így sokkal gyorsabb volt... Szerkesztőböl egy 200*100-as kép is volt jó pár mp, a lefordított exe-vel meg 1024*768-as háttérképet solarize-oltam úgy 4-5 mp alatt... Szóval végülis megoldódott, de ha ez a módszer, amit te írsz, még a szerkesztőben is gyorsan működik, akkor lefordítva még gyorsabb lesz - ami jó.
C# nem gagyi, ezt tudtuk eddig is.

   
~Cre@tine~> - Tag | 702 hsz       Online status #47967   2007.02.25 05:17 GMT+1 óra  
Idézet
Ati500 :
Hát megpróbáltam, valamivel gyorsabb lett, ez tény, de azért érdekes, hogy ha más képszerkesztő progiban próbálom, akkor sokkal gyorsabban megvan...
Régebben esett sok szó arról, hogy a .NET-es programok jóval lassabbak lesznek, mint pl. egy sima c++os, ezek szerint ez a GUI-ra is vonatkozik? Végülis egyéb téren soha nem volt semmi bajom a c# gyorsaságával, pedig néha dolgoztattam elég nagy tömbökkel is, pl.
Gondoltam arra is, hogy meg lehetne oldani DirectX segítségével, de tudtommal nincsen benne ilyen pixelenkénti képmanipuláció (meg az már egy másik topic tárgya lenne...)


Végül is találtam megodást ha még aktuális:
Kód:
using System.Drawing.Imaging;

Bitmap myBitmap = (Bitmap)picBox.Image;
ColorMatrix cMatrix = new ColorMatrix
(new float[][]
    {
        new float[]{0.5f,0.5f,0.5f,0,0},
        new float[]{0.5f,0.5f,0.5f,0,0},
        new float[]{0.5f,0.5f,0.5f,0,0},
        new float[]{0,0,0,1,0,0},
        new float[]{0,0,0,0,1,0},
        new float[]{0,0,0,0,0,1}
    }
);

    ImageAttributes ImageAttr = new ImageAttributes();
    ImageAttr.SetColorMatrix(cMatrix);

    Graphics g = Graphics.FromImage(myBitmap);
    g.DrawImage(picBox.Image, new Rectangle(0, 0, picBox.Image.Width, picBox.Image.Height), 0, 0, picBox.Image.Width, picBox.Image.Height, GraphicsUnit.Pixel, ImageAttr);
    picBox.Image = myBitmap;

Timer-al nem mértem, de a click esemény után debug módban is azonnal átszinezte ugyanazt a képet, amit a ciklussal 1 mp alatt. Csak nem olyan gagyi ez a c#.

   
~Cre@tine~> - Tag | 702 hsz       Online status #47966   2007.02.25 05:14 GMT+1 óra  
Idézet
balogh9 :
Idézet
~Cre@tine~> :
Idézet
balogh9 :
milyen kivételes esetre gondolsz pl?


Már nem tudom, de volt rá példa konzolos programnál. Ha ilyen előfordul, akkor használd a Parse-t.



thx


Majd kikeresem a 40-50 gyakorlat közül...

   
balogh9 - Törzstag | 801 hsz       Online status #47964   2007.02.25 04:32 GMT+1 óra  
Idézet
~Cre@tine~> :
Idézet
balogh9 :
milyen kivételes esetre gondolsz pl?


Már nem tudom, de volt rá példa konzolos programnál. Ha ilyen előfordul, akkor használd a Parse-t.



thx
_____________________
C++ && OGL
   
~Cre@tine~> - Tag | 702 hsz       Online status #47963   2007.02.25 04:20 GMT+1 óra  
Idézet
balogh9 :
milyen kivételes esetre gondolsz pl?


Már nem tudom, de volt rá példa konzolos programnál. Ha ilyen előfordul, akkor használd a Parse-t.

   
balogh9 - Törzstag | 801 hsz       Online status #47960   2007.02.25 03:40 GMT+1 óra  
pl?
_____________________
C++ && OGL
   
ShAdeVampirE - Törzstag | 1313 hsz       Online status #47958   2007.02.25 03:12 GMT+1 óra  
Igen, én is így oldottam meg, de ennél több nekem sem jutott eszembe. Peidg ennek vannak hátrányai...
   
balogh9 - Törzstag | 801 hsz       Online status #47957   2007.02.25 02:52 GMT+1 óra  
üdv shade

mivel ugysem árt gyakorolnom a c#-ot nekiálltam kódolni vmi olyasmit amit te kérsz
nem lett teljesen olyan...

de elvileg működik a dolog helyesen

van sokkal jobb kód erre mint amit én írtam most kb ~30 perc alatt, szal még lehet hibás is, de ahogy én teszteltem így gyorsan, elvileg yol működik

nem a legpofásabb kód, de még c#-ban nem vagyok annyira pro sajna

nah írom a kódot, hátha segít vmit

Kód:
public partial class Form1 : Form
    {
        private string drag_elem_nev  = "";
        private int drag_elem_index   = 0;
            // drag elem adatai (mouse down eseménynél kapnak értéket)

        private string drop_elem_nev  = "";
        private int drop_elem_index   = 0;
            // drop elem adatai (mouse up eseménynél kapnak értéket)

        private bool down = true;
            // egyszer engedélyezzük a mouse down eseménynél az értékadást

        public Form1()
        {
            InitializeComponent();
        }

        private void listBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (down)
            {
            drag_elem_nev = listBox1.GetItemText(listBox1.Text);
                // a kiválasztott elem neve

            drag_elem_index = listBox1.IndexFromPoint(e.X, e.Y);
                // a kiválasztott elem indexe

            down = false;
                // elsőre adunk csak értéket
            }
        }

        private void listBox1_MouseUp(object sender, MouseEventArgs e)
        {
            drop_elem_nev = listBox1.GetItemText(listBox1.Text);
                // az aktuális elem neve

            drop_elem_index = listBox1.IndexFromPoint(e.X, e.Y);
                // ahova a kiválasztott elemet "dobjuk"

            if (drag_elem_index < drop_elem_index)
                    // ha a drag elem feljebb van mint a drop
            {
                if ((drag_elem_index >= 0) && (drop_elem_index != drag_elem_index) && (drag_elem_index >= 0))
                       // szükséges feltételek, ha ugyanazon az elemen maradtunk + listában vagyunk
                {
                    listBox1.Items.Remove(drag_elem_nev);
                        // töröljük a drag nevű elemet

                    listBox1.Items.Insert(drop_elem_index, drag_elem_nev);
                        // beillesztjük a drop index helyére a drag nevű elemet
                       
                    listBox1.Items.Insert(drag_elem_index, drop_elem_nev);
                        // beillesztjük a drag index helyére a drop nevű elemet
                   
                    listBox1.Items.RemoveAt(drop_elem_index);
                        // töröljük a drop indexű elemet
                }
            }
            else
                    // ha a drop elem feljebb van mint a drag
            {
                if ((drag_elem_index >= 0) && (drop_elem_index != drag_elem_index) && (drop_elem_index >= 0))
                    // szükséges feltételek, ha ugyanazon az elemen maradtunk + listában vagyunk
                {
                    listBox1.Items.RemoveAt(drop_elem_index);
                        // töröljók a drop indexű elemet

                    listBox1.Items.Remove(drag_elem_nev);
                        // törörljük a drag nevű elemet

                    listBox1.Items.Insert(drop_elem_index, drag_elem_nev);
                        // beillesztjük a drop index helyére a drag nevű elemet

                    listBox1.Items.Insert(drag_elem_index, drop_elem_nev);
                    // beillesztjük a drag index helyére a drop nevű elemet
                }
            }

            down = true;
                // következhet az újabb d&d
        }

    }
_____________________
C++ && OGL
   
ShAdeVampirE - Törzstag | 1313 hsz       Online status #47953   2007.02.24 23:23 GMT+1 óra  
Olyat nem tud véletlenül valaki, hogy egy Drag List Box-ot hogy lehet összehozni C# alatt? Arra gondolok, amikor ha megragadjuk az elemet, akkor a listában tudjuk le-fel húzogatni, megváltoztatni a lista sorrendjét, valamint mindíg jelzi egy vonal is, hogy hova fog bekerülni a kívánt elem.
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] > 40 < [45] [46]