PDA

View Full Version : مقدار یک سلول DBGrid در هنگام ورود؟



SYNDROME
چهارشنبه 14 آذر 1386, 18:34 عصر
با سلام
دوستان من یک DBGrid را به ADO وصل کرده ام و سپس در یکی از سلولهای آن شروع به وارد کردن اطلاعات می کنم.
حالا می خواهم مقدار سلول مورد نظر را به دست بیاورم.
دقت کنید که هنوز از سلول خارج نشده ام و اطلاعات ADO هم Update نشده است و کاربر هنوز دارد اطلاعات را در سلول وارد می کند.
برای به دست آوردن مقدار سلول مورد نظر باید چه کار کنم؟
با تشکر از همه دوستان

Mahmood_M
چهارشنبه 14 آذر 1386, 19:00 عصر
سلام

جوابی که توی این پست (http://barnamenevis.org/forum/showpost.php?p=422521&postcount=16) دادم کمکی نمی کنه ؟

...

SYNDROME
پنج شنبه 15 آذر 1386, 14:39 عصر
سلام
جوابی که توی این پست (http://barnamenevis.org/forum/showpost.php?p=422521&postcount=16) دادم کمکی نمی کنه ؟
...
راه حل خوبی است.
ولی اگر در داخل سلول مقدار "SYNDROME" وارد شده باشد و کاربر سه کلمه آن را select کند "NDR" و مثلا کلید 1 را بزند مقدار سلول برابر "SY1OME" می شود .
آن وقت باید چه کار کنیم.
موفق باشید

arshia_
پنج شنبه 15 آذر 1386, 14:44 عصر
یه راه دیگه هم هست
می تونی زمان ورود کاربر به سلول که شد با کمک تابع خوندن کلیدها تمام کلیدهایی رو که فشار می ده بررسی کنی

SYNDROME
پنج شنبه 15 آذر 1386, 21:20 عصر
یه راه دیگه هم هست
می تونی زمان ورود کاربر به سلول که شد با کمک تابع خوندن کلیدها تمام کلیدهایی رو که فشار می ده بررسی کنی
فکر نمی کنید این کار سخت و شاید هم غیر ممکن است.
آیا این مقدار که در سلول وارد می کنم نمی توانم به دست بیاورم.
منتظر راهنمایی دوستان هستم.
با تشکر فراوان
موفق باشید

Hamid_PaK
جمعه 16 آذر 1386, 05:52 صبح
علی جون نمی دونم شاید خیلی نیاز داشته باشی ولی بهترین زمان برای بدست آوردن این نوع اطلاعات در هنگام قبل از post به جدول است.

یا حق ...

SYNDROME
جمعه 16 آذر 1386, 06:59 صبح
علی جون نمی دونم شاید خیلی نیاز داشته باشی ولی بهترین زمان برای بدست آوردن این نوع اطلاعات در هنگام قبل از post به جدول است.

یا حق ...
سلام بر حمید آقای گل خودمون
مشکل من این است که می خواهم در هنگامی که کاربر دارد اطلاعات را در DBGrid وارد می کند بعد از زدن هر کلید مقدار آن سلول را داشته باشم.
با تشکر از شما
منتظر راهنمایی بقیه دوستان هستم.
موفق باشید

Hamid_PaK
جمعه 16 آذر 1386, 13:30 عصر
علی اینو تست کن، من کار کردم جواب داد :


...
private
{ Private declarations }
rec_val, col_val: Integer;
typed_val: String;
...
procedure Tfrm_main.dbg_mainKeyPress(Sender: TObject; var Key: Char);
begin
//;
with TStringGrid( dbg_main ) do begin
if
(rec_val <> dbg_main.DataSource.DataSet.RecNo) or
(col_val <> TStringGrid( dbg_main ).Col)
then begin
rec_val := dbg_main.DataSource.DataSet.RecNo;
col_val := TStringGrid( dbg_main ).Col;
typed_val := Key;
end else
typed_val := typed_val +Key;

Label1.Caption := Format('%d %d %s', [rec_val, col_val, typed_val]);
end;
end;


یا حق ...

SYNDROME
جمعه 16 آذر 1386, 17:18 عصر
آقا حمید گل دستت درد نکنه.
ولی همچنان مشکلی که در پست شماره سه اشاره کردم وجود دارد.
با تشکر فراوان از شما.
منتظر راهنمایی همه دوستان هستم.
موفق باشید

Hamid_PaK
جمعه 16 آذر 1386, 18:37 عصر
علی جان به نظر من تنها راه که سریعتر به تتیجه برسید ویرایش کامپوننتهایی است که در مجموع کامپوننت TDBGrid رو می سازند:
اگر نگاهی به این کامپونت بیاندازید می بینید که از TCustomGrid ساخته شده و این کامپوننت برای ویرایش سلولها از کامپونتی با نام TInplaceEdit استفاده می کند.
شما باید Handle ویرایشگر را بگونه ای عمومی کنی که در هنگام ویرایش سلول توسط کاربر از طریق روالهای API متن داخل آن را استخراج کنید.

یا حق ...

SYNDROME
جمعه 16 آذر 1386, 20:23 عصر
اگر نگاهی به این کامپونت بیاندازید می بینید که از TCustomGrid ساخته شده و این کامپوننت برای ویرایش سلولها از کامپونتی با نام TInplaceEdit استفاده می کند.
شما باید Handle ویرایشگر را بگونه ای عمومی کنی که در هنگام ویرایش سلول توسط کاربر از طریق روالهای API متن داخل آن را استخراج کنید.
یا حق ...
با تشکر از شما.
واقعا به بنده لطف داری حمید جان.
شاید در آخر هم مجبور شوم از این روش استفاده کنم ولی قبل از آن می خواستم ببینم راه حل دیگری هم وجود دارد یا نه.
به هر حال اگر کسی پیشنهاد دیگری دارد ممنون می شوم بنده را راهنمایی کنید.
موفق باشید