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

اديتور در دلفي

شروع موضوع توسط M-r-r ‏13 دسامبر 2005 در انجمن Delphi

  1. M-r-r

    M-r-r کاربر تازه وارد

    تاریخ عضویت:
    ‏10 فوریه 2004
    نوشته ها:
    381
    تشکر شده:
    0
    محل سکونت:
    in my clothes
    سلام
    ميخوام يه سري فايل با پسوند vip رو كه همگي در فولدر c:\viputil\users قرار دارند رو توسط دلفي اديت كنم .
    يعني يه فايل اجرايي رو كپي كنم اونجايي كه فايل ها هستند . بعد كه فايل اجرا شد همه ي فايل ها رو ليست كنه و با انتخاب هر فايل اون رو در پنجره ي كناري نشون بده .
    ممنون ميشم كمكم كنيد .
     
  2. programmer

    programmer کاربر تازه وارد

    تاریخ عضویت:
    ‏1 نوامبر 2005
    نوشته ها:
    84
    تشکر شده:
    0
    میشه بیشتر توضیح بدین .
    کدوم فایل اجرایی ؟
    میشه از یک Memo برای نمایش فایل استفاده کرد :
    کد:
    Form1.Memo1.Lines.LoadFromFile('C:\viputil\users\file.vip');
     
  3. M-r-r

    M-r-r کاربر تازه وارد

    تاریخ عضویت:
    ‏10 فوریه 2004
    نوشته ها:
    381
    تشکر شده:
    0
    محل سکونت:
    in my clothes
    منظور از فايل خروجي فايل تموم شده دلفي هست .
    من ميخوام يه اديتور داشته باشم كه يه سري فايل با يه پسوند خاص رو از يه فولدر لود كنم .
    آدرس رو حالا خيلي مهم نيست . خود فايل كپي ميشه همون جايي كه فايل ها هستند .
    اما ميخوام ليست فايل هاي با پسوند VIP رو نشون بده . حالا هر فايلي كه انتخاب شد در پنجره ي مقابلش نشونش بده . محتويات فايل ها هم متني و ساده هست و نياز به هيچ كاري نداره .
     
  4. programmer

    programmer کاربر تازه وارد

    تاریخ عضویت:
    ‏1 نوامبر 2005
    نوشته ها:
    84
    تشکر شده:
    0
    خوب اول یه Memo به فرم اضافه کنید برای نمایش دادن فایلها.

    بعد از سربرگ Win 3.1 یک عنصر DriveComboBox به فرم اضافه کنید.

    از همین سربرگ یک عنصر DirectoryListBox و یک FileListBox به فرم اضافه کنید.

    حالا یک سری تنظیمات برای ایجاد پیوند بین این اجزا باید انجام بشه:

    در پنجره Object Inspector برای عنصر DriveComboBox گزینه DirList رو با DirectoryListBox1 مقدار دهی کنید.

    برای عنصر DirectoryListBox هم گزینه FileList رو با FileListBox1 مقداردهی کنید.

    حالا برای ایجاد محدودیت در نمایش فایل ها برای عنصر FileListBox در قسمت Mask عبارت *.* رو مثلا به VIP.* یا هر پسوند دلخواه دیگه ای تغییر بدید.

    حالا با میتونید یه Button تو فرم بزارید و این کد رو داخل اون بزارید ، با این کد نام فایل انتخاب شده رو بدست بیارید و اون رو توی Memo نشون بدین:

    کد:
    Form1.Memo1.Lines.LoadFromFile(FileListBox1.FileName);
    اگه خواستید بگید تا برنامه رو براتون بفرستم.
     
  5. M-r-r

    M-r-r کاربر تازه وارد

    تاریخ عضویت:
    ‏10 فوریه 2004
    نوشته ها:
    381
    تشکر شده:
    0
    محل سکونت:
    in my clothes
    والله بازم متوجه نشدم !؟
    اگه امكانش باشه ممنون ميشم.
     
  6. M-r-r

    M-r-r کاربر تازه وارد

    تاریخ عضویت:
    ‏10 فوریه 2004
    نوشته ها:
    381
    تشکر شده:
    0
    محل سکونت:
    in my clothes
    اقا ممنون . تا قبل از دكمه رو گرفتم . خيلي خيلي عالي بود .
    امام ميخوام به صورتي باشه كه با انتخاب فايل مورد نظر محتواش در قسمت Memo نشون داده بشه .
    اينكار رو بايد چطوري انجام بدم ؟
    باز متشكرم.
     
  7. appbannerkhuniresbanner
  8. ma000055

    ma000055 Registered User

    تاریخ عضویت:
    ‏4 می 2003
    نوشته ها:
    95
    تشکر شده:
    0
    یه سر به event های filelistbox بزن
     
  9. programmer

    programmer کاربر تازه وارد

    تاریخ عضویت:
    ‏1 نوامبر 2005
    نوشته ها:
    84
    تشکر شده:
    0
    وقتی اون کد رو داخل تابع مربوط به فشردن کلید (Button) بزارین ،با فشردن کلید محتویات فایل در Memo نمایش داده میشه.یعنی اول باید فایل مورد نظر رو از FileListBox انتخاب کنید بعد دکمه رو بزنید تا فایل نمایش داده بشه.
    اما اینطور که فهمیدم شما می خواهید با کلیک روی نام فایل در FileListBox فایل نمایش داده بشه.
    برای این کار همونطور که دوستمون جناب ma000055 گفتند باید در قسمت event مربوط به FileListBox در مقابل قسمت OnClick دوبار کلیک کنید تا پروسجر مربوط به کلیک روی FileListBox در قسمت کد باز بشه.حالا این کد
    کد:
    Form1.Memo1.Lines.LoadFromFile(Form1.FileListBox1.FileName);
    رو داخل اون پروسجر کپی کنید. تا به این صورت بشه:
    کد:
    procedure TForm1.FileListBox1Click(Sender: TObject);
    begin
     Form1.Memo1.Lines.LoadFromFile(Form1.FileListBox1.FileName);
    end;
    حالا با کلیک کردن روی نام فایل محتویات اون در Memo نمایش داده میشه.
     
  10. M-r-r

    M-r-r کاربر تازه وارد

    تاریخ عضویت:
    ‏10 فوریه 2004
    نوشته ها:
    381
    تشکر شده:
    0
    محل سکونت:
    in my clothes
    ممنونم .
    خيلي خيلي لطف كردين . شرمنده ام اما ميخوام يه مقدار بيشتر پيش بريم . ..
    تا اينجا رو پيش رفتيم .
    حالا ميخوايم يه كاري كنيم كه بشه روي يوزر ها تغييرات اعمال كنيم .
    اما دو كليد در پايين داشته باشيم .
    يكي براي بازگرداندن تغييرات به حالت اوليه (Reset / Undo)
    و
    يكي براي ذخيره كردن تغييرات .
    ممنونم.
     
  11. programmer

    programmer کاربر تازه وارد

    تاریخ عضویت:
    ‏1 نوامبر 2005
    نوشته ها:
    84
    تشکر شده:
    0
    فکر کنم منظورتون از یوزرها همان فایل های باز شده باشد.
    خوب ، وقتی فایل داخل Memo باز شد حالا میشه روی اون تغییر ایجاد کرد. برای ذخیره این تغییرات در فایل باید از کد
    زیر استفاده کنید:
    کد:
    Form1.Memo1.Lines.SaveToFile(Form1.FileListBox1.FileName);
    البته این کد رو باید داخل تابع مربوط به فشردن کلید Save (همون کلیدی که برای ذخیره تغییراته) قرار بدین.
    در ضمن بهتره برای اینکه کاربر متوجه ذخیره بشه یه پیغام هم تولید کنید. با این کد:
    کد:
    Showmessage('Delphi Editor >> File Saved Successfully .');
    این کد رو هم داخل تابع مربوط به فشردن کلید Save قرار بدین.
    هدف شما از بکار بردن دکمه Reset یا Undo رو نمی فهمم !
    می خواهید بعد از ذخیره یک فایل دوباره قادر به بازگرداندن اطلاعات قبلی به اون باشید ؟
    یا در موقع ویرایش،بتونید اطلاعات اولیه فایل رو دوباره برگردونید ؟
    در هر دو صورت این کار عملی هست فقط در حالت اول بیشتر کار میـــبره.
     
  12. M-r-r

    M-r-r کاربر تازه وارد

    تاریخ عضویت:
    ‏10 فوریه 2004
    نوشته ها:
    381
    تشکر شده:
    0
    محل سکونت:
    in my clothes
    خیلی خیلی ممنونم .
    منظورم از دکمه ریست اینه که وقتی یه فایل رو دستکاری کردیم و حالا به نوعی خواستیم بریم سراغ محتویات اولیه امکانش وجود داشته باشه . . . یعنی تا زمانی که Save نکردیم هیچ . اگه تغییری دادیم با زدن اون دکمه فایل بازخوانی بشه . اما اگه Save کردیم محتویات فایل نوشته بشن روی فایل .
    و یه چیز دیگه.
    میخوام یه کار دیگه هم کنم . یه چک باکس بزارم که در صورتی که اون چک باکس فعال باشه امکان Save کردن وجود داشته باشه . حالا یه چک باکس یا یه چیز دیگه . این رو هم میشه انجام داد ؟
    ممنونم.
    باید ببخشید .
     
  13. programmer

    programmer کاربر تازه وارد

    تاریخ عضویت:
    ‏1 نوامبر 2005
    نوشته ها:
    84
    تشکر شده:
    0
    سلام
    میتونی برنامه رو از این آدرس بگیری.
    برنامه رو به صورت پروژه دلفی گذاشتم.اول Unzip ش کن بعد با دلفی بازش کن.
    فقط فیلد Mask مربوط به FileListBox1 رو روی vip.* تنظیم کن تا فقط فایل های مورد نظرت رو نشون بده.
    چک باکس و دکمه Save و Reset رو هم داره.
     
  14. avajang.com .leftavajang.com.right
  15. M-r-r

    M-r-r کاربر تازه وارد

    تاریخ عضویت:
    ‏10 فوریه 2004
    نوشته ها:
    381
    تشکر شده:
    0
    محل سکونت:
    in my clothes
    آقا ممنون . به خدا راضي به زحمت نبودم . .
    اما لينك دانلود كار نميكنه متاسفانه . . .
     
  16. programmer

    programmer کاربر تازه وارد

    تاریخ عضویت:
    ‏1 نوامبر 2005
    نوشته ها:
    84
    تشکر شده:
    0
    خواهش می کنم زحمتی نبود.
    من لینک رو چند بار امتحان کردم جواب داد !
    خوب ایراد نداره .همین جا توضیح میدم :

    [​IMG]

    فرم برنامه ات تقریبآ شبیه این عکس میشه.
    اگه عکس نمایش داده نشده اینجا ببینش.

    دکمه های Save و Reset و یک CheckBox رو روی فرم قرار بده .
    روی دکمه Save دابل کلیک کن و این کد رو داخلش بنویس:

    کد:
    if(Form1.FileListBox1.FileName<>'')then
     begin
      if(Form1.CheckBox1.Checked)then
      begin
       Form1.Memo1.Lines.SaveToFile(Form1.FileListBox1.FileName);
       showmessage('File Saved Successfully.');
      end
      else
       showmessage('Can not Save to File. Enable <Can Edit Files> .');
     end
     else
      showmessage('Error :: First Select a File From FileListBox !');
    برای دکمه Reset هم این کد رو بزار :
    کد:
     if(Form1.FileListBox1.FileName<>'')then
      Form1.Memo1.Lines.LoadFromFile(Form1.FileListBox1.FileName)
     else
      showmessage('Error :: First Select a File From FileListBox !');
    
     
  17. programmer

    programmer کاربر تازه وارد

    تاریخ عضویت:
    ‏1 نوامبر 2005
    نوشته ها:
    84
    تشکر شده:
    0
    در ضمن برای اینکه متن کل فایل توی Memo راحت نمایش داده بشه خاصیت ScrollBar مربوط به Memo رو با ssBoth مقدار دهی کن.
     
  18. M-r-r

    M-r-r کاربر تازه وارد

    تاریخ عضویت:
    ‏10 فوریه 2004
    نوشته ها:
    381
    تشکر شده:
    0
    محل سکونت:
    in my clothes
    آقا ممنونم . واقعا نميدونم اين لطفتون رو بايد چطوري جبران كنم . . .
    بازم متشكرم .
     
  19. MineMoZa

    MineMoZa کاربر تازه وارد

    تاریخ عضویت:
    ‏6 فوریه 2007
    نوشته ها:
    219
    تشکر شده:
    1