Jump to content

Tuşlar sadece programı yönlendirsin


csyasar

Recommended Posts

Kısaca istediğim şey F5 tuşuna basınca yazdığım query refresh komutu işletilsin istiyorum. ancak f5 browserda sayfa refresh komutu olarak atandığı için hem query refresh ediliyor hem de sayfa refresh ediliyor. tuşların tamamının sadece programı etkilemesini nasıl sağlarım?

Link to comment
Share on other sites

  • Administrators

UniMainModule->MonitoredKeys->Enabled -> True

 

UniMainModule->Keys : Yeni Key ekle,  sonra:   KeyEnd = KeyStart = 116, HandleBrowser = False

 

Form'da KeyPreview = True

procedure TMainForm.UniFormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = 116 then
  begin
     // refresh dbgrid task
  end;
end;

Not: F5 özel bir tuş olduğundan tüm tarayıcılarda aynı sonucu vermeyebilir.

Link to comment
Share on other sites

şimdi deneyip buldum 

 

 

UniMainModule->MonitoredKeys->Enabled -> True

 

UniMainModule->Keys : Yeni Key ekle,  sonra:   KeyEnd = KeyStart = 116, HandleBrowser = False

 

Form'da KeyPreview = True

procedure TMainForm.UniFormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = 116 then
  begin
     // refresh dbgrid task
  end;
end;

Not: F5 özel bir tuş olduğundan tüm tarayıcılarda aynı sonucu vermeyebilir.

 

 

main module da ayarlama yapmaya gerek yok. çalışmıyor zaten. yukardaki ayarları ilgili form üzerinde yaparsanız tuşlar yalnızca ilgili formunuzda çalışıyor.

Link to comment
Share on other sites

  • 8 months later...
//disable f5 of browser in one edit
procedure DesabilitaF5(AObject: TObject);
var
  PropInfoPtr: PPropInfo;
begin
  PropInfoPtr := GetPropInfo(AObject, 'ClientEvents');
 
  if PropInfoPtr = nil then
    exit;
 
  AObject := GetObjectProp(AObject, PropInfoPtr);
 
  if AObject = nil then
    Exit;
 
  TUniClientEvents(AObject).ExtEvents.Values['keydown'] := //FbeforeInit;
    'function (sender, e, eOpts)' + sLineBreak +
    '{' + sLineBreak +
    '  if(e.keyCode == ' + IntToStr(VK_F5) +')' + sLineBreak +
    '  {' + sLineBreak +
    '    e.preventDefault();' + sLineBreak +
    '  }' + sLineBreak +
    '}';
end;

 

 

//To use

DesabilitaF5(EdtCodigo);

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...