آژانس هواپیماییexchanging

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

شروع موضوع توسط شايان ‏21 فوریه 2006 در انجمن Visual Basic 6

  1. شايان

    شايان مدیران قدیمی

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

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


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

    [​IMG]
     

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

    • vb.gif
      vb.gif
      اندازه فایل:
      15.9 KB
      نمایش ها:
      30
  2. saeedsmk

    saeedsmk مدیر بازنشسته

    تاریخ عضویت:
    ‏6 سپتامبر 2003
    نوشته ها:
    1,519
    تشکر شده:
    4
    منظورت لیست های که بقلشون ایکون دارن ؟
     
  3. Parham

    Parham Registered User

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

    شايان مدیران قدیمی

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


    [​IMG]


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

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

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

    ممنون :*
     

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

    • treeview.gif
      treeview.gif
      اندازه فایل:
      1.7 KB
      نمایش ها:
      36
  5. شايان

    شايان مدیران قدیمی

    تاریخ عضویت:
    ‏2 سپتامبر 2003
    نوشته ها:
    4,806
    تشکر شده:
    9
    برنامه نویسای عزیزم ! :D کجایید ؟! :x
     
  6. شايان

    شايان مدیران قدیمی

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

    سوال جدید :

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

    [​IMG]

    خب از ظاهرش معلومه چیه و قراره چی کار کنه ... قراره با اون قسمت بالا 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
  7. appbannerkhuniresbanner
  8. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,350
    تشکر شده:
    1,322
    محل سکونت:
    یه خورده اونورتر
    به سورس دفترچه یادداشت تاپیک آموزش وی بی یه نگاه بنداز. دو تا فانکشنsave و load همین کارها رو میکنن. دستورات open, print, input, close
     
  9. شايان

    شايان مدیران قدیمی

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

    m3hrz4d Registered User

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

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

    شايان مدیران قدیمی

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

    شايان مدیران قدیمی

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



    [​IMG]


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

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

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

    ممنون :*
     
  13. balabala

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,350
    تشکر شده:
    1,322
    محل سکونت:
    یه خورده اونورتر
    - مشکل فایل رو که دوستمون گفت، شما ایندکس لیست رو ذخیرهش کن.

    - اگر از 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
    
     
  14. avajang.com .leftavajang.com.right
  15. شايان

    شايان مدیران قدیمی

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

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



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

    شايان مدیران قدیمی

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

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

    balabala کاربر قدیمی پرشین تولز

    تاریخ عضویت:
    ‏22 می 2005
    نوشته ها:
    7,350
    تشکر شده:
    1,322
    محل سکونت:
    یه خورده اونورتر
    خواهش میکنم. [​IMG]
     
  18. saeedsmk

    saeedsmk مدیر بازنشسته

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

    شايان مدیران قدیمی

    تاریخ عضویت:
    ‏2 سپتامبر 2003
    نوشته ها:
    4,806
    تشکر شده:
    9
    ممنون سعید جان .

    سوال بعدی :">

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

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

    میشه ؟
     
  20. شايان

    شايان مدیران قدیمی

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

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

    Parham Registered User

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

    Parham Registered User

    تاریخ عضویت:
    ‏24 سپتامبر 2003
    نوشته ها:
    1,039
    تشکر شده:
    1
    برای اولی:
    کد:
    Picture1.Picture = ImageList1.ListImages(1).Picture
    
    ایندکس ImageList از یک شروع میشه.
    برای دومی هم من راه اصولی خاصی سراغ ندارم چون تا حالا دنبالش نبودم!