الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

[ تمت الإجابة ]تغيير حجم الفور بدون وجود اطار هل يمكن ؟؟؟ + تأخير تكراري

بدأه MiNi.SpIdEr في 13 يناير 2009 · 17 رد · 1,092 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اذا كنت استخدم فورم بوضع

borderStyle=0

هل هناك طريقه لاجل هذا الفورم قابل لتغير الحجم

؟؟؟؟؟

ربما هناك اداة تنتج مكان لتحريك الفورم بالزاويه السفلى

لكن للاسف لا اعرف ما هي ولست متأكد من هذا الشي اصلا :lol:

--------------

السؤال ثاني

لدي اكثر من طريقه لعمل تأخير لكن المكله في التكرار

اريد مثلا جعل الامر يتكرر كل 30 ثانيه

يبداء بضغطة زر ويتوقف بضطة زر

جاري التجربه لحل كلا المشكلتين

لكن قلت اطرح الموضوعين هنا يمكن ما احلها وعسا انها تكون مفيده

لاني لم افلح في ايجاد شي عند البحث بالمنتدى

تحياتي

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#2

بالنسبة للسؤال الأول فهناك خوارزمية ما حاول البحث عنها أو التفكير بحلها ولو خارج المنتدى (على Google) مثلاً.

بالنسبة للثاني هل جربت أداة Timer ؟؟

ولكن لماذا وضعته في قسم الدروس والمواضيع الهامة؟؟

هذه الجملة خاطئة  :wacko: 


#3

اسف على المكان الخاطئ يبو اني اخاء بسبب كثرت النوافذ امامي (سبحان من لا يسهو)

ممكن تعطيني شيء ابحث فيه عن هذه الخوارزميه اسم مثلا ؟؟؟؟؟

اما الثانيه جربه التايمر بس مو عارف اعمل التكرار دائما حتى يتوقف بزر للاسف

انا استخدمت هذا الكود في التأخير

Private Sub auto_Click()
Timer1.Interval = 1000
End Sub

Private Sub Timer1_Timer()

Static n As Integer
n = n + 1
If n = 5 Then
MsgBox "do it"
End If

End Sub

هذا الكود جيد بعملية التأخير ولكن فشلت بعموله جعله يستمر بعمله التكرار كل 5 ثواني مثلا ويتوقف بز

سؤال

هل هذا الكود جيد اذا اخرت الكود مده طويله مثل 30 او 60 ثانيه

Public Sub Delay(HowLong As Date) 
TempTime = DateAdd("s", HowLong, Now) 
While TempTime > Now 
DoEvents 
Wend 
End Sub 

Private Sub Command1_Click() 
Delay 5 
MsgBox "Test" 
End Sub

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#4

بالنسبة للأول سأبحث بإذن الله، ولا أظن هذا صعباً جداً.

بالنسبة للثاني، بصراحة لم أفهم تماماً ما تريده، لكن إليك التالي:

لبدئ التايمر على 30 ثانية مثلاً نكتب:

Private Sub cmdStart_Click()
Timer1.Intervsl=30000
End Sub

ثم تكتب ما تريد، مثلاً:

MsgBox "Do It"

ولإيقافه:

Private Sub cmdStop()
Timer1.Interval=0
End Sub

هل هذا ما تريده؟

هذه الجملة خاطئة  :wacko: 


#5

جيد كيف يتم تكرار ال

MsgBox "Do It"

كل ثلاثين ثانيه مثلا

يعني ما يتوقف يضل يظهر المسج بوكس كل 30 ثانيه

ويتوقف فقط عند الضفط على الزر

اضن انه سهل لكني لم استطع التوضيح ولا اعرف لماذا لم استطع عمله

وياريت ما تنسى ال n = n + 1

لاني اريد وضع دقائق ايضا ولم تفلح Interval بذالك

ومنتظر منك الاول ان شاء الله وانا ايضا احاول ايجاده

شكرا

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#6

سأرفق لك مثالاً:

وإذا كان ليس ما تريده، فأرجو التوضيح أكثر لأني لم أفهم عليك.

طبعاً لا تنس أن عليك الانتظار ثلاثين ثانية في كل مرة

Timer.rar

هذه الجملة خاطئة  :wacko: 


#7

جميل جدا هذا هو سلنت يداك

لا اعرف لماذا لم يعمل لدي لما ارى فرق كبير

شكرا لك

ولم اجد شيء بخصوص تغيير الحجم منتظر منك ولو اسم ابحث بواسطته

تحياتي

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#8

اعتقد اني عرفت الفرق

انا بحاجه لاستخدام

If n = 5 Then

لتحديد المده يعني لل ثلاثين ثانيه يكون

If n = 30 Then

اظن طريقتك لن تسمح لي بأكثر من دقيقه او اكثر بقليل ؟؟؟

Timer1.Interval = 3000

كيف يمكن وضع تأخير 10 دقائق هنا اظن انها لا تصلح هل يمكن اضافه

If n = 5 Then

للكود الي عملته اعتقد هنا كانت مشكلتي نحتاج لتصفير ال Interval وجعله يعد من جديد في كل مره هل هذا صحيح

تحياتي

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#9

هل من حلول يا اخوان لاي من السؤالين ؟

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#10

بصراحة كلامك غير واضح جداً، ولكن طريقتي ستستمر إلى أن توقفها بالزر Stop ، وليس دقيقة واحدة فقط

كما أن الأوامر الموجودة في الـTimer سيتم تنفيذها في كل 30 ثانية، يعني كل ثلاثين ثانية سيزيد n بمقدار واحد، جرب وقم بتتبع قيمته.

إذا كنت لم ألبي ما تريد بعد، فأرجو التوضيح أكثر، وماذا تقصد بالتأخير؟

بالنسبة للمسألة الثانية فسأبحث، لكن كنت مشغولاً بعض الشيء، انتظرني بإذن الله

وفقك الله

هذه الجملة خاطئة  :wacko: 


#11

شكرا اخي تعبت معاي الله يكون بعونك

انا عملت كود للعمليه ونجح تمام حمد لله

Private Sub cmdStart_Click()
Timer1.Interval = 1000
End Sub

Private Sub cmdStop_Click()
Timer1.Interval = 0
End Sub

Private Sub Timer1_Timer()
Static N As Integer
N = N + 1
Label1 = N
If N = 5 Then
MsgBox "do it"
N = 0
End If
End Sub

هذا If N = 5 Then

ما قصدته الان استطيع وضع 120 للانتضار دقيقتين

بينما في Timer1.Interval = 1000

فالقدره على زيادة القيمه اظنها الى 65 ثانيه فقط

انتضر منك حل للسؤال الاول ان شاء الله

تحياتي

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#12
اقتباس
فالقدره على زيادة القيمه اظنها الى 65 ثانيه فقط

ولماذا تظن ذلك؟ :angry:

المشكلة بالنسبة للسؤال الأول أني لا أجد الوقت، لكن سأساعدك بإذن الله.

هذه الجملة خاطئة  :wacko: 


#13

ههههههههههههههه لاني قرائت هذا في موضوع هنا

وكان عن كيفيه التأخير لاكثر من دقيقه بالتايمر لانه لا يقبل اكثر من 65 ثانيه

اي انه

Timer1.Interval = 560000

هيه القيمه القسوه لا اعرف كم هوه بالضبط لكن شيء كهاذا اعتقد

ومنظرك او اي احد ممكن للسؤال الثاني وعلى مهلك

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#14

ولكن الـinterval لن تزيد، ستظل 1000 ولو قمت بهذا ألف مرة، أما الذي سيزيد فهو الn

:evil:

هذه الجملة خاطئة  :wacko: 


#15

ههههههههههه نعم في الكود الي وضعته هكذا لكن بالكود الي انته وضعته كانت المدى تحدد من الinterval

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

#16

يعني أنت تريد في كل مرة أن يزيد الـinterval بقيمة 1000 مثلاً.

يعني لو كتبنا:

  1.  
  2. Private Sub Timer1_Timer()
  3. MsgBox "Do It"
  4. Timer1.Interval=Timer1.Interval + 1000
  5. End Sub
  6.  

ولكن المشكلة أنه عندما يصل إلى 65 فإنه يتوقف؟؟

أرجو أن أكون قد فهمت عليك في هذه المرة

هذه الجملة خاطئة  :wacko: 


#17

السلام عليكــم ورحمـة الله وبركاتــه

بالنسبة للسؤال الأول .. الـ Control المقصود هو الـ StatusBar

وهو تابع لـ Microsoft Windows Common Controls 6.0

ومن باب العلم بالشيء لن يعمل بالشكل الذي تريده في حالة أن الـ BorderStyle = 0

وإن كان هدفك الإستغناء عن شريط العنوان للنافذه فعليك بتفريغ قيمة خاصية الـ Caption

ثم تغيير خاصية الـ ControlBox وجعلها False من خصائص الـ Form

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#18

ههههههههههههههه

لا اعرف ما المشكله في توضيحي

لاحظ الكود الي يقوم بالعمليه اولا

Private Sub cmdStart_Click()
Timer1.Interval = 1000
End Sub

هنا نقوم بتشغيل التايمر بسرعه 1 ثانيه صح ؟

Private Sub cmdStop_Click()
Timer1.Interval = 0
End Sub

هنا نوقف التايمر كلشي تمام

Private Sub Timer1_Timer()
Static N As Integer
N = N + 1
Label1 = N
If N = 5 Then
MsgBox "do it"
N = 0
End If
End Sub

الان لدينا N تزيد بمقدار 1 كل ثانيه

وانا اريد مثلا عمل التأثير كل دقيقتين اذا

2*60=120

فيكون الشرط

If N = 120 Then

MsgBox "do it"

جميل حتى الان؟

بعد التنفيذ سيتمر العدد فوق ال N والتايمر مازال يعد بسرعة 1 ثانيه

نقوم بتصفير ال N

N = 0

وننتظرها تصل مره ثانيه الى 120 ثانيه

وبهذا تم التكرار وبأي قيمه نريدها وبدون مشاكل

مع ملاحضه ان التايمر لم يبداء بالتنفيذ الا بعد مرور ال 120

ارجو ان اكون وفقت عموما الموضع كمل الان D: لان الاخ mrx_ta7ady

حل السؤال الاول جزاه الله خيرا

انا جربت الاداة Microsoft Windows Common Controls 6.0 في السابق مع وضع BorderStyle = 0 ولم تعمل كما ذكر الاخ

لكن بأضافه

ControlBox=False

التي لم اكن اعلم بها

يكون كل شي تمام

وشكرا لكم

تحياتي

[moveleft]

MiN! SpId3r SqUaD

[/moveleft]

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…