برگزیده های پرشین تولز

سوالات برنامه نويسي : VB

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
یه تاپیک این مدلی داشتم قبلا پیداش نکردم ... پیدا کنم ادغام میکنم با این ....

عرض شود که ... یه همچین چیزی احتیاج دارم ! گیر نیاوردم ...


این عکس ها ماله برنامه Download Accelerator هست ... حالا یا مدل شماره ۱ یا ۲ ... یا جفتش :blush: sample بدید ممنون میشم .

attachment.php
 

فایل های ضمیمه

  • vb.gif
    vb.gif
    15.9 KB · نمایش ها: 30

saeedsmk

مدیر بازنشسته
تاریخ عضویت
6 سپتامبر 2003
نوشته‌ها
1,518
لایک‌ها
4
منظورت لیست های که بقلشون ایکون دارن ؟
 

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
شایان جان اینها با یک کنترل TreeView که در مجموعه کمپوننتهای Microsoft Windows Common Controls 6.0 هست به راحتی ایجاد میشه. اینجا رو ببین: http://www.devx.com/vb/Article/9707
برای تصویرهاش باید یک کنترل ImageList بزاری که باز هم تو اون مجموعه هست. و ImageList کنترل TreeView رو برابر همون ImageList ای که داری قرار میدی و برای هر نود یک ایندکس از اون انتخاب میکنی. برای اینکه علامتهای + و - رو نشون نده و یا خطها و ... از خصوصیت Style استفاده کن.
 

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
‍پرهام جان دمت گرم ! اقا مشکل من ۹۰٪ حل شده ! فقط یه ریزه کاری داره.


attachment.php


الان من اینو درست کردم ... ۲ تا مشکل دارم . اول اینکه اولین عنصر من ( persiantools ) خیلی چسبیده به چپ ! میخوام بیاد وسط تر . البته یه راه داره که LineStyle رو RootLine بذارم بعد با اون عدد کمو زیاد کنم ... ولی نمیخوام اون rootline باشه ... میخوام خودش بیاد راست !

مشکل دوم اینه که من در حالت عادی تو یه project جدید که اینو درست میکنم ، وقتی برنامه رو اجرا میکنم ، این persiantools خودش باز هست و داره عنصر های توش رو نشون میده ، ولی وقتی میبرم توی اون برنامه اصلیم ( که دارم روش کار میکنم ) موقع شروع برنامه ، Persiantools بسته هست و باید کلیک کنم روش تا باز بشه !

حالا من میخوام که اولا اون موقع شروع باز باشه ، دوما اصلا بسته نشه ! یعنی user روش کلیک کرد هم بسته نشه !

ممنون :*
 

فایل های ضمیمه

  • treeview.gif
    treeview.gif
    1.7 KB · نمایش ها: 36

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
برنامه نویسای عزیزم ! :D کجایید ؟! :x
 

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
ناخقثسوال قبلیم همچنان پا برجاس !

سوال جدید :

یه همچین چیزی داریم

attachment.php

خب از ظاهرش معلومه چیه و قراره چی کار کنه ... قراره با اون قسمت بالا username و password و add هر چی وارد کردیم به این لیست پایین اضافه بشه بدون ترتیب و این چیزا ... خب تا اینجاش مشکلی نیست ... بعد رو هر کدوم رو که select کردیم ... با اون دکمه remove حذف کنیم . تا اینجاشم مشکلی نیست !​

حالا سوال !‌سوال اینه که من این لیست و میخوام با دکمه save یه جا ذخیره کنم ... ترجیحا میخوام یه فایل ساده مثل txt یا ini باشه ... نمیخوام از db و اینا استفاده کنم ... چطوری و با چی save کنم ... و وقتی save شد تموم شد ... دفعه بد که برنامه رو اجرا کردم ، این لیست رو از اونجا که save کرده بخونه ... و اون item ی که select بوده قبلا ، بازم select بشه ! .

منتظر جواب هستم ... دمتون گرم .


( فایل خام این فرم رو اتچ کردم برای راحتی کارتون :D )
 

فایل های ضمیمه

  • screenshot.gif
    screenshot.gif
    7.8 KB · نمایش ها: 32
  • VB_PT.zip
    9.4 KB · نمایش ها: 7

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از شايان :
حالا سوال !‌سوال اینه که من این لیست و میخوام با دکمه save یه جا ذخیره کنم ... ترجیحا میخوام یه فایل ساده مثل txt یا ini باشه ... نمیخوام از db و اینا استفاده کنم ... چطوری و با چی save کنم ... و وقتی save شد تموم شد ... دفعه بد که برنامه رو اجرا کردم ، این لیست رو از اونجا که save کرده بخونه ... و اون item ی که select بوده قبلا ، بازم select بشه ! .

منتظر جواب هستم ... دمتون گرم )
به سورس دفترچه یادداشت تاپیک آموزش وی بی یه نگاه بنداز. دو تا فانکشنsave و load همین کارها رو میکنن. دستورات open, print, input, close
 

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
balabala جان ... من میتونم تو فایل بریزم و load کنم ! ولی من میخوام بعدش که خواستم بخونم ، اینارو هر کدوم تو یه line ه این list بذاره ... و اون قضیه که موقع save کدون item رو select کرده بوده ... که موقع load هم همون select بشه !
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
سلام.اگه ميخواي كارت خيلي راحت بشه از (FSO(FileSystemObject واسه خوندن و نوشتن خط ها استفاده كن(توضيح بدم؟)

براي اون آيتمي هم كه Select شده ميتوني مثلا شماره ايندكس اون آيتم رو به عنوان خط اول توي فايل بنويسي و بعد دوباره بخوني(خصوصيت ListIndex مربوط به ListBox)
 

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
ایول ! من مشکل خوندن نوشتن انچنان نداشتم ... نمیدونم این FSO همونیه که من دارم باهاش کار میکنم یا نه ... مشکلم با این select بود که بیشتر یه تکنیک هست ... اینی که شما گفتی خیلی روش خوبیه ! فکر کنم از همین روش استفاده کنم ... اول میخواستم اول یا اخر اون خط select شده یه کاراکتری چیزی بذارم ... بعد دیدم دردسر داره :D
 

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
خب اون مشکل پست های قبلیم رو نظری ندارید ؟



attachment.php


الان من اینو درست کردم ... ۲ تا مشکل دارم . اول اینکه اولین عنصر من ( persiantools ) خیلی چسبیده به چپ ! میخوام بیاد وسط تر . البته یه راه داره که LineStyle رو RootLine بذارم بعد با اون عدد کمو زیاد کنم ... ولی نمیخوام اون rootline باشه ... میخوام خودش بیاد راست !

مشکل دوم اینه که من در حالت عادی تو یه project جدید که اینو درست میکنم ، وقتی برنامه رو اجرا میکنم ، این persiantools خودش باز هست و داره عنصر های توش رو نشون میده ، ولی وقتی میبرم توی اون برنامه اصلیم ( که دارم روش کار میکنم ) موقع شروع برنامه ، Persiantools بسته هست و باید کلیک کنم روش تا باز بشه !

حالا من میخوام که اولا اون موقع شروع باز باشه ، دوما اصلا بسته نشه ! یعنی user روش کلیک کرد هم بسته نشه !

ممنون :*
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از شايان :
خب اون مشکل پست های قبلیم رو نظری ندارید ؟



attachment.php


الان من اینو درست کردم ... ۲ تا مشکل دارم . اول اینکه اولین عنصر من ( persiantools ) خیلی چسبیده به چپ ! میخوام بیاد وسط تر . البته یه راه داره که LineStyle رو RootLine بذارم بعد با اون عدد کمو زیاد کنم ... ولی نمیخوام اون rootline باشه ... میخوام خودش بیاد راست !

مشکل دوم اینه که من در حالت عادی تو یه project جدید که اینو درست میکنم ، وقتی برنامه رو اجرا میکنم ، این persiantools خودش باز هست و داره عنصر های توش رو نشون میده ، ولی وقتی میبرم توی اون برنامه اصلیم ( که دارم روش کار میکنم ) موقع شروع برنامه ، Persiantools بسته هست و باید کلیک کنم روش تا باز بشه !

حالا من میخوام که اولا اون موقع شروع باز باشه ، دوما اصلا بسته نشه ! یعنی user روش کلیک کرد هم بسته نشه !

ممنون :*
- مشکل فایل رو که دوستمون گفت، شما ایندکس لیست رو ذخیرهش کن.

- اگر از rootline نمیخوای استفاده کنی میتونی یه کلکی بزنی، Appearance ش رو 0 کن، بعد یه PictureBox بگذار توی فرمت، BackColorش رو بکن Window Background یا سفید، بعد کنترل درختیت رو کات، پیست کن توی پیکچر باکس، هر جاییش دوست داشتی قرار بده، از بوردرهای پیکچر باکس بجای بوردش استفاده کن!

- برای اکسپند کردنش باید ایندکسش رو بدونی که فکر کنم 1 باشه، بعد از این هنگام لود برنامه استفاده کن:
کد:
TreeView1.Nodes(1).Expanded = True
برای بسته نشدنش هم فکر کنم این کد توی ایونت Collapse کار کنه: (مطمئن نیستم)
کد:
Private Sub TreeView1_Collapse(ByVal Node As ComctlLib.Node)
If Not Node.Expanded Then Node.Expanded = True
End Sub
 

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
اقا دمت گرم ... فعلا رو expand و بسته نشدن کار کردم و جواب گرفتم !

راستی این کدی که دادی رو اینطوری کردم ...


Private Sub TreeView1_Collapse(ByVal Node As Node)
If Not Node.Expanded Then Node.Expanded = True
End Sub


الان میرم رو اون قسمت icon و اینا ...​
 

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
اینی که گفته بودی در مورد فاصله و اینا ... نخونده بودم ! الان خوندم :D

کاره خوبیه ! یعنی کلک زدی ! :D ولی خب کسی متوجه نمیشه ... :D ممنون ! کارم راه افتاد ... مرسی از وقتی که گذاشتی :)
 

saeedsmk

مدیر بازنشسته
تاریخ عضویت
6 سپتامبر 2003
نوشته‌ها
1,518
لایک‌ها
4
خوش حالم کارت را ه افتاد . یک راه حل دیگه هم برای اکسپند تمامی ریشه های بالایی تا خود جزء هم هست
اگر گره lمورد نظر داری ایندس 10 باشه با کد زیر تمامی شاخه های والد تا این گزینه باز میشوند
کد:
        Dim nodX As Node
        Set nodX = TreeView1.Nodes(10)
        nodX.EnsureVisible ' Expand tree to see all nodes
        set nodX = Nothing
 

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
ممنون سعید جان .

سوال بعدی :">

فرض کنید تو یه فرم ... فقط یه TextBox هست ... و background color فرم رو هم دادم مثلا قرمز ! حالا میخوام یطوری بشه که background color این textbox بشه همون ماله form ! یعنی الان که قرمز هست ، اینم قرمز باشه ... اگر آبی شد اینم آبی بشه !

یه جورایی transparent باشه ... اصلا از خودش رنگ نداشته باشه و رنگ موجودیت زیر خودش رو نشون بده !

میشه ؟
 

شايان

مدیران قدیمی
تاریخ عضویت
2 سپتامبر 2003
نوشته‌ها
4,813
لایک‌ها
9
یه سوال دیگه ... میخوام یه عکس داشته باشم ... که محتوای توش رو از یه ImageList بخونه ! میشه ؟

و دیگه اینکه میخوام کلا برنامه رو Skinable کنم ... چه راهی رو پیشنهاد میکنید ... ؟ ( اصولیش چیه ؟ یعنی برنامه های خفن چی کار میکنن ؟‌)
 

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
به نقل از شايان :
ممنون سعید جان .

سوال بعدی :">

فرض کنید تو یه فرم ... فقط یه TextBox هست ... و background color فرم رو هم دادم مثلا قرمز ! حالا میخوام یطوری بشه که background color این textbox بشه همون ماله form ! یعنی الان که قرمز هست ، اینم قرمز باشه ... اگر آبی شد اینم آبی بشه !

یه جورایی transparent باشه ... اصلا از خودش رنگ نداشته باشه و رنگ موجودیت زیر خودش رو نشون بده !

میشه ؟
تو وی بی دات نت برای هر کنترل یک رویداد به نام BackColorChanged داریم که میشد تو اون بنویسی که رنگ تکست باکس رو تغییر بده ولی تو وی بی قدیم نه. یا اینکه خیلی راحت تر میشد یک کنترل تکست درست کرد که خود بخود رنگ زمینه رو از Parent بگیره. همونطور که اکثر کنترلها در دات نت اکثر خصوصیات مشترکشون رو از Parent به ارث میبرن. کلا این دات نت خیلی راحت تره! چه تو کد نویسی، چه طراحی اینترفیس. چرا ول نمیکنین این وی بی قدیمه رو؟!;)
حالا بریم سر اصل مطلب: تو وی بی فقط کنترل لیبل و ایمیج هست که اینطوری میشه. برای تکست باید کد بنویسی. اگر که این تغییر رنگ فرم در یک روال خاصی اتفاق میفته خوب تو اون روال بنویس که رنگ تکست باکس رو عوض کنه. در غیر اینصورت میتونی از رویداد Paint فرم استفاده کنی که پیشنهاد نمیشه. چون این روال دائما در حال اجراست.
 

Parham

Registered User
تاریخ عضویت
24 سپتامبر 2003
نوشته‌ها
1,042
لایک‌ها
2
به نقل از شايان :
یه سوال دیگه ... میخوام یه عکس داشته باشم ... که محتوای توش رو از یه ImageList بخونه ! میشه ؟

و دیگه اینکه میخوام کلا برنامه رو Skinable کنم ... چه راهی رو پیشنهاد میکنید ... ؟ ( اصولیش چیه ؟ یعنی برنامه های خفن چی کار میکنن ؟‌)
برای اولی:
کد:
Picture1.Picture = ImageList1.ListImages(1).Picture
ایندکس ImageList از یک شروع میشه.
برای دومی هم من راه اصولی خاصی سراغ ندارم چون تا حالا دنبالش نبودم!
 
بالا