ورود

View Full Version : روش استفاده TrackBar1 در Memo



khorsandreza
سه شنبه 17 فروردین 1389, 09:47 صبح
سلام
من یک کامپوننت Memo را در فرم قرار دادم میخواهم اسکرول بار خود Memo نمایش داده نشود و در عوض با استفاده از TrackBar1 خودم بصورت دستی (کد نویسی) متن موجود در Memo اسکرول بکنم
ممنون از لطف دوستان
تصویر را مشاهده بفرمائید

Felony
سه شنبه 17 فروردین 1389, 10:05 صبح
خاصیت ScrollBar شئ memo رو روی ssNone قرار بدید و توسط متد ScrollBy شئ Memo هم میتونید متن رو به مختصات مورد نظر Scrool کنید .

nilidelphi
سه شنبه 17 فروردین 1389, 10:21 صبح
شما میتونید به خاصیت max ترکبار خاصیت height عنصر ممورو قرار داده و در رویداد onchange عنصر ترکبار مقدار خاصیت position ترکبار رو به متد ScrollBy ممو نسبت بدید.

khorsandreza
سه شنبه 17 فروردین 1389, 11:24 صبح
شما میتونید به خاصیت max ترکبار خاصیت height عنصر ممورو قرار داده و در رویداد onchange عنصر ترکبار مقدار خاصیت position ترکبار رو به متد ScrollBy ممو نسبت بدید.
با این روش فقط یک سطر را در دخل Memo حرکت میده و تکرار میکنه شکل زیر را ببنید

nilidelphi
سه شنبه 17 فروردین 1389, 16:10 عصر
با این روش فقط یک سطر را در دخل Memo حرکت میده و تکرار میکنه شکل زیر را ببنید


دوست گرامي (آذري همزبان) باغيرت ..... مي خواستم تركي بنويسم ولي قوانين سايت اجازه نميده.

راستش برنامه نويس بايد يكم خلاقيت داشته باشه
مثلا در مورد همين مورد شما من گفتم memo1.heigth رو قرار بده تو خاصيت max تركبار ولي شما بايد اينو از گفته هام متوجه ميشديد كه بايد هر دفعه كه به تعداد خطوط در ممو اضافه ميشه به همان اندازه هم به ميزان max تركبار اضافه كنيد.

بايد چك كنيد كه هر وقت خطوط طولاني تر از ارتفاع ممو باشه هر دفعه به ماكس تركبار اضافه كنيد.
براي اين كار در شي ممو يك رويداد مناسب(Event) رو پيدا كن و كدت رو بنويس.


bu manem emailem :
Nili_ORUsoft@yahoo.com

موفق باشيد.

khorsandreza
چهارشنبه 18 فروردین 1389, 13:20 عصر
بايد اينو از گفته هام متوجه ميشديد كه بايد هر دفعه كه به تعداد خطوط در ممو اضافه ميشه به همان اندازه هم به ميزان max تركبار اضافه كنيد.





سلام
با پوزش تمام روشی که شما گفتید را طی می کنم ولی قسمت که بتعداد خطوط را نوشید اضافه شدنش را جطوری تشخیص میدین اصلا سر در نیاوردم در Memo من 30 سطر متن هست ولی ارتفاع آن طوری نتظیم شده که میتواند 6 سطرا نشان دهد حال با بصورت دستی میخواهم متن را بالا و پائین بکنم از دستور زیر استفاده میکنم ولی ...



procedure TMainForm.SlideBar2Change(Sender: TObject);
Var
XPM,M1,M2:Integer;
begin
M2 := 100 - Trunc(SlideBar2.Position);
DBMemo1.ScrollBy(0,M2);
DBMemo1.UpdateControlState;
end;