PDA

View Full Version : شبیه سازی my computer



mehdi_mohamadi
چهارشنبه 27 دی 1385, 13:39 عصر
سلام
من چطوری می تونم یه پنل ایجاد کنم مانند my computer که بتونم داخل اون از آیکونهای دلخواهم استفاده کنم و با کلیک روی آیکونها وارد فرم مورد نظر بشم؟ و عملیاتی نظیر جابه جا کردن آیکونها را داشته باشم؟

با تشکر

m-khorsandi
چهارشنبه 27 دی 1385, 14:04 عصر
شاید منظورت این باشه : ساخت منوی عمودی (http://www.barnamenevis.org/forum/showthread.php?t=40752)

mehdi_mohamadi
چهارشنبه 27 دی 1385, 14:08 عصر
نه من منظورم اینه که وقتی روی یه منو کلیک کردم یه پنل باز بشه که داخل اون آیکونهایی شبیه به درایو های هارد باشه که دستور کلیک را بشه روی اونها تعریف کرد.
ضمنا" آیکونها به همراه یه تکست زیر اونها هستش مثل نرم افزار همکاران سیستم

m-khorsandi
چهارشنبه 27 دی 1385, 14:36 عصر
اگه از دلفی 7 استفاده میکنی، تو تب Sample ، کامپوننتی (ShellListView) برای این کار داره، شاید دلفی 6 هم داشته باشه.

mehdi_mohamadi
چهارشنبه 27 دی 1385, 14:57 عصر
من یه چیزی شبیه همین می خوام ولی با این تفاوت که عناصر داخلیش رو خودم ایجاد کنم

m-khorsandi
چهارشنبه 27 دی 1385, 15:33 عصر
از کامپوننت ListView تو تب Win32 استفاده کن، ویژگی ViewStyle باید برابر با vsIcon باشه و به هر آیتمی هم که میسازی میتونی یه Icon اختصاص بدی.

MNosouhi
چهارشنبه 27 دی 1385, 15:40 عصر
من یه چیزی شبیه همین می خوام ولی با این تفاوت که عناصر داخلیش رو خودم ایجاد کنم
کافیه یه پوشه ایجاد کنید و داخل اون ساختاری رو که میخاید پیاده سازی کنید (مثلا برای هر درایو یک پوشه بسازید ) و آیکن پوشه ها رو هم با کد نویسی به هر شکلی که خودتون میخاید تغییر بدید و با ابزار shelltreeview محتویات فقط همون پوشه رو نشون بدبد.
من قبلا با همین روشی خدمدتون عرض کردم برنامه نوشته ام و محیط کامپیوتر را شبیه سازی کرده ام .

mehdi_mohamadi
پنج شنبه 28 دی 1385, 08:19 صبح
آیا امکان راست به چپ کردن عناصر لیست ویو وجود دارد؟ چگونه؟

حرفه ای
پنج شنبه 28 دی 1385, 08:54 صبح
دوست خوبم :لبخندساده:
از کد زیر استفاده کن :


const
WS_EX_NOINHERITLAYOUT = $00100000; // Disable inheritence of mirroring by children
WS_EX_LAYOUTRTL = $00400000; // Right to left mirroring

procedure SetWinControlBiDi(Control: TWinControl);
var
ExStyle: Longint;
begin
ExStyle := GetWindowLong(Control.Handle, GWL_EXSTYLE);
SetWindowLong(Control.Handle, GWL_EXSTYLE, ExStyle or WS_EX_RTLREADING or WS_EX_RIGHT
or WS_EX_LAYOUTRTL or WS_EX_NOINHERITLAYOUT );
end;


بعد دستور زیر رو هم توی FormCreate بنویس :


SetWinControlBiDi(ListView1);



موفق باشی :چشمک:

m-khorsandi
پنج شنبه 28 دی 1385, 12:09 عصر
تا جائیکه من میدونم، این کد باعث میشه که Hint یی روی ListView نمایش داده نشه.

Hamid_PaK
پنج شنبه 28 دی 1385, 13:29 عصر
عناوین موجود ( Titles ) در این کامپوننت نیز دچار مشکل خواهد شد ...

یا حق ...