PDA

View Full Version : طراحی لوگوی اول برنامه



mohsenns5
پنج شنبه 29 آذر 1386, 14:32 عصر
سلام
من یه لوگو که قبل از شروع برنامه 5 ثانیه دیده میشه و بعد از اون فرم اصلی برنامه میاد رو طراحی کردم. لطفا هر کی نمونه بهتری داره بذاره که ما هم استفاده کنیم. مثلا چجوری میشه همین فرم لوگوی خودم رو یه جوری کرد که Opacity اون در شروع صفر و کم کم در عرض سه چهار ثانیه به 100 برسه؟ برنامه های به روز الآن از همچین چیزی زیاد استفاده میکنن.
همچنان که مستحضرید لوگو رو میشه ازش استفاده تبلیغاتی بسیاری کرد.
با سپاس

hassan razavi
پنج شنبه 29 آذر 1386, 14:38 عصر
برای تزفند Opacity میتونید از یک timer استفاده کنید. جهت تبدیل فرم به یه شکل دلخواه هم می تونید از خاصیت TransparencyKey فرم استفاده کنید.

mohsenns5
پنج شنبه 29 آذر 1386, 18:12 عصر
این کارو کردم فک کنم مشکلم در نحوه تغییر Opacity باشه. یعنی مقداری که باید بهش داد ازچه نوعی باشه
اگه وقتت رو نمیگیره مقداری از کدها رو برام بنویسید

hassan razavi
پنج شنبه 29 آذر 1386, 19:32 عصر
Opacity بین 0 و 1 مقدار دهی باید بشه.یک مقدار Double میگیره. 0 و 0.2 و 0.5 و ...

sinpin
پنج شنبه 29 آذر 1386, 20:07 عصر
این کارو کردم فک کنم مشکلم در نحوه تغییر Opacity باشه. یعنی مقداری که باید بهش داد ازچه نوعی باشه
اگه وقتت رو نمیگیره مقداری از کدها رو برام بنویسید

یک تایمر بنام timer1 به فرمتون اضافه کنید و ...


private void Form1_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
timer1.Interval = 10;
this.Opacity = 0;
}

private void timer1_Tick(object sender, EventArgs e)
{
if (this.Opacity >= 1)
timer1.Enabled = false;
this.Opacity += 0.02;
}

sinpin
پنج شنبه 29 آذر 1386, 20:13 عصر
...برنامه های به روز الآن از همچین چیزی زیاد استفاده میکنن....

پس در اینصورت؛ من تا بحال برنامه بروز ندیدم ! :بامزه:

مهدی رحیم زاده
پنج شنبه 29 آذر 1386, 21:55 عصر
سلام
اون چیزی رو که شما میگید من با استفاده از سه تا تایمر ساختم ، اینم کدش :

double count=0.0;
int t = 1;
//
private void timer1_Tick(object sender, EventArgs e)
{
count += 0.02;
this.Opacity = count;
if (count > 1.0)
{
timer2.Enabled = true;
timer1.Enabled = false;
}
}

private void timer2_Tick(object sender, EventArgs e)
{

if (t == 100)
{
timer3.Enabled = true;
timer2.Enabled = false;
}
label1.Text = t.ToString() + '%';
t += 1;
progressBar1.Value = t - 1;
}

private void timer3_Tick(object sender, EventArgs e)
{
if (count < 0.0)
{
timer3.Enabled = false;
this.Hide();
Form form_obj = new login();
form_obj.Show();
}
count -= 0.02;
this.Opacity = count;
}
تایمر اول فرم رو کمکم نشون میده ، دومی مکث لازم رو انجام میده و سومی دوباره اونو محو میکنه و فرم اصلی رو باز می کنه .
موفق باشید

sinpin
پنج شنبه 29 آذر 1386, 23:12 عصر
سلام
اون چیزی رو که شما میگید من با استفاده از سه تا تایمر ساختم ، اینم کدش :

double count=0.0;
int t = 1;
//
private void timer1_Tick(object sender, EventArgs e)
{
count += 0.02;
this.Opacity = count;
if (count > 1.0)
{
timer2.Enabled = true;
timer1.Enabled = false;
}
}

private void timer2_Tick(object sender, EventArgs e)
{

if (t == 100)
{
timer3.Enabled = true;
timer2.Enabled = false;
}
label1.Text = t.ToString() + '%';
t += 1;
progressBar1.Value = t - 1;
}

private void timer3_Tick(object sender, EventArgs e)
{
if (count < 0.0)
{
timer3.Enabled = false;
this.Hide();
Form form_obj = new login();
form_obj.Show();
}
count -= 0.02;
this.Opacity = count;
}تایمر اول فرم رو کمکم نشون میده ، دومی مکث لازم رو انجام میده و سومی دوباره اونو محو میکنه و فرم اصلی رو باز می کنه .
موفق باشید

شاید بهتر باشه تا حد امکان عملیاتها رو با کمترین تعداد کنترل انجام بدیم و زیاد ریخت و پاش (!) نکنیم.
مثلا این مثال رو میشه فقط با یک کنترل تایمر انجام داد.
شاید این موضوع توی این مثال کوچیک به چشم نیاد اما مغایر اصول اولیه برنامه نویسی است.

مهدی رحیم زاده
جمعه 30 آذر 1386, 07:37 صبح
شاید بهتر باشه تا حد امکان عملیاتها رو با کمترین تعداد کنترل انجام بدیم و زیاد ریخت و پاش (!) نکنیم.
مثلا این مثال رو میشه فقط با یک کنترل تایمر انجام داد.
شاید این موضوع توی این مثال کوچیک به چشم نیاد اما مغایر اصول اولیه برنامه نویسی است.

شما کاملا درست می گید .
من این برنامه رو اوایل شروع کار برنامه نویسیم نوشته بودم . قصدم فقط آشنا کردن دوستمون با نحوه کد نویسی بود .

mohsenns5
جمعه 30 آذر 1386, 15:15 عصر
با تشکر از همگی ایرادات برطرف شد.
حال یه سوال دیگه:
چطوری میشه در همین لوگو یک Lable بزاریم که متناسب با لود شدن برنامه از صفر تا صد رو نشون بده اگرم یه طرح خاص رو دارید مثلا با یه پروگرس بار یا چیز دیگه ای چه بهتر

hassan razavi
جمعه 30 آذر 1386, 15:47 عصر
اون ProgressBar که شما در برنامه های دیگه میبینید و منظورتون هست ، پیشرفت Load شدن آن فرم Logo رو نشون نمیده بلکه مربوط به Load شدن چیزهای دیگر برنامه مثل منابع ، گزارشات ، فرمهای دیگه و ... هست. باید دید برنامه شما چه چیزهایی رو برا Load شدن داره.