ورود

View Full Version : طریقه دریافت اطلاعات در حال ورود در دی بی گرید



gholami146
جمعه 08 آذر 1392, 12:27 عصر
با سلام
من در برنامه ای که در حال اجرای اون هستم به مشکلی برخوردم و نیاز به کمک دارم
مشکل من اینه که من اطلاعاتم رو در حالی که دارم در داخل یک ردیف از یک دیبی گرید وارد می کنم می خوام در داخل یک تکست باکس نیز نمایش داده بشه
من بعد از گشتن در داخل خود دلفی به این پروسه رسیدم اما یک مشکل هست که بعد از ورود 3 کاراکتر اولین کاراکتر به نمایش در میاد
این کد در داخل OnKeyPress دیبی گرید قرار دارد
Form1.Caption:=DBGridEh3.Fields[0].Text;
مثلا وقتی شما در یک سلول کلمه AAA را تایپ کنید اون موقه عنوان فرم تازه به A تغییر می کنه

SayeyeZohor
جمعه 08 آذر 1392, 13:17 عصر
مشکل من اینه که من اطلاعاتم رو در حالی که دارم در داخل یک ردیف از یک دیبی گرید وارد می کنم می خوام در داخل یک تکست باکس نیز نمایش داده بشه

یعنی می خوای همزمان که وارد می کنی در یک تکست باکس نمایش داده بشه یا وقتی تایپت تموم شد؟

gholami146
جمعه 08 آذر 1392, 14:00 عصر
همزمان با تایپ اطلاعات

SayeyeZohor
جمعه 08 آذر 1392, 14:10 عصر
تا زمانی که اطلاعات فیلدت post نشه همون اطلاعات قبلی که ذخیره شده نمایش داده میشه

و این کد کارایی نداره DBGridEh3.Fields[0].Text

من یک تکه کد نوشتم اما باز هم مشکل هست

شاید دوستان بتونند کمکت کنند بازهم می گردم


IF Key = #8 THEN
BEGIN
str := Edit1.Text;
Delete(str, length(str), 1);
Edit1.Text := str;
END
ELSE
IF Key = #27 THEN
BEGIN
Exit;
END
ELSE
BEGIN
Edit1.Text := Edit1.Text + Key
END;

یوسف زالی
جمعه 08 آذر 1392, 15:52 عصر
سلام.
کلاس زیر را تعریف کنید:


THackedDbGrid = class(TDBGrid)
public
property InplaceEditor;
end;

حالا در رویداد KeyUp این را بنویسید:


procedure TForm1.DBGrid1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Editor: TCustomEdit;
begin
Editor := THackedDbGrid( DBGrid1 ).InplaceEditor;
if Assigned(Editor) then
Edit1.Text := Editor.Text;
end;


راه ساده تری به فکرم نرسید.

یوسف زالی
شنبه 09 آذر 1392, 15:02 عصر
آقای غلامی خبری نشد ازتون. مشکل حل شد ان شاا... ؟
اگر نه، فکر راه دیگه ای باشیم.