ايران ويج

نسخه‌ی کامل: ایجاد کنترل ها در ماژول
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام.
برنامه ای نوشتم که فقط ماژول داره و اجازه استفاده از فرم رو به دلایلی ندارم.
حالا نیازمند استفاده از FileListBox و DirLisBox و DriveListBox هستم.
چه طور میتونم بدون فرم این کنترل ها رو در ماژول داشته باشم.
دوست من سلام

وقتی شما از فرم استفاده نمی کنید و در واقع همون sub main میشه تابعی که اولین بار توسط سیستم عامل صدا زده میشه ، از هیچ کنترلی نمی تونید استفاده کنید . توی سیستم عامل ویندوز کنترل ها روی فرم رسم میشن و بدون فرم کنترل ها مفهومی ندارن .
بهترین راه حل اینه که از توابع API استفاده کنی و عملکرد این کنترل ها رو شبیه سازی کنی . مثلا یک آرایه داینامیک رو در نظر بگیری که اسم Drive ها رو توش بریزی . دوتا آرایه داینامیک مجزا هم برای Directory و Filename در نظر بگیری . حالا آرایه اول رو می کنی مرجع و وقتی یکی از اعضای آرایه اول انتخاب شد ( میشه انتخاب یکی از درایو ها ) حالا میای و آرایه دوم و سوم رو با کمک توابع API پر می کنی . در این حالت آرایه ها میتونن نقش همون کنترل ها رو برات بازی کنن . البته اگر آرایه رو ساختمان داده مناسبی ندیدی میتونی از collection ها استفاده کنی به جای آرایه .
سلام.
ممنون از راهنماییتون.
راهنمایی شما کامل و مناسبه. ولی من به خود فایل لیست باکس و ... نیاز دارم. امکانش نیست با کدنویسی ایجادشون کنم؟
dim Test as FileListBox این دستور هم جواب میده ولی نمیتونم بهش آدرس بدم و سر این خط ارور میده " Test.Path = "C:\a
فولدر a هم موجوده.
کد:
Dim Flb As FileListBox
Sub Main()
Set Flb = Form1.Controls.Add("VB.FileListBox", "File1")
Flb.Path = "c:\WINNT"
For i = 0 To Flb.ListCount - 1
MsgBox Flb.List(i)
Next i
End Sub

فک کنم همین باشه
راستی اینو نگفتم اینجا(Module) نمیتونی در خط اول یعنی همون Dim ....
از WithEvents استفاده کنی چون Module هیچ رخدادی رو بجز Sub Main
قبول نمیکنه
Payman62 نوشته است:سلام.
ممنون از راهنماییتون.
راهنمایی شما کامل و مناسبه. ولی من به خود فایل لیست باکس و ... نیاز دارم. امکانش نیست با کدنویسی ایجادشون کنم؟
dim Test as FileListBox این دستور هم جواب میده ولی نمیتونم بهش آدرس بدم و سر این خط ارور میده " Test.Path = "C:\a
فولدر  a  هم موجوده.
حالا من یک سوال ازت دارم:
چطور می خوای از فایل لیست باکس استفاده کنی؟! در حالی که اصلا اون رو نمی تونی ببینی!!!
یعنی اینکه باید یک شیء داشه باشی که خاصیت Continer داشته باشه تا بتونی اون فایل لیست رو روش بزاری و بعد نمایشش بدی ...
اگر منظورت این هست که می خوای از خواص اون فایل لیست استفاده کنی از API بهتره بگیری (همون طور که Mamad2003 بهش اشاره کرد)
drag جان وقتی به API نیاز نیست دیگه API چرا
Pedram_HookEx نوشته است:drag جان وقتی به API نیاز نیست دیگه API چرا
منظورم رو متوجه نشدی
درواقع کاربرد لیست فایل چیز دیگه ایه و اگر از اون بخوای به این شکل استفاده کنی.
مثلا بدون هیچ فرمی چطور می خواد از کدت استفاده کنی؟!
بدون وجود فرم به هیچ وجه نمیشه ! وجودیت شی در حافظه هیچ نشانی بر استفاده ازش نیست . من نمی دونم شما دنبال چی هستی ولی چیزی که من گفتم باید کارت رو راه بندازه . تمام خواص این کنترل ها با API قابل دسترسی هست و نیازی به خودش نیست .
Darg نوشته است:
Pedram_HookEx نوشته است:drag جان وقتی به API نیاز نیست دیگه API چرا
منظورم رو متوجه نشدی
درواقع کاربرد لیست فایل چیز دیگه ایه و اگر از اون بخوای به این شکل استفاده کنی.
مثلا بدون هیچ فرمی چطور می خواد از کدت استفاده کنی؟!

دقیقا میشه این کارو کرد

فقط ادرس یه پوشه درست رو بهش بده

اون کدو توی یه ماژول بزاری میبینی که کار میکنه
دلیلش هم اینه که وقتی میخوای یه شیئ رو تعریف کنی دو مرحله داره
مرحله اول باید اونو تعریف کنی(Dim) و بعد هم اونو بصورت Dynamic تعریف کنی(Set)

آقا پدارم شما که شی form رو استفاده کردی !

("Set Flb = Form1.Controls.Add("VB.FileListBox", "File1

توی این خط کد ، شما به شی Form1 اشاره کردی !! خب توی کل Project ما که فرمی نداریم اونوقت چطور این کامپایل میشه ؟؟؟!!
صفحه‌ها: 1 2