hamed_Arfaee نوشته است:دوباره برنامه رو بروز کردم و فکر کنم همونی که می خواهیش ولی این سرعتش خیلی کمه و اگر خواستی سرعتش یکم زیاد تر بشه اون کد نقطه
گذاری رو حذفش کن بازم روش کار می کنم
به دل نگیری ها, ولی به نظر من کد قبلی خودش خیلی بهتر بود !!!
NabiKAZ نوشته است:البته عدد 4 در فرمول های بالا همان حدکثر ستونهاست!
که درسته.
ولی این فرمول برای ستون های انتهایی دچار خطا میشه !
همیشه گفتم بازم می گم برنامه نویسی بدون شمه ریاضی مثل مثل آش بی رشتست (که میشه سوپ)
در مدلی که من برات مثال زدم Index ها از صفر شروع میشد اما در مدل شما از یک شروع میشه یعنی با کمی فکر میشه نتیجه گرفت که باید در فراموله من به جای I ها مقدار I+1 رو قرار داد تا فراموله شما درست کار کنه
همون طور که Ha_60 عزیز به طور کامل توضیح دادند.
NabiKAZ نوشته است:تابع UBound هم تنها در مورد آرایه ها کاربرد داره و روی اشیاء کار نمیکنه !
درسته من اشتباه کردم ازتون عذر می خواهم
تصحیح:
اشیاء ایندکس دار دارای خصوصت Count هستند: NewLine.Count که تعداد ایندکس هارو برمیگردونه (دقت کن که اگر ایندکس صفر رو هم داشته باشی برای به دست آوردن کد ایندکس آخر با مشکل روبه رو نشی)
NabiKAZ نوشته است:با ست کردن خاصیت AutoRedraw به True خطوط رسم شده بر روی فرم حذف نمی شوند.
پس صفحه ترسیمت رو Cls کن یا اگر نمی خواهی چشمک داشته باشی (مثل کد hamed_Arfaee) از یه کلکی استفاده کن ...
بیاهو قبل از ترسیم خطوط جدید روی خطوط قبلی با مختصات خودشون و رنگ پس زمینه دوباره Line ترسیم کن (چه روشی جون خودم تنهایی فکر کردم)
hamed_Arfaee نوشته است:من برنامه محمدحسین ( نمره 19 ) رو کاملترش کردم و فکر کنم سرعتش رو تا 10 برابر بیشتر کردم و یک کار بزرگ هم که کردم نوشتن کد دکمه خروج بود
در ضمن علت افزایش سرعت رو هم خودتون باید پیدا کنید
ولی جالب ترین قسمت کدت اون پیغام Please waite بود که کارو دیگه تموم میکرد دستت درست
تازه یه چیز دیگه اگر اون DoEvents رو خارج حلقه ها (بعد از حلقه) میزاشتی سرعتش بیشتر هم میشد !!!
ولی فکر نکنم مخفی و آشکار کردن صفحه ترسیم رو سرعت اسر کرده باشه
hamed_Arfaee نوشته است:دوباره برنامه رو بروز کردم و فکر کنم همونی که می خواهیش ولی این سرعتش خیلی کمه و اگر خواستی سرعتش یکم زیاد تر بشه اون کد نقطه
گذاری رو حذفش کن بازم روش کار می کنم
http://www.basic.persiangig.com/Archive/Grid2.zip
سلام
ای ول ! میبینم که بروبچ اینجا طوفان کردن !
ازت ممنونم بابت برنامه ، البته دقیقا چیزی که میخواستم نبود. اما ایده جالبی بود. ازت ممنونم .
سلام
Darg نوشته است:به دل نگیری ها, ولی به نظر من کد قبلی خودش خیلی بهتر بود !!!
من که موفق نیستم . کد اول از استپ استفاده نشده بود و دستی i رو افزایش میداد و تازه خط رو تا طول 5000 پیکسل رسم میکرد ولی دومی از step استفاده شده بود و خطوط رو به اندازه عرض زمینه میکشید... حالا اینا فکر نکنم زیاد مهم باشه.....
Darg نوشته است:ولی فکر نکنم مخفی و آشکار کردن صفحه ترسیم رو سرعت اسر کرده باشه
که گفته به این دلیل سرعت قراره زیاد بشه !؟ شایدم شوخی کردی ! به نظر من که هر سه برنامه اخیر که دوستان گذاشتن یه سرعت دارند !!! و اون 10 برابر سرعت بیشتر رو هم بزارید پای حساب تبلیغات سوء برای به انحراف کشاندن جوانان اسلام که مطمئنن دست آمریکا و کشورهای دیگر در کار است ، انرژی هسته ای حق مسلم ماست !!!!!!!!!!
Darg نوشته است:ولی جالب ترین قسمت کدت اون پیغام Please waite بود که کارو دیگه تموم میکرد دستت درست
دوستمون اومده دستشو خوب کنه ، چشش رو کور کرده !
کد exit رو نوشتی دستت درد نکنه ، حالا یکی پیدا بش لطف کنه waite رو درست کنه
از همه دوستانی که پست میزنن و راهنمایی میکنند تشکر میکنم .
نبی
NabiKAZ نوشته است:Darg نوشته است:به دل نگیری ها, ولی به نظر من کد قبلی خودش خیلی بهتر بود !!!
من که موافق نیستم . کد اول از استپ استفاده نشده بود و دستی i رو افزایش میداد و تازه خط رو تا طول 5000 پیکسل رسم میکرد ولی دومی از step استفاده شده بود و خطوط رو به اندازه عرض زمینه میکشید... حالا اینا فکر نکنم زیاد مهم باشه.....
منظور من خوانا بودن کد اولی بود می دونید که یکی از مولفه های برنامه نویسی توانایی ایجاد کد های خواناست کد دوم و سوم بیش از حد پیچیده شده بود که البته با توجه به نتیجه کار فکر می کنم در یک کار واقعی (نه کد مثال برای شرکت در گفتگو) هر چه کد خلاصه تر و خوانا تر باشه از نظرهای وقت کد نویسی و برنامه نوبس پسند بودن خیلی بهتر میشه !
Drag نوشته است:به دل نگیری ها, ولی به نظر من کد قبلی خودش خیلی بهتر بود !!!
خوب معلومه اون کد فقط خطوط رو رسم می کرد و لی مختصات یرخورد دو خط رو پیدا می کنه پس حتما باید از اون پیچیده تر باشه
Drag نوشته است:همیشه گفتم بازم می گم برنامه نویسی بدون شمه ریاضی مثل مثل آش بی رشتست (که میشه سوپ)
راستش من که تا حالا سوپ همراه با نخود ندیدم
Drag نوشته است:پس صفحه ترسیمت رو Cls کن یا اگر نمی خواهی چشمک داشته باشی (مثل کد hamed_Arfaee) از یه کلکی استفاده کن
علت چشمک زدن پاک کردنش نیست مخفی شدنشه که باعث چشمک زدن می شه
Drag نوشته است:تازه یه چیز دیگه اگر اون DoEvents رو خارج حلقه ها (بعد از حلقه) میزاشتی سرعتش بیشتر هم میشد
خوب اون وقت دیگه چه فایده ای داره ؟
نقل قول: ولی فکر نکنم مخفی و آشکار کردن صفحه ترسیم رو سرعت اسر کرده باشه
خوب شما اگه با اکسل کار کرده باشی یک کد داره به این شکل :
کد:
Application.AutoUpdating=False
که اگه املاش رو درست نوشته باشم این کد باعث می شه تا فعالیت های ترسیم روی فرم دیده نشه و فقط نتیجش دیده بشه
خوب حالا من هم یک چیزی شبیه اون ساختم که اگه شما او دو خط رو حذف کنی متوجه دلیلش می شی
NabiKAZ نوشته است:که گفته به این دلیل سرعت قراره زیاد بشه !؟ شایدم شوخی کردی ! به نظر من که هر سه برنامه اخیر که دوستان گذاشتن یه سرعت دارند !!! و اون 10 برابر سرعت بیشتر رو هم بزارید پای حساب تبلیغات سوء برای به انحراف کشاندن جوانان اسلام که مطمئنن دست آمریکا و کشورهای دیگر در کار است ، انرژی هسته ای حق مسلم ماست !!!!!!!!!!
چرا این هم تاثیر داره داشتنش رو ولی منظور من در کد اول بود که مخفی نمی شد و اون هم استفاده از Scalemode بود که به حالت Pixel تغییرش دادم و از 5000 به 300 تغییر میکنه طول حلقه که اگه با این کار یک فرم بزرگ رو گرادیانت بکنی کاملا متوجه منظورم میشی
در ضمن آمریکا هیچ غلطی نمی تواند بکند
[/b]و انرژی هستی هم حق مسلم ماس بر منکرش لعنت
NabiKAZ نوشته است:الا یکی پیدا بش لطف کنه waite رو درست کنه
خوب آی آقا همه اشتباه می کنن یکیش همین درگ که نوشته
Drag نوشته است:صفحه ترسیم رو سرعت[b] اسر
کردهاینم درستش : Please Wait
Drag نوشته است:منظور من خوانا بودن کد اولی بود
خوب عزیز من این برنامه که همون نیست حدود 3 برابر اون کار انجام می ده پس باید از پیچیده تر باشه
خوب این هم دفاعیه من اگه باز هم سوالی انتقادی هست بفرمایید که خوشحال می شوم
چرا دعوا میکنین!!!
من یه روش دیگه به ذهنم رسید. ساده تر. سعی میکنم سریعتر بزارم اینجا.
hamed_Arfaee خیله خوب حالا چرا میزنی
این هم از طرف من باور کنید اصلا قصد کل انداختن ندارم
Object ای موضوع
ای آقا کی کل انداخت آخر حرفامم گفتم دفاعیه در هر صورت من معذرت می خواهم اگر از کلمات درست برای دفاع استفاده نکردم
hamed_Arfaee نوشته است:ای آقا کی کل انداخت آخر حرفامم گفتم دفاعیه در هر صورت من معذرت می خواهم اگر از کلمات درست برای دفاع استفاده نکردم
حالا چرا تفره می ری کدم رو نقد کن !
منتظرم ها
تا جایی که من فهمیدم قراره مثلا روی یک خط کلیک بشه
و یک کاری انجام بشه درسته .
اگر به من باشه من این برنامه رو به این شکل مینویسم
[align=left]
Private Sub Form_Activate()
Rem =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
For i = 0 To Picture1.ScaleWidth Step 10
Picture1.Line (i, 0)-(i, Picture1.ScaleHeight), vbBlack
Next i
End Sub
Private Sub Form_Load()
Picture1.ScaleMode = 3
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
For i = 0 To X
If Picture1.Point(i, 0) = vbBlack Then
d = d + 1
End If
Next
MsgBox "The Line " & d & "Clicked"
End Sub
]
و فکر نمیکنم توضیح خاصی هم داشته باشه
و اگر دنبال سرعت بیشتر هم هستید بجای point از getpixel
استفاده کنید .
حالا من یک سوال از شما دارم مشکل استفاده از load چیست
من که از نظر سرعت چک کردم تفاوت چندانی نداشتند .
و قسمت دیگری که به نظرم رسید برای اشیا آرایه ای برای ساخت
آن فقط کافیست
Dim newbutton(5) As VB.CommandButton
که تنها چیزی که من پی نبردم اینه که چرا از withevents
پشتیبانی نمیکند . که این کار نیز با یک قسمت بندی مناسب
برای فرم حل میشود .
مثلا اگر از 0 تا 20 کلیک شد فلان کار و اگرنه کار دیگر
ولی طراحی الگوریتم چقدر لذت بخش .
اگر میخواهید سرعت رو هم چک کنید (اینه که همه فولند) حالا
اونایی که فول نیستند یاد بگیرند تا تبلیغات الکی نشه .
start% = Timer
{
}
result% = MsgBox(Format(Timer - start, "##,##") & "secs")