PDA

View Full Version : سوال در مورد memo



amirtofighi
یک شنبه 11 مهر 1389, 22:13 عصر
با سلام به دوستان
میخواستم به من راهنمایی کنین چطور میشه کاری کرد که مثلا وقتی تو یه edit یا memo یه عبارتی مینویسیم وقتی دکمه space رو فشار میدیم یه line جدید تو ممو ایجاد بشه و عبارت قبل از space تو اون خط جدید وارد بشه؟
یه سوال دیگه هم دارم اینکه تو دلفی با چه ابزاری میشه یه چیز مثل lable تو فرم گذاشت که بشه توش چندخط تایپ کرد ولی مثل ممو رنگش و شکلش از رنگ فرم مجزا نباشه. یعنی یه lable چند خطی
مرسی

Felony
یک شنبه 11 مهر 1389, 23:01 عصر
میخواستم به من راهنمایی کنین چطور میشه کاری کرد که مثلا وقتی تو یه edit یا memo یه عبارتی مینویسیم وقتی دکمه space رو فشار میدیم یه line جدید تو ممو ایجاد بشه و عبارت قبل از space تو اون خط جدید وارد بشه؟
منظورتون این هست که بعد از زدن Space به خط بعدی برید دیگه ؟
Edit که قابلیت نوشتن چند خطی نداره ، برای Memo میتونید از کد زیر در رویداد OnKeyDown استفاده کنید :
if Key= VK_SPACE then
Memo1.Lines.Add(#13);


یه سوال دیگه هم دارم اینکه تو دلفی با چه ابزاری میشه یه چیز مثل lable تو فرم گذاشت که بشه توش چندخط تایپ کرد ولی مثل ممو رنگش و شکلش از رنگ فرم مجزا نباشه. یعنی یه lable چند خطی
برای Label چند خطی کامپوننت آماده وجود داره ولی میتونید به صورت زیر عمل کنید ( البته نمیتونید در زمان طراحی این کار رو انجام بدید و باید توسط کدنویسی لیبل رو چند خطی کنید ) :
Label1.Caption:= 'This is first line' + #13 + 'This is second line';

amirtofighi
یک شنبه 11 مهر 1389, 23:09 عصر
Edit که قابلیت نوشتن چند خطی نداره
درسته ولی منظورم این بود که وقتی تو edit داریم یه متن رو مینویسیم وقتی space زدیم کلمه قبل از space رو ببره تو یه خط جدید در یک ممو که کنار edit تو فرم گذاشتیم

Felony
یک شنبه 11 مهر 1389, 23:30 عصر
درسته ولی منظورم این بود که وقتی تو edit داریم یه متن رو مینویسیم وقتی space زدیم کلمه قبل از space رو ببره تو یه خط جدید در یک ممو که کنار edit تو فرم گذاشتیم

آهان از اون لحاظ ... ، در رویداد OnKeyDown شئ Edit مورد نظر کد زیر رو بنویسید :

var
CharNO: Integer;
begin
if Key= VK_SPACE then
for CharNO:= Length(Edit1.Text) downto 0 do
if (CharNO= 0) or (Edit1.Text[CharNO]= ' ') then
begin
Memo1.Lines.Add(Trim(Copy(Edit1.Text, CharNO, Length(Edit1.Text))));
Exit;
end;
end;

amirtofighi
دوشنبه 26 مهر 1389, 11:34 صبح
برای Label چند خطی کامپوننت آماده وجود داره ولی میتونید به صورت زیر عمل کنید ( البته نمیتونید در زمان طراحی این کار رو انجام بدید و باید توسط کدنویسی لیبل رو چند خطی کنید ) :من یه راه جالب پیدا کردم که موقع طراحی هم بشه تو lable چند خطی نوشت:
روی فرم یک لیبل بذارین و بعد روی فرم راست کلیک کرده View As Text را انتخاب کنید
بعد عبارت object Label1:TLabel را پیدا کنید
حال عبارت Caption = 'Label1' را با عبارت Caption = 'Label1' + #13#10 + 'Second line' تعویض کنید
روی فرم راست کلیک کرده و View As Form را انتخاب کنید
لیبل چند خطی آماده است!