- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Meggyi001: Nyilvános wc-k.....még mindig hiánypótló...
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Elektromos rásegítésű kerékpárok
- eBay-es kütyük kis pénzért
Hirdetés
Új hozzászólás Aktív témák
-
Sanyix
őstag
Ez a visual studio tényleg ekkora gáz, hogy kijelölöm hogy települjön az i particióra, ahova rakna 100 megát, de a c-re is rakna 2,1 gigát (?
-
Gregorius
őstag
válasz
ArchElf #1493 üzenetére
Ez nem teljesen ugyanaz. A CLR támogatja az exception filtert, a VB.NET is, a C# nem. Lényeges különbség, hogy míg VB.NET-ben feltétel teljesülése esetén kapod el az exceptiont, C# esetén mindenképpen elkapod. Az exception filter logika a belső finally blokkok előtt fut le, a fenti C#-os megoldás feltétele utána.
-
x007
tag
Megnéztem Refectorral a usingot, és tényleg úgy van ahogy írtad...
Kicsit utána gondolva:
Thread.Abort ellen hogyan védekeznél? Az bárhol történhet, catch vagy finally ágban is, súlyos inkonzisztenciát eredményezve. Nekem nem volt most semmi jó ötletem... így nézve már nem is igazán az a probléma, hogy a try-n kívülre rakja az objpéldányosítást a using, hanem sokkal messzemenőbb.Egyébként a gyakorlatban ez a szituáció szerintem nem játszik, mert a hívó fél szokott impersonationt csinálni, nem a hívott.
-
x007
tag
Elnéztem amit írtál, elnézést... De az eredményen nem változtatott
static bool admin = false;
private static void IAmSoEvil()
{
try
{
DoTheThing();
}
catch(Exception ex)
{
if (!Exploit())
{
throw;
}
}
}
private static bool Exploit()
{
Console.WriteLine(admin);
return false;
}
private static void DoTheThing()
{
try
{
admin = true;
DoTheAdminThing();
}
finally
{
admin = false;
}
}
private static void DoTheAdminThing()
{
throw new Exception();
} -
x007
tag
válasz
ArchElf #1493 üzenetére
Ez más, próbáld ki (false-t fog kiírni)
static bool admin = false;
private static void IAmSoEvil()
{
try
{
DoTheThing();
}
catch(Exception ex)
{
if (true)
{
Console.WriteLine(admin);
}
}
}
private static void DoTheThing()
{
try
{
admin = true;
DoTheAdminThing();
}
finally
{
admin = false;
}
}
private static void DoTheAdminThing()
{
throw new Exception();
}Ha jól értelmeztem a linkedet akkor azt írták, hogy az exception dobása két fázisban történik, először megkeresi a catch ágat, amiben lekezelhető a kivétel, ezért kiértékeli a when függvényt. Második fázisban végrehajtja a finally-ket és a megtalált catch ágat.
Mivel ezek 5 éves cikkek, elképzelhető, hogy ezt a mechanizmust javították már azóta (jogos lenne). Nincs VB-m, hogy kipróbáljam...
-
ArchElf
addikt
De. c#-ban ugyanez megvan (throw; -val tovább tudod dobni az exception-t, mintha 'mise történt volna). Az exception filter csak egy plusz funkció - olyan, mintha a c#-ben a catch első sora így nézne ki:
catch (Exception ex)
{
if(!IsExceptionFilter(ex))
throw;
// exception további része
}AE
-
ArchElf
addikt
válasz
ArchElf #1489 üzenetére
És a using + IDisposable sem megoldás:
using(new ImpersonationScope(domain, user, password))
{
}
// Megfelel ennek
ImpersonationScope i = new ImpersonationScope(domain, user, password);
//1. probléma
try
{
{
}
}
//2. probléma
finally
{
i.Dispose();
}
Két helyen is lehet vele gond:
1. Ritka esetben - de kihasználható módon (pl thread.Abort()) - lehet kivételt generálni az impersonation és a try között
2. Mivel nincs catch blokk, így a hívó rutin le tudja kezelni a futtatott kód esetleges hibáját, amit nem kapott el egy catch-el, mielőtt, még az i.Dispose() lefutna.AE
-
ArchElf
addikt
Tryfinally nem elég - ha nem szabad megbíznod a meghívó környezetben:
http://blogs.msdn.com/b/ericlippert/archive/2004/09/01/224064.aspx
http://blogs.msdn.com/b/shawnfa/archive/0001/01/01/400749.aspxAE
-
x007
tag
válasz
ArchElf #1487 üzenetére
Ott nem kell elkapnod az exceptiont, elég ha tryfinally-t használsz. Egyébként szerintem ilyen esetekben érdemes csinálni egy Scope : IDisposable osztályt (lsd TransactionScope), ami transzparensen kezeli a külső "erőforrást". Impersonation esetén nekem így nézett ki:
using(new ImpersonationScope(domain, user, password))
{
} -
x007
tag
válasz
Gregorius #1485 üzenetére
Néhány esetben azért indokolt lehet, ha nem akarod, hogy leálljon az alkalmazás. AppDomain.UnhandledException ugyan elkapja a nem kezelt kivételt, de a process elszáll.
Én például a worker szálak kódját szoktam trycatchException blockba tenni, így a catch elkapja a nem várt kivételeket, naplózhatom, és az alkalmazás sem borul.
Persze ennek használatának feltétele, hogy az alkalmazás semmikép se kerüljön inkonzisztens állapotba. Tudom... nem szép... ütemező alkalmazásnál még "végtelen ciklust" is okozhat, szóval azért óvatosan kell vele bánni.Naplózó rutinnál (pl TraceListener) is érdemes lehet a biztonság kedvéért elkapni mindent. Mondjuk ez se túl szép...
-
Gregorius
őstag
válasz
ArchElf #1484 üzenetére
Tök általános exceptiont nem nagyon lehet rendesen lekezelni. Logolásra inkább az unhandled exception handler való: AppDomain.UnhandledException.
-
Immy
őstag
A hiba ott volt, hogy a törlésnél az exception-t nem kezeltem normálisan. Pl.: ha egy file-t más folyamat használja akkor az egész megállt.
void delete(string eleresi_ut)
{
string[] files = Directory.GetFiles(eleresi_ut);
string[] directories = Directory.GetDirectories(eleresi_ut);
foreach (string file in files)
{
try
{
File.Delete(file);
}
catch (Exception ex)
{
listBox1.Items.Add("Amiket nem tudtam törölni: ");
listBox1.Items.Add(ex.ToString());
}
}
foreach (string directory in directories)
{
try
{
Directory.Delete(directory, true);
}
catch (Exception e)
{
listBox1.Items.Add("Amiket nem tudtam törölni: ");
listBox1.Items.Add(e.ToString());
}
} -
Jester01
veterán
Double.TryParse és társai.
-
j0k3r!
őstag
hello!
nemreg kezdtem el c#-al foglalkozni, es lenne egy kerdesem:
hogy tudom leellenorizni, hogy egy adott string numerikus erteket tartalmaz-e? (negativ szamok is jatszanak)elore is koszonom a segitseget.
-
ArchElf
addikt
válasz
mészi67 #1474 üzenetére
Semmi gond.
Dinamikus kezelésnél csak az alényeg, hogy nem a felületen keresztül csinálsz új kontrolt, hanem futásidőben. Ilyenkor neked kell (kódból) beállítani az összes fontos tulajdonságot (és az eseménykezelőket is).
Példa textbox-ok generálására. Csinálj egy formot, rajta két default gombot a bal felső sarokban. A form kódja legyen a következő.
http://pastebin.com/MQ9vrdVLEzer éve nem kódoltam VB-ben (élesben), nem ment könnyen az átállás...
mod1: Ja, és hanyagoltam a hibaellenőrzések nagy részét a rövidebb/tömörebb kód érdekében.
mod2: Este átküldöm (c#)-ban, hogy mit csináltam. Amúgy mivel előre beállított képekkel dolgozol (resource), így nincs értelme mentegetni a képeket, csak a resource-okra hivatkozni. De majd az átküldött kódból jobban megérted... Sajna VS.2008-ban készült a kód, úgyhogy a kódfájlokat egyesével kell majd beilleszteni egy új 2005-ben létrehozott projektbe - az egész projektet nem fogod tudni megnyitni vele.AE
-
ArchElf
addikt
válasz
mészi67 #1472 üzenetére
Mire összedobtam egy hasonlót láttam, hogy neked csak VS2005-öd van (és ráadásul VB-ben nyomod, nem is c#-ban), mindenesetre, ha érdekel át tudom küldeni, mit dobtam össze...
Dinamikus kezeléssel arra gondoltam, hogy ne vegyél fel n*10 vezérlőt, hanem generáld le őket futásidőben.
AE
-
mészi67
csendes tag
válasz
ArchElf #1471 üzenetére
Megpróbálok képet is feltenni hogy legyen fogalmad az egészről.
Visual Studio 2005-ben nyomulok.
A vonszolás azért kell hogy meghatározott helyre tehessem a vezérlőt, mert ugyebár nem minden ház alaprajza egyforma.
A téglalapok az alaprajzot szimbolizálják, a képdobozok pedig az alapmegerősítés helyét, a szövegdobozok pedig adatokat jelenítenek meg, pl. dátum, cölöpszám, méter stb. Dupla klikkre zummolom a szöveg dobozt.
A dinamikus kezeléssel erre gondoltál? Pl. egy másik prog. részlet:Try
o = Terv.OszlopName.Text
p = Terv.JelName.Text
megnez = 5000
Terv.Controls.Item(p).BringToFront()
Terv.Controls.Item(o).Image = Image.FromFile("C:\Jet Grouting\Program\Képek\Cölöpök\FFUresNagy.bmp")
c = Terv.Controls.Item(p).Left
For k = 1 To 8.2
If c > k Then
varj_ennyit = 60
End If
System.Threading.Thread.Sleep(varj_ennyit)
Terv.Controls.Item(p).Left = Terv.Controls.Item(p).Left + k
Terv.Refresh()
Next kSajna kép nem megy , csak worldben tudnám küldeni de azt sem tudom hogy tehetném fel.
-
ArchElf
addikt
válasz
mészi67 #1470 üzenetére
Huhh, van egy pár darab picturebox
Milyen fejlesztői környezetben dolgozol? Nálam VS2K8 van, abból tudok valami mintapéldát kreálni. Amúgy nem szép már ilyen menyiségben a kódban tartani ezeket a dobozokat, célszerű volna ezeket (meg az eseményeiket) dinamikusan kezelni...
Amúgy miért lehet huzogatni a pictureboxokat? Miért van a drag-and-drop engedélyezve?AE
-
mészi67
csendes tag
válasz
ArchElf #1468 üzenetére
Ja a hibaüzenet a tervmentésekor lép fel. Ez lemaradt az előbbi üziről.
Module UjTervMentes
Public Sub TervSave()
Dim Fn As String, Fn1 As Integer
Fn = UjMunka.txtCim.Text
Terv.Kilep.Enabled = True
Terv.FF0.Image.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF1.Image.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF2.Image.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF2.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF3.Image.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF3.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF4.Image.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF4.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF5.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF5.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF6.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF6.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF7.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF7.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF8.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF8.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF9.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF9.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF10.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF10.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF11.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF11.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF12.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF12.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF13.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF13.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF14.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF14.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF15.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF15.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF16.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF16.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF17.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF17.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FF18.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF18.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA0.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA0.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA1.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA2.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA2.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA3.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA3.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA4.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA4.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA5.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA5.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA6.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA6.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA7.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA7.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA8.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA8.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA9.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA9.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA10.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA10.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA11.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA11.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA12.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA12.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA13.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA13.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA14.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA14.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA15.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA15.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA16.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA16.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA17.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA17.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.FA18.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FA18.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ0.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ0.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ1.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ2.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ2.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ3.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ3.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ4.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ4.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ5.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ5.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ6.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ6.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ7.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ7.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ8.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ8.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VJ9.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VJ9.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB0.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB0.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB1.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB2.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB2.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB3.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB3.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB4.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB4.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB5.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB5.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB6.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB6.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB7.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB7.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB8.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB8.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'Terv.VB9.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\VB9.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
End If
End Sub
End Module -
mészi67
csendes tag
válasz
ArchElf #1468 üzenetére
Szia!
Köszönöm hogy válaszoltál.
Ez egy tervrajz kezelő progi lenne. PictureBox-okban tárolok bizonyos rajzelemeket amik F1,F2, F3 gombok megnyomására megváltoznak. Ezért felül szeretném írni az előző állapotukat. Jelen pillanatban 56 db PictureBox van a formon, ami akár 120-ig is elmehet számításaim szerint. Egy db PictureBox-szal jól működik de az 56 db-nál már nem.
Egy kis kód a valós programból:Private Sub Terv_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Fn As String
Fn = UjMunka.txtCim.Text
Me.FF0.Image = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp")
Me.FF1.Image = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF1.bmp")
Me.FF2.Image = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF2.bmp")
Me.FF3.Image = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF3.bmp")
Me.FF4.Image = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF4.bmp")
Me.FF5.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF5.bmp")
Me.FF6.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF6.bmp")
Me.FF7.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF7.bmp")
Me.FF8.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF8.bmp")
Me.FF9.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF9.bmp")
Me.FF10.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF10.bmp")
Me.FF11.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF11.bmp")
Me.FF12.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF12.bmp")
Me.FF13.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF13.bmp")
Me.FF14.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF14.bmp")
Me.FF15.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF15.bmp")
Me.FF16.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF16.bmp")
Me.FF17.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF17.bmp")
Me.FF18.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF18.bmp")
IdeiglenesMentes()
Me.AllowDrop = True
KiValasztas.Top = 800
End If
End Sub
Private Sub FF0_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles FF0.MouseDown
mozoghat = True
pX = e.X
pY = e.Y
End Sub
Private Sub FF0_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles FF0.MouseMove
If mozoghat = True Then
Me.FF0.Left = Me.FF0.Left + e.X - pX
Me.FF0.Top = Me.FF0.Top + e.Y - pY
Me.JelFF0.Left = Me.JelFF0.Left + e.X - pX
Me.JelFF0.Top = Me.JelFF0.Top + e.Y - pY
End If
Me.OszlopName.Text = "FF0"
Me.JelName.Text = "JelFF0"
End Sub
Private Sub FF0_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles FF0.MouseUp
mozoghat = False
End Sub
Private Sub JelFF0_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles JelFF0.KeyDown
Dim Fn As String
Fn = UjMunka.txtCim.Text
If e.KeyCode = Keys.F2 Then
Me.FF0.Image = Program.My.Resources.FFUresKesz 'Image.FromFile("C:\Jet Grouting\Program\Képek\Cölöpök\FFUresKesz.bmp")
My.Computer.FileSystem.DeleteFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp")
ElseIf e.KeyCode = Keys.F1 Then
Me.FF0.Image = Program.My.Resources.FFUresKiv 'Image.FromFile("C:\Jet Grouting\Program\Képek\Cölöpök\FFUresKiv.bmp")
My.Computer.FileSystem.DeleteFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp")
ElseIf e.KeyCode = Keys.F3 And Keys.U Then
Me.FF0.Image = Program.My.Resources.FFures 'Image.FromFile("C:\Jet Grouting\Program\Képek\Cölöpök\FFures.bmp")
My.Computer.FileSystem.DeleteFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp")
End If
End Sub
Private Sub JelFF0_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles JelFF0.MouseDown
MegnezJelet()
End Sub
Private Sub JelFF0_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles JelFF0.MouseEnter
Me.JelName.Text = "JelFF0"
Me.OszlopName.Text = "FF0"
End Sub
Module IdeiglenesBmp
Public Sub IdeiglenesMentes()
Dim Fn As String
Fn = UjMunka.txtCim.Text
Terv.FF0.Image.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF0.Image.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF1.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF1temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF1.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF1temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF2.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF2temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF2.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF2temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF3.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF3temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF3.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF3temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF4.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF4temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF4.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF4temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF5.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF5temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF5.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF5temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF6.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF6temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF6.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF6temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF7.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF7temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF7.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF7temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF8.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF8temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF8.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF8temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF9.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF9temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF9.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF9temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF10.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF10temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF10.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF10temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF11.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF11temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF11.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF11temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF12.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF12temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF12.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF12temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF13.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF13temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF13.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF13temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF14.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF14temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF14.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF14temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF15.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF15temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF15.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF15temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF16.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF16temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF16.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF16temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF17.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF17temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF17.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF17temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF18.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF18temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Terv.FF18.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF18temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
End Sub
End ModuleA hiba üzenet:
A generic error occurred in GDI+.
Állítólag a keretrendszer zárolja a fájlt, de biztos vagyok benne hogy van megoldás, amit én nem tudok megolgani a hobbi szintemmel.
A BackgroundImage csak a próbálgatás miatt van benne.
Ha egy kis példa kóddal segítenél a tudatlanságomon, örülnék.
Köszi -
ArchElf
addikt
válasz
mészi67 #1465 üzenetére
Mitől változik meg a kép?
Amúgy célszerű átmeneti változóba betölteni ezeket, csak kicsit több kódot igényel, ahogy írtad: Image-be tölteni, Image-et hozzáadni a picturebox-hoz, máshol lekérni és ott elmenteni...
Miért kell BackgroundImage?Amúgy kipróbáltam, nekem így gond nélkül megy (mondjuk nem VB.NET, hanem C#.NET), de nem szabad ilyen különbségnek legyen - mivel ugyanannak a dll-nek ugyanazon függvényeit használja mind a VB, mind a C#...
AE
-
ArchElf
addikt
Jogosultság probléma lehet (pl úgy van beállítva, hogy csak a felhasználónak van hozzá joga, az adminisztrátoroknak nincs), de lehet, hogy titkosítva van, és nem vagy hozzáadva jogosultakhoz. Az is lehet, hogy valami rendszerfolymat fogja a könyvtárat.
Kérd le előbb a könyvtár jogosultságio listáját. Ja és adminként korlátozott, vagy tényleges admin módban futtatod a törlést (UAC)?
Ha semmi nem megy, próbáld meg WMI-vel törölni a fájlokat (az asszem SYSTEM jogokkal igyekszik csinálni).AE
-
mészi67
csendes tag
Azt hittem többen vannak ezen a fórumon akik VB.NET-tel foglalkoznak.
Na mindegy.
Sikerült megoldani a problémát egy másik fórum ötletével. A gond az volt hogy a beolvasott fájlt lock-olja a keret rendszer és ezért nem lehet felül írni.
Felteszem a jó példa programot,hátha valakinek lesz ilyen gondja. Igaz nem a legszebb de működik.Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim Fn As String
Fn = "Bp. IX. Lónyay u. 38"
Me.PictureBox1.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp")
Me.PictureBox1.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0temporary.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
Me.PictureBox1.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0temporary1.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Fn As String
Fn = "Bp. IX. Lónyay u. 38"
Me.PictureBox1.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0temporary1.bmp")
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim Fn As String
Fn = "Bp. IX. Lónyay u. 38"
System.IO.File.Delete("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp")
System.IO.File.Move("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0temporary.bmp", "C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp")
System.IO.File.Delete("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0temporary.bmp")
End Sub
End Class -
mészi67
csendes tag
Sziasztok!
Könyvből tanulgatom a VB.Net programozást. Van egy picturebox a form-on amibe fájlból töltöm be a képet. Amikor megváltozik picturebox tartalma akkor újra el kellene menteni de sajnos hibára fut.Me.FF0.BackgroundImage = Image.FromFile("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp")
Terv.FF0.BackgroundImage.Save("C:\Jet Grouting\Munkák\" & Fn & "\Terv\FF0.bmp", System.Drawing.Imaging.ImageFormat.Bmp)Valaki tud valami okosságot a probléma megoldására?
Előre is köszönöm. -
Immy
őstag
Üdv
Írtam egy programot, ami törli a felhasználó temp-jét és temporarily internet files mappájában lévő file-okat. (természetesen amit a rendszer épp használ, azt nem tudja törölni, de azt nem is akarom)
A linkelgetést környezeti változóval oldottam meg:
Environment.GetFolderPath(Environment.SpecialFolder.InternetCache)
Path.GetTempPath()Valaki mondja meg, hogy win7 alatt miért nem működik. Helyes útvonalat ad vissza. Rendszergazdaként futtatva a programot kiírja, hogy nincs hozzá jogom...
Immy
-
Lakers
tag
Újabb probléma... ez inkább Visual Studio 2010 használati probléma lehet... (az ultimate verziót raktam fel, ami egy SQL 2008-t is feltett).
1. De... Az alábbi kóddal szeretnék létrehozni táblát Asp.Netben, ha a server explorerben az adatbázisra jobb klikkel menü / New Querry, ott feljön egy ablak és a már létrehozott abalakokat mutatja... holott a tutorial szerint oda kéne az alábbi sorokat bemásolni (ott VS 2008-van). Ezeket az sql parancsokat hogyan tudom használni? Hova, hogyan másoljam be a VS-be hogy nah itt a táblát kissrác
CREATE TABLE [dbo].[Person](
[PersonID] [int] IDENTITY(1,1) NOT NULL,
[FirstName] [varchar](30) NULL,
[LastName] [varchar](30) NULL,
[Email] [varchar](150) NULL
) ON [PRIMARY]
Na ezt hogy tehetem meg?2. App_Data mappához hozzáadok egy új SQL adatbázist. Ekkor a server explorerben létrehozok egy táblát, ebben az excel nézetben..., (habár itt is szeretném tudni, hogy hogyan lehetne a fenti sorokkal), de hiába csináltam meg manuálisan ezzel a módszerrel, a class view-ben nézve, a táblának nem hozott létre osztályt... (Person táblának kellene lennie person.cs fájl - osztály). Ezt hogyan lehet elérni
3. Lehet hogy külön le kellene töltenem az SQL Express-t és úgy ott külön adatbázist létrehozni? A Microsoftos Webinstaller, és a gépen is a sima Microsoft Sql Server 2008 ott figyel, de configuration manager, error and usage reporting, installation center, és Import and export data funkciók érhetők csak el.
-
Lakers
tag
Ezt miért írja ki? Távoli szerveren lévő visual studio 2008-ban primán lefordul a kód. De a saját gépemen lévő Visual Studio 2010 már nem hajlandó, csak írkálja az errorokat, ugyanazt a weblapot, kódot...
Error 1 It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS. C:\Users\tucutuc\Downloads\ITFactoryIIweb1\ITFactoryIIweb1\web.config 52
-
Karma
félisten
Mivel olvasol a fájlból? A StreamReader dokumentációja szerint \r, \n és \r\n-ek esetén is leválasztja a sort. A TextReader hasonlóan viselkedik, sőt még az Environment.NewLine propertyt is figyelembe veszi - ezt is felhasználhatnád akár.
Az biztos, hogy a saját ReadLine() nem jó megoldás.
Működik, de nem kéne mindig újra feltalálni a kereket. -
-
sonar
addikt
válasz
A szerzetes #1452 üzenetére
Pont ezt akarom elkerülni, elég bonyi a fájl. Mindegy most átpörgetem és kicserélem az LF-et CRLF-re. Csak majd ha online-ba kell monitorozni akkor lesz kicsit macerás.
-
sonar
addikt
Sziasztok,
Egy olyan problémám lenne, hogy van egy file-om amiben a sorok LF-del vannak elválasztva nem pedig CRLF. Szóval Unix-os. És a problémám az, hogy ha beolvasok egy sort akkor berántja az egészet.
Van erre vmi trükk? -
Boryszka
tag
válasz
robotjatek #1448 üzenetére
Szia!
Nagyon köszi! Ez is jó lesz, de elsősorban nem vizuális programokra épít!
-
Boryszka
tag
Üdv!
Tudna valaki adni linket, ahol megtalálom a "Tanuljuk meg a Visual C# 2008 használatát 24 óra alatt" című könyv digitalizált változatát, esetleg akinek megvan dobna egy privátot?
Üdv!
-
REDeath
őstag
WebSite és WebApplication közt mi a különbség? websitenál van copy website menüpont, és nincsenek akármi.designer.cs fileok amibe generált cucc kerül, de akkor ott hol vannak?
neten olvastam hogy mi a különbség, de vagy reggel még nem fordít a fejem angolról jól, vagy nemtom, de pl. van a coolio.sandbox.proserver.hu ahova gondoltam felrakok vmi egyszerűt, copy websitenál megy ha a web.configot nem másolom fel, WebApplication esetén ha tcm-el feltolom ugyanazokat a fájlokat, hivatkozik a web.config hiányára, de ha felrakom elszáll.szóval megéri a webapp a hülye deployyal, vagy egyszerűbb csak website azt kész?
pontosítanám, neten megnéztem, de nincs annyi tapasztalatom, hogy érezzem is melyik előnyősebb vagy sem..szerk: websitenál tényleg nincs sehol ami projektnél az akármi.designer.cs fájlba kerül ha behúzok bármit a toolboxról. ott ezeket a deklarációkat csak futtatáskor készíti magának mindenről amit talál az aspx fájlokban?
-
abuka
csendes tag
Hello!
Készülőben van egy progim ami beolvas egy txt-t amiben egy csomó xls file elérési útvonala van a program jól működik kivéve ha a file nevében vagy az elérési útban ékezet van.pl.:
c:\nemműködik\wáó.xlskövetkező hibával leáll : http://prohardver.hu/dl/upc/2010-08/02/102548_yn4cew9kdbui0pi9_eszeaer.jpg
a következőt már próbáltam:
http://econ.la.psu.edu/~hbierens/NONUNICODE.HTMVálaszotokat előre is köszönöm.
abu
-
Lakers
tag
Hello!
Ha létrehozok egy új projektet, de egy régiből másolom el a kódot, csak hogy lássam a régihez képest, hogy mennyit fejlődött... Akkor a másolás során valahogy a namespace meg minden egymás is másolodik és csak írja írja problémákat, hiába javítgatom őket...
Hogyan lehet ezt megoldani? Hogy új projektben folytatok egy régit? VS2010
-
sunsaw
tag
Esetleg fejlesztett már valaki a jelenlevők közül MultiTouch alkalmazást? Sok vele a szívás? Mik a buktatók?
-
REDeath
őstag
válasz
ArchElf #1435 üzenetére
bár csak vasárnap leszek én gépemnél, de úgy emlékszem igen, totál szürke mindig..
pedig 64 bites vs2008 van, lehet service pack hiányzik neki? az azért durva lenne ha ezt a kvázi fő debugger funkciót 64 bitesben elrontották volna, ezé nem hinném hogy sp hiánya miatt lenne -
REDeath
őstag
az mitől van hogy a Watch window be van fagyva, nem tudok hozzáadni semmit, még oszlopok szélességét se tudom állítani ?
-
ArchElf
addikt
Hálózati scannert írtam ezzel a technikával, meg a szakdolgozatomban egy behaviour monitoring rendszert csináltam, és az is többszálú volt (több log-forrást kellett egymás mellett feldolgoznia). Igazából ott egy csomó mindent kipróbáltam a multitherading mellett:
- teszt esetek, teszt források, többszálúság tesztelése, streszteszt, stb.
- dll futás közbeni betöltés, Interface alapú osztály használatAE
-
x007
tag
válasz
FehérHolló #1427 üzenetére
"...,hogy miért irtózol a BackgroundWorker nélküli marshallozástól"
-
Gregorius
őstag
válasz
FehérHolló #1427 üzenetére
Probléma, ha gyakran kell a GUI-ra írni?
Probléma. Egyrészt azért, mert a marshallozásnak költsége van, ami visszafogja a normál működést, másrészt mert az átlag emberi agy reakcióideje legjobb esetben is tizedmásodpercekben mérhető, vagyis teljesen felesleges ezredmásodpercenként frissíteni a GUI-t, mert mire a szerencsétlen felhasználó tudatáig eljut egy adat, addigra már a hatszázzal későbbi minta is rendelkezésre áll. Vagyis 599 mintát tök fölöslegesen írnál ki. -
FehérHolló
veterán
válasz
FehérHolló #1427 üzenetére
Igazából kicsit hülyén néz ki, hogy a kiírandó adatok beszerzése meg van oldva, a felület külalakra kész, csak a tapasztalatlanságból adódóan problémák merültek fel a kettő rész összekapcsolásával.
-
FehérHolló
veterán
A fenébe, pedig nem ezzel akarok most foglalkozni, mégis visszakacsintgatok a fórumra...
Nem irtózok egyáltalán a BGWorkertől, csak nem arra találták ki, amire nekem kéne.
Probléma, ha gyakran kell a GUI-ra írni? Az egész GUI-m arról szól, hogy akárhány (esetemben 2) 500kbit/sec és akárhány (esetemben 1), max 150kbit/sec sebességű, egyenként átlagosan 80%-ban kihasznált hálózat forgalmát jelenítsem meg egy "felhasználóbarát" felületen, on-the-fly szűrési lehetőséggel, meg ilyesmik. Ráadásul úgy, hogy a felhasználó is tudjon manuálisan, vagy ütemezve üzeneteket küldeni.
A kiírandó adatok értelmes pufferelése, pufferek karbantartása, kiírás ütemezése, satöbbi már kész. Csak ez a szerencsétlenség akasztott meg, hogy a GUI-ra csak egy fix szálból lehet írni. Nem akkora gond, eddig is delegate-ekkel dobálóztam a layerek között, de mivel tapasztalatlan voltam ilyen téren, nem számítottam erre az akadályra. -
sunsaw
tag
válasz
ArchElf #1424 üzenetére
Ez egy elég jó tervezési taktika, még nem használtam a gyakorlatban többszálú alkalmazásvezérlést, de köszi az ötletet! Ez tényleg jó... van már valami neve a pattern-nek?
FehérHolló: arra van a szerkesztés gomb, 5 percen belül még lehet javítani, mint ahogy most én is ezt teszem
-
ArchElf
addikt
válasz
FehérHolló #1422 üzenetére
BGW hogy csinálja meg?
Amúgy nekem ilyen típusú multithreading alkalmazásaim szoktak lenni:
Form -> BGW (szálvezérlésre) -> csomó Thread (dolgozó szálak)
Így viszonylag könnyű szétválasztani a megjelenítést a dolgozó szálaktól, nem oda integrálod be a szálvezérlést (másrészt akár form nélkül is tud futni a program).AE
-
x007
tag
válasz
FehérHolló #1422 üzenetére
Nem értem, hogy ettől miért lenne elavult. És azt se értem, hogy miért irtózol a BackgroundWorker nélküli marshallozástól, szerintem nem egy bonyolult dolog...
Probléma akkor lehet, ha nagyon gyakran akarsz a GUI-hoz hozzányúlni. Ilyenkor érdemes bufferezni a kéréseket marshal előtt, majd egyszerre átadni egy "nagyobb" adagot. Ez az ami egyedül gondot okozhat szvsz.
-
FehérHolló
veterán
Én úgy látom, hogy Microsoft is érzi, hogy elavult. Például a kezünkbe adtak egy BackGroundWorker osztályt, ami a háttérben végzi el a marshallozást bizonyos esetekben, nem neked kell megírni a kódot, satöbbi.
Igazából jó lenne, ha ez nálam is működne, csak nekem egy while(true) típusú szálból kell adatokat szolgáltatnom. A BackGroundWorker végtelen ciklusosításával ezt jelenleg meg lehet persze csinálni, de ez a megoldás a BGWorker alapcéljától annyira eltér, hogy a későbbi frameworkökkel való kompatibilitásomat kockáztatnám.
shev7: Most nincs sajnos időm. Talán a hétvégén.
-
x007
tag
válasz
FehérHolló #1418 üzenetére
Nem elavult, minden GUI framework vezérlése egyszálú. Voltak próbálkozások többszálú GUI kialakítására, de nem igazán jött össze senkinek, amolyan Failed Dream maradt.
-
ArchElf
addikt
válasz
FehérHolló #1418 üzenetére
Ehh, konzol... mod...
AE
-
shev7
veterán
válasz
FehérHolló #1418 üzenetére
"Kicsit elavultnak érzem ezt a megoldást, de ez most részletkérdés"
Ez egy erdekes tema, kifejtened?
-
FehérHolló
veterán
Hogy őszinte legyek, elég mély lelki válságba taszítottatok a DataGridView-es kérdésemre adott válaszaitokkal.
Eddig csak konzolos alkalmazásokat írtam. Teljesen új volt számomra, hogy az UI szál írhat csak az "ablakba". Konzolosnál nem kell azzal törődni, hogy ha meg akarok jeleníteni valamit, akkor egyetlen szálba kell dobálnom minden megjelenítendő infot a többiből. (Kicsit elavultnak érzem ezt a megoldást, de ez most részletkérdés.)Elég sokat olvasgattam MSDN-t azóta, hogy valamennyire megismerjem ezt a szemléletet. Találtam egy egész jó cikksorozatot, mely ezzel a kérdéssel foglalkozik. Az első része: [link]
Remélem másnak időt tudok spórolni azzal, hogy ezt megosztottam.tagek fórumkeresőnek: Windows Form thread safe safety UI mashall szál
REDeath:
miért mindig postolás után veszem észre a hibám?
Ugyanabban a kórban szenvedünk. -
sunsaw
tag
válasz
REDeath #1416 üzenetére
Debugger nem segit? Próbálj meg lerakni egy breakpointot a TextBox temp = (TextBox)btn.Parent.FindControl("TermekNevTextBox"); sorod után, nekem az a gyanúm, hogy ez a konverzió fog neked mindig null-t visszaadni! Nézd meg, mi van a változókban a debuggerben amikor megtört a futás! Lehet, hogy a konverzió során veszik el az adat.
-
REDeath
őstag
azt még el tudjátok árulni, hogyan lehet megtalálni egy asp:Label-t vagy bármilyen controlt mondjuk PageLoad eventben?
gombnak az eventje esetén is csak így sikerült:protected void Termekek_Frissit_OnClick(object sender, EventArgs e)
{
Button btn = sender as Button;
TextBox temp = (TextBox)btn.Parent.FindControl("TermekNevTextBox");
DS_reszletes.UpdateParameters.Add("nev", temp.Text);...neten már a 82.-ik megoldást is megnéztem, de mindig null lesz... ráadásul nekem egyből a form1-en belül van, nincs beágyazva semmilyen más controlba
szerk: miért mindig postolás után veszem észre a hibám?
lehagytam runat-et a Label-ből :/
-
FehérHolló
veterán
shev7 és x007: Köszi a válaszaitokat! Ennyivel úgy gondolom, hogy már boldogulok.
-
x007
tag
A problémától függetlenül, ne használd a VS2008 designert, elég használhatatlannak tartom
, mindent markup editorral csinálj meg.
-
REDeath
őstag
listview-vel update nem ment, nem vette át a paramétereket, úgyhogy muszáj volt codebehindban ráerőszakolnom (így sikerült csak)
másik dolog amitől megőrülök, hogy VS2008 designerébe jól látszik, egy marhaegyszerű float. (így)
firefoxban meg ígyamint a képen is látszik egyik div valamiért bekerül a másikba mikor Debugra nyomok. Ezt hogy lehetne kiküszöbölni?
itt az aspx kódja, ebben látszik hogy nincs egymásban :/
egyáltalán mitől lehet? vs bug vagy mi?
-
x007
tag
válasz
REDeath #1409 üzenetére
Az nem probléma szerintem, hogy beleszúr scripteket. Amit írtam, abban arra gondoltam, hogy ha a vezérlők beszúrnak olyan elemeket is, amit nem akarsz vagy amiről nem tudsz, akkor pl css írásakor több szívás lesz.
Igazándiból azt kell mérlegelni, hogy megéri-e azt a plussz időt belefektetni, hogy saját megoldásod legyen. Codebehindba ne nagyon írj lekérdezéseket, használj ObjectDataSource-t, az teljes szabadságot ad
.
-
REDeath
őstag
még az lenne a kérdésem, hogy ahogy nézem, sok asp vezérlőnek vannak eseményei, amire a codebehindban írhatok kódot, de ezt csak úgy tudja megoldani, hogy generáltat nekem egy scriptet, és a javascript postolja az oldalt vissza a servernek. mai világban mondjuk pont nem aggódnék a js hiánya miatt, de szerintetek melyik a jobb megoldás, vagy az elfogadottabb?
az ha hagyom hogy generáljon javascriptet az eseményekhez és a js postbackeljen, vagy ha minden paramétert amire szükségem van az url-ben adok át, és QueryString-el lekérdezem?konkrét példa, hogy ki van listázva pár cucc, és rendezni szeretném. ListViewben van beépített lehetőség rendezgetésre, de gondoltam megoldom hogy pl.: default.aspx?rendez=irszam de az SqlDataSource ORDER BY része nem fogad paramétert, úgyhogy gondolom akkor nekem kéne belefűzni a paramétert valahogy stringként.
és itt már csomó problémába ütköztem, ezért gondolkoztam el, hogy megérik-e ezek a DataSourceok, vagy mindent én írjak a codebehind részbe, conn.open stb? -
Gregorius
őstag
válasz
REDeath #1406 üzenetére
A klasszikus asp.net-ben a szerveroldali controloknak általában van egy viewstate-jük, ami utazik a kliens meg a szerver között (a sima postolt adatokon felül). Kellőképpen elvetemült esetben ez a viewstate kezelhetetlenül nagyra duzzad, ami az alkalmazás reakcióidején csúnyán meglátszik, és elég körülményes a méretére ráhatni fejlesztőként.
Asp.net MVC-t ez a probléma nem érinti. -
x007
tag
válasz
REDeath #1406 üzenetére
ASP.NET WebForms-ban szerintem c# kóddal való markup létrehozást mindenképpen kerülni kell, teljesen karbantarthatlan lesz tőle a kód, amit lehet próbáljuk meg dekleratív módon megoldani.
Lista vezérlőkből én a ListView-t tudom javasolni, mert afölött teljesen te rendelkezel, nem szemeteli tele a renderelt markupot olyan tagekkel, amit nem is akarsz, hogy ott legyen. A sablonokban használhatsz ASP.NET vezélőket, HTML tageket is, ami csak jól esik. Keress példákat, biztos tetszeni fog neked is
.
ASP.NET MVC-ben (most ismerkedem vele) lehet ilyet csinálni (aspx fájlban):
<% foreach (var product in ViewData) { %>
<div>
<%=product.Category.CategoryName %>
</div>
<%} %>Ez csúnyának tűnhet elsőre, de nekem egyre jobban tetszik
.
-
REDeath
őstag
üdv!
kezdő vagyok asp.net-ben, és az lenne a kérdésem, hogy egyesek mért preferálják a sima html kontrollokkal való fejlesztést, mint a fejlettebb controlokat?
most van egy ilyen próba projektem, Repeaterrel, van egyik lapon gridview is (jó, ez speciel csúnya : ), és ezek is meg dropdownlistek is SqlDataSource-okból kapják az adatokat, sqldatasourceokban néhol tettem filtert is, stb.
ha ezeket a funkciókat valaki lehetőleg html controlokkal akarná megoldani (amiknek egyébként annyi az előnyük a sima html elemekhez képest, hogy server oldalon kezelhetőek?) akkor az hogy nézne ki?
pl Repeater helyett meg grid helyett is for ciklussal irogatná a html-t? (php szerűen?)
kezdő létemre nincs asp.net-es tapasztalatom, és érdekelne hogy miért jó vagy épp nem jó ez a szemlélet.
előre is köszi -
x007
tag
válasz
Gregorius #1404 üzenetére
Oh, itt már volt új info
Kicsit utána néztem.
SynchronizationContext.Current
WinForms esetén: WindowsFormsSynchronizationContext
A Send/Post metódus a Control.Invoke/BeginInvoke metódust hívja meg.
WPF esetén: DispatcherSynchronizationContext
A Send/Post metódus a Dispatcher.Invoke/BeginInvoke metódust hívja meg
Szóval ez egy általános wrapper a GUI rendszerek szinkronizációs megoldása fölött. És már látom is miért jó ez...
Van pl. a BackgroundWorker, ami az AsyncOperationManager osztályon alapul, ami a SynchronizationContext-et használja a szinkronizáció megvalósításához. Ezért a BackgroundWorker WinForms és WPF alatt is tud működni. Sőőőt, ha saját ablakozó rendszert írsz, akkor megoldhatod, hogy az alatt is működjön
.
Tetszik...
-
Gregorius
őstag
Ha már körbejárjuk a témát, kicsit még tovább is megyek. Ennél létezik egy általánosabb megoldás.
A Control.Invoke/BeginInvoke/stb. az WinForms környezetben használatos:
this.Invoke(new Action(...));
A háttérben pontosan ugyanezt csinálja a következő:
SynchronizationContext.Current.Send(
new SendOrPostCallback(...),
state);
továbbá betűről betűre ugyanez a kódsor működik WPF-fel, ASP.NET-tel és még COM+-os interoppal is, nem csak WinFormsszal.
Utóbbi esetben a BeginInvoke-nak megfelelő aszinkron hívás a Post. -
Gregorius
őstag
Csak éppen semmit sem fog érni, mert a háttérben párhuzamosan kizárólag annyi történik, hogy a feladatot beütemezi az egyetlen egy főszálra. Vagyis a ThreadPool.Queue teljesen fölösleges. Ha mindenképpen aszinkron hívás kell, akkor Invoke helyett a BeginInvoke használatos.
Ú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!
- TCL LCD és LED TV-k
- Magisk
- Milyen egeret válasszak?
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Forrasztásról mindent az alapoktól!
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- A nagy Szóda, Szódakészítés topic - legyen egy kis fröccs is! :-)
- Spórolós topik
- E-roller topik
- Samsung Galaxy A56 - megbízható középszerűség
- További aktív témák...
- Szép HP EliteBook 840 G9 Fémházas Hordozható Érintős Ultrabook 14" -40% i5-1235U 32/1TB Iris Xe FHD+
- Logitech G935
- Creative Sound Blaster Live! 5.1-es digitális PCI hangkártya
- Rock Shox Recon Silver Air gyorszáras villa eladó (29-es)!
- ÚJ Nvidia RTX 5060/TI 8-16Gb GDDR7 DLSS4.0 Ryzen 7 5800X 16x4.7Ghz/32GB/512Gb/1TB M SSD/2ÉV gamer PC
- Dixit 4 Eredet (bontatlan, fóliás kártyacsomag)
- HIBÁTLAN iPhone 11 64GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS2132
- DELL Universal Dock D6000 docking station (452-BCYH) (DisplayLink)
- LG 55C2 - 55" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - A9 Gen5 CPU
- HP EliteBook 830 G8 i5-1135G7 16GB 256GB 1 év garancia
Állásajánlatok
Cég: FOTC
Város: Budapest