Új hozzászólás Aktív témák
-
fatal`
titán
válasz
#90999040 #2008 üzenetére
Ez rendben van csak te bevezettél még egy i változót, itt meg nem azt csinálja.
Mondjuk gondolom én nincsen 120 000 gombja így a sebességkülönbség majdhogynem elhanyagolható és sokkal szebb a kód a sima forral, mint a plusz változóval, amit külön kell kezelni.
De egyébként az egész úgy is kuka, mert névre keres akkor sima foreach.
-
fatal`
titán
válasz
martonx #2001 üzenetére
LOL hogy ez nem jutott eszembe, pedig régen én is ezt csináltam. De ott van még a tag property is, de ha jól látom azt már valami másra használja.
Esetleg ha nem akarja átnevezni őket, akkor kacifántosabban le lehet származtatni a buttonból egy osztályt, aminek csinál egy int propertyt erre a célra, és abban tárolja, hogy hanyadik elem a tömbben, így elég azt lekérdezni.
-
fatal`
titán
válasz
[pod]Diablo #1999 üzenetére
Azt szerintem ebben a formában sehogy. Írsz egy függvényt ami lekéri
private int hanyadikgomb(Button button)
{
for (int i = 0; i < tombhossz; i++)
{
if (button.Equals(tomb[i])
{
return i;
}
}
}Persze ez így nem túl gyors, de jelenleg nincs jobb ötletem.
-
fatal`
titán
válasz
[pod]Diablo #1997 üzenetére
Aham, na akkor ez így nem jó. Először is ezt a függvényt nem tudod egy gombhoz hozzárendelni, mert nem egyeznek a paraméterek.
Ezt a gomb létrehozásakor, vagy ha design time csináltad, akkor a lenyílólistában válaszd ki a clickesemenyt (adhatsz más nevet is neki):
gombamihezrendelniakarod.Click += new EventHandler(clickesemeny);
Ez pedig maga az esemény amit te mouzovernak hívsz ha jól látom
private void clickesemeny(object sender, EventArgs e)
{
if (sender is Button)
{
for(int i=0;i<9;i++)
{
for (int j = 0; j < 9; j++)
{
if ((sender as Button).Tag == "0")
{
if (tabla[i + 1, j + 1].Tag == "12")
{
tabla[i + 1, j + 1].BackColor = Color.Blue;
}
if (tabla[i - 1, j - 1].Tag == "12")
{
tabla[i - 1, j - 1].BackColor = Color.Blue;
}
}
}
}
}
}
}Nem biztos, hogy tökéletes, de valami ilyesmi lesz.
-
fatal`
titán
válasz
[pod]Diablo #1994 üzenetére
A g amit átadtál nincsen létrehozva new-val, így megaka. Már lényegében gondolom ez futásidejű hibaüzenet.
-
fatal`
titán
válasz
kingabo #1976 üzenetére
"(#1975) hunfatal: ez is bitről bitre hasonlít össze, szal ugyanott vagy."
Nem mindegy, hogy egy memorystreamet hasonlítasz össze, vagy pixelenként a színt. Utóbbi sokkal lassabb volt.
Persze simán lehet, hogy a .NETben ez másképp van megoldva, a delphi mégis csak a nagyon régi és ótvar lassú pascalra építkezik.
-
fatal`
titán
válasz
kingabo #1973 üzenetére
Az nagyon lassú. Bár C#-ban nem próbálkoztam ilyennel, de delphiben azt lehetett csinálni, hogy mindkét képet betöltöttem egy MemoryStream-be és azoknak a tartalmát hasonlítottam össze (nem kell fájlba menteni).
A delphis kód így nézett ki:
function Osszehasonlit(B1, B2: TBitmap): Boolean;
var
S1, S2: TMemoryStream;
begin
S1 := TMemoryStream.Create;
S2 := TMemoryStream.Create;
try
B1.SaveToStream(S1);
B2.SaveToStream(S2);
Result := CompareMem(S1.Memory, S2.Memory, Max(S1.Size, S2.Size));
finally
S1.Free;
S2.Free;
end;
end;Gondolom van valami hasonló .NET-ben is. A ramot falja ez tény.
-
-
fatal`
titán
válasz
Speederer #1945 üzenetére
Akkor pakold tömbbe vagy listába őket (most nem tudom melyik paranccsal tudod az összes formon lévő textboxot egy listába tenni de biztosan lehetséges, msdn-en van leírás is sztem, vagy prog.hu-n is kereshetsz).
Utána meg keydownnál foreacheld végig a tömböt és a senderben lévő adatokat pakold be a többi mezőbe. Elég késő van, nem tudom, hogy ez így működni fog e és nincs előttem VS de egy próbát megér.
Mod: Azt kihagytam hogy egy keydownt/keyupot rendelj az összes textboxhoz. Az aktuális textboxra pedig (sender as TextBox)-ként tudsz hivatkozni.
-
fatal`
titán
válasz
Speederer #1943 üzenetére
Írj rá egy függvényt úgyhogy a változó paramétereket átadod neki mindig.
pl.
private String atvalt(String honnan, int szamrendszer)
{
return Convert.ToString(Convert.ToInt32(honnan), szamrendszer);
}ezután meg kívülről meghívod:
textBox2.Text = atvalt(textBox1.Text, 2)
stb.
Persze az is lehet hogy teljesen félreértettem mit szeretnél
Esetleg kombinálhatod, hogy a textbox1.text az fix és nem adod át paraméterenként, de szerintem úgy csúnyább a kód és ezt később is felhasználhatod, ha mégis máshonnan kell váltani
-
fatal`
titán
válasz
[pod]Diablo #1859 üzenetére
this.Close() a főformon
Application.Exit() bárhol (nem fut le az OnClose esemény).
ja console
hát akkor return a main függvényben
Ú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!
- Thinkpad X13 Gen2i 13.3" FHD+ IPS i5-1145G7 16GB 512GB NVMe gar
- Gyakorlatilag új, GARANCIÁLIS (2026.12.23-ig!) Asus ROG Strix G16 (G614JV) gamer laptop RTX 4060-nal
- Switch OLED piros-kék, 2025. novemberig Alza garis, dobozával és minden tartozékkal
- Eladó! MSI mag 360r-v2 komplett cpu hűtő (Csomagküldés az árban)+vezérlő
- NEOS BAZÁR számtek kellékek, kábelek, tartozékok, egerek
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- Steam, EA, Ubisoft és GoG játékkulcsok, illetve Game Pass kedvező áron, egyenesen a kiadóktól!
- Samsung Galaxy A54 5G , 8/128 GB , Kártyafüggetlen
- BESZÁMÍTÁS! MSI MAG321QR 32 165Hz WQHD 1ms monitor garanciával hibátlan működéssel - használt
- Samsung Galaxy S25 Ultra 1TB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest