با سلام
API EnumFont در vb6 مشکلی نداره ولی نمیدونم چرا در vb.net نمیتونم ازش استفاده کنم
نمونه کد vb6 و vb.net را ضمیمه کردم
با سلام
API EnumFont در vb6 مشکلی نداره ولی نمیدونم چرا در vb.net نمیتونم ازش استفاده کنم
نمونه کد vb6 و vb.net را ضمیمه کردم
سلام
این کد vb6 باید تبدیل بشه به vb.net
تازه خیلی راحت هم تبدیل نمیشه
تبدیل کردن کد این نیست که بیای عین کد را بنویسی و خطاهای کد رو برطرف کنی مثلا تو vb6 کلمه new زیاد کاربرد نداره ولی اینجا (در بعضی جاها ) باید از new استفاده کنید
اگه شما میخواین فونت ها رو تو list نشون بدین این راه خیلی ساده تر هستش
PrivateSub AddFonts()
Dim allFonts AsNew Drawing.Text.InstalledFontCollection
Dim fontFamilies() AsFontFamily = allFonts.Families()
ForEach fo AsFontFamilyIn fontFamilies
ListBox1.Items.Add(fo.Name)
Next
EndSub
نه دوست عزیز میخوام از API استفاده کنم
وقتیvb.net کار را راحت کرده چرا کار خودتو سخت میکنی
http://www.codeproject.com/Articles/...bo-box-for-NET
اینم یه لینک دیگه که به زبان سی شارپ هستش ولود فرم لازم به تبدیل داشت که برات تبدیل هم کردم که فقط یه dll داره که به فرمت اضافه کنی
اینم کد که تو فرم و دکمه میذاری
'load form
fontComboBox1.Populate(False)
fontComboBox2.Populate(True)
'button
textBox1.Font = New Font(fontComboBox1.Text,10)
textBox2.Font = New Font(fontComboBox2.Text,10)
آخرین ویرایش به وسیله xxnagin : دوشنبه 04 اردیبهشت 1391 در 20:10 عصر
هیچ راهی نیست که با API بشه انجام داد ....
این کد باید تبدیل بشه به vb.net یعنی مجبورید
vb.net کار رو راحت کرده شما مجبور نیستی از api استفاده کنید وقتی به این راحتی با دو تا خط کد میشه کار میکنه
چرا از خط های زیاد استفاده میکنی
ببین اینجوری هم که تو فکر میکنی نیست
اون باید اول اینجوری نوشته بشه
منم هر کاری کردم نشد سخت تبدیل میشه بی خیال شو
اول DelegateFunction EnumFontProc(....)as integer
بعدش باید
dim proc as new EnumFontProc(AddressOf EnumFontProc)EnumFonts(Me.hDC, vbNullString, AddressOf EnumFontProc, 0)
تو قسمت قرمز رنگ که تو Module خط اولت باید EnumFontProc بنویسی به جای integer
نمونه http://stackoverflow.com/questions/2...-vb6-to-vb-net
آخرین ویرایش به وسیله xxnagin : چهارشنبه 06 اردیبهشت 1391 در 12:31 عصر
درست دوست من راهش همین Delegateولی چطور باید ازش استفاده کرد
vb6
Sub SYNCPROC(ByVal handle As Long, ByVal channel As Long, ByVal data As Long, ByVal user As Long)
'CALLBACK FUNCTION !!!
End Sub
vb.net
Delegate Sub SYNCPRO(ByVal handle As Long, ByVal channel As Long, ByVal data As Long, ByVal user As IntPtr)
dim proc as New Un4seen.Bass.SYNCPROC(AddressOf SyncEndProc)
Public Sub SyncEndProc(ByVal handle As Integer, ByVal channel As Integer, ByVal data As Integer, ByVal user As IntPtr)
Me.Invoke(New System.Windows.Forms.MethodInvoker(AddressOf MusicEnd))
End Sub
Public Sub MusicEnd()
End Sub
این کد برای mp3 player هستش
که میگه اهنگ داره تموم میشه
کد بالا را نگاه کن
در ضمن تو فرم یک به جای hdc از handle خود فرم باید استفاده بکنی
و تو MusicEnd که کارش repeat shuffle اهنگ ها هستش
شماباید اینجوری بنویسی نصفش را خط های قرمز رو می بینی
کلا من نتونستم کاری بکنم
از دوستان دیگه کمک بگیر که بیشتر از من میدونن
حالا نمیشه بی خیال بشی
آخرین ویرایش به وسیله xxnagin : چهارشنبه 06 اردیبهشت 1391 در 15:09 عصر
ضمن تشکر از xxnagin سایر دوستان و اساتید محترم نظری ندارند ؟