ورود

View Full Version : انتهاي يك صفحه متن



afshindelphikar
شنبه 08 تیر 1387, 11:23 صبح
سلام
چه طوري ميشه در يك صفحه richedit يه پاياني براش در نظر گرفت مثل يك صفحه worloffice كه وقتي به آخرش ميرسه خودبه خود ميره صفحه بعد .مثلا صفحمون اندازه يك صفحهA4 باشه و يه سواله ديگه اينكه چطوري در richedit بين خطوط فاصله تعيين كنم درست مثله word واگر اصلا اين كار با richedit نميشه و بايد كد نويسي كنم از كجا شروع كنم لطفا راهنماييم كنيد مرسي bye:چشمک:

Hsimple11
یک شنبه 09 تیر 1387, 12:25 عصر
RichEdit کنترل بسیار ساده ایست و قابلیت پیاده سازی اعمال مشابه آنچه در ورد میبینید را ندارد ولی میتوانید با استفاده از متد شمارش خطوط آن تعداد خطوط وارد شده را محدود کنید :


If MyRichEdit.Lines.Count > 16 then...

و یا طول و عرض richedit خود را برابر با طول و عرض A4 قرار دهید. ضمنا برای تنظیم فاصله بین خطوط :


procedure RE_SetLineSpacing(ARichEdit: TRichEdit; lineSpacing: Byte);
var
pf2: ParaFormat2;
begin
FillChar(pf2, SizeOf(pf2), 0);
pf2.cbSize := SizeOf(PARAFORMAT2);
pf2.dwMask := PFM_LINESPACING;
pf2.bLineSpacingRule := lineSpacing;
SendMessage(ARichEdit.Handle, EM_SETPARAFORMAT, 0, Longint(@pf2));
end;

//برای مثال فاصله خطوط را روی 1 تنظیم میکنیم
procedure TForm1.Button1Click(Sender: TObject);
begin
RE_SetLineSpacing(RichEdit1, 1);
end;

موفق باشید...

afshindelphikar
دوشنبه 10 تیر 1387, 18:10 عصر
دستت درد نكنه ايول خيلي خوب بود
حالا اگر من خودم بخوام يه چيزي مثل richedit بسازم بايد از كجا شروع كنم كسي ميتونه كمكم كنه ممنون ميشم فقط اولش سخته

Hsimple11
دوشنبه 10 تیر 1387, 18:38 عصر
دوست عزیز خواهشا از بیان چنین عباراتی خودداری کنید. اگر پست کسی مشکلمان را حل کرد تنها میتوانیم دکمه تشکر را فشار دهیم. نیازی به گفتن چیزی نیست.

در ضمن منظورتان را واضح تر بیان کنید. میخواهید کامپوننتی مشابه RichEdit بسازید یا یک برنامه ویرایشگر ساده؟ اگر منظورتان مورد دوم است قبلا در این مورد بحث شده. جستجو کنید.

موفق باشید...

afshindelphikar
سه شنبه 11 تیر 1387, 11:30 صبح
من ميخوام يه صفحه متن جديد با امكاناتي بيشتر از richedit بسازم ولي نمي دونم از كجا شروع كنم در ضمن اين متغير چيه
pf2: ParaFormat2;

Hsimple11
سه شنبه 11 تیر 1387, 12:16 عصر
ParaFormat2 ساختاری است که شامل اطلاعات مربوط به Format پاراگرافها در کنترل Richedit است. در واقع ParaFormat2 در مقایسه با ParaFormat ، نسخه جدید مربوط به Microsoft Rich Edit 2.0 می باشد. این ساختار دارای اجزایی مانند cbSize، dwMask و ... است. مثلا با اختصاص دادن cbSize به سایز خود Paraformat2 دیگر تنها به Richedit اجازه میدهیم از اجزای Paraformat استفاده کند و به نوعی Richedit خود را Customize کرده ایم.

اگر میخواهید یک ویرایشگر متن ساده بسازید میتوانی با استفاده از mainmenu ها و popup menu و Action ها برای کارهای ساده مثل Copy، Paste,Find,Replace,... استفاده کنید.

در ضمن میتوانید برای استفاده از محیط Microsoftword یا برنامه ویریشگر متنی دیگر در برنامه خود از کنترل OLEContainer استفاده کنید.

در هر دو مورد در سایت بحث شده. جستجو کنید.

موفق باشید...

afshindelphikar
چهارشنبه 12 تیر 1387, 18:24 عصر
منظورم اين بود كه خودم يه صفحه متن جديد بسازم يعني مثل كامپوننت richedit مي خوام يه برنامه مثل office word درست كنم ولي از rich يا memo استفاده نكنم. با richedit اين كارو كردم ولي بيشتر از word windows نشد بنويسم ميخوام خيلي پيشرفته تر باشه .
richedit2 از كجا گير بيارم دلفي من 7 هست ParaFormat2 نميشناسه خطا ميگيره

Hsimple11
چهارشنبه 12 تیر 1387, 20:45 عصر
منظورم اين بود كه خودم يه صفحه متن جديد بسازم يعني مثل كامپوننت richedit مي خوام يه برنامه مثل office word درست كنم ولي از rich يا memo استفاده نكنم. با richedit اين كارو كردم ولي بيشتر از word windows نشد بنويسم ميخوام خيلي پيشرفته تر باشه .
richedit2 از كجا گير بيارم دلفي من 7 هست ParaFormat2 نميشناسه خطا ميگيره

یونیت Richedit را به لیست Uses خود اضافه کنید.

برای استفاده از Paraformat2 بید یک پیغام EM_SETPARAFORMAT به Richedit خود بفرستیم که در کد آن را می بینید.

ساخت ویرایشگری نظیر Word آفیس به این سادگی ها نیست. از پوشه Demos در پوشه Delphi خود فولدر Richedit را باز کرده و مثال آن را ببینید.

موفق باشید....