PDA

View Full Version : سوال: چطور کلید تب را در Memo شبیه سازی کنم؟



hp1361
سه شنبه 10 مهر 1386, 20:56 عصر
سلام
دوستان همونطور که میدونید با True کردن property tabwant در Memo متونیم تب رو در داخل خود ممو فعال کنیم و فاصله هایی رو ایجاد کنیم .
من واسه برنامه ام نیاز دارم که کاربر این کار رو با فشار دادن دکمه F5 انجام بده و در اخر هر کدوم از این تب ها یک شماره قرار بده(البته شماره ها به ترتیب زیاد میشن)

حالا چیکار کنم ؟
یه همچین چیزی
1- 2- 3- 4- 5- 6-
7- 8- 9- 10- ووو...

(البته بین این اعداد فاصله 8 کاراکتری تب قرار داره)
ممنون و منتظرم

ghabil
سه شنبه 10 مهر 1386, 22:47 عصر
کار قشنگ اینه که از Memo یک کلاس درایو کنی و Counter رو بصورت پراپرتی بزاری توش ، اما اگر کارت دم دستیه این کارتو راه میندازه :



var
Form1: TForm1;
GlobalCounter: Integer = 0;
implementation

{$R *.dfm}

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key= 116{F5} then
begin
Inc(GlobalCounter);
Memo1.Text := Memo1.Lines.Text + IntToStr(GlobalCounter) + '- ';
end;
end;

ضمنا F5 و کلا همه کلیدها یک Constant دارند که الان یادم نبود پیشوندش چی بود ، بهتره از Constant بجای کدش(116) استفاده کنی

hp1361
چهارشنبه 11 مهر 1386, 01:17 صبح
سلام مجدد

قابیل جان دستت درد نکنه ایول

راستی اعداد که اضافه میشن مکان نما به اخر خط نمیره چیکارش کنم ؟

حالا اگه کاربر یکی از اعداد رو پاک کرد اونوقت ادامه اعداد با فشار دادن F5 تایپ میشه و اون عدد پاک شده دیگه تو لیست نخواهد بود واسه تشخیص اون چه پیشنهادی میدین

ممنون

ghabil
چهارشنبه 11 مهر 1386, 10:55 صبح
ولی این کد اگر کاربر توی متنی که جلوی اعداد مینویسه بزنه مثلا -5 یا هر عدد دیگه ای درست کار نمیکنه.



procedure TForm1.CheckCounterIsValid;
begin
if (Pos(IntToStr(GlobalCounter)+ '-', Memo1.Text) < 1) and (GlobalCounter > 0) then
begin
Dec(GlobalCounter);
CheckCounterIsValid;
end;

end;
procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key= 116{F5} then
begin
CheckCounterIsValid;
Inc(GlobalCounter);
Memo1.Text := Memo1.Lines.Text + IntToStr(GlobalCounter) + '- ';
Memo1.SelStart := Length(Memo1.Text);
end;
end;

hp1361
چهارشنبه 11 مهر 1386, 16:21 عصر
سلام

اگه بخوام این شماره ها مثل ورد که Tabstop داره در اون موقعیت ها قرار بگیرن چیکار کنم ؟

یعنی بعد از درج عدد و تایپ مطالبی از طرف کاربر یک تب اعمال بشه و بعد عدد جدید درج بشه؟

ممنون و منتظرم