Autor Beitrag
Andy DBase
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 42

win XP Home, win 98SE
D7 Prof
BeitragVerfasst: Sa 10.04.04 13:57 
Hallo,

Folgender Code wird nie ausgeführt, wenn sich das dbEditFeld in einem DBCtrlGrid befindet:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TMaske_anzeigen.DBEdit12KeyPress(Sender: TObject; var Key: Char);
begin
ShowMessage('Tastendruck KeyPress erkannt');
if Key = #13 then
  begin
    Key := #0;
    DBEdit13.SetFocus;
  end;
end;
Bei den anderen dbEditFeldern im Formular geht es. Wo liegt das Problem?
Der Hintergrund: Ich (bzw. der Anwender) will mit der "Enter"- Taste in das jeweils nächste Feld springen können.

Andy


Zuletzt bearbeitet von Andy DBase am So 11.04.04 09:49, insgesamt 1-mal bearbeitet
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: So 11.04.04 08:54 
Dein DBCtrlGrid fängt die Tastencodes ab, sie kommen nie beim Control an.
Schreibe demzufolge eine OnKey Methode des Grids.
grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Andy DBase Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 42

win XP Home, win 98SE
D7 Prof
BeitragVerfasst: So 11.04.04 09:53 
Hallo, Msch,

wie bekomme ich aber auf dieser Ebene den Focus auf das nächste Editfeld übertragen? Mein Versuch
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TMaske_anzeigen.DBCtrlGrid1KeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key = #13 then begin
    Key := #0;
    if dbEdit16.Focused then DBRichEdit1.SetFocus;
    if dbEdit15.Focused then dbEdit16.SetFocus;
    if dbEdit14.Focused then dbEdit15.SetFocus;
    if dbEdit13.Focused then dbEdit14.SetFocus;
    if dbEdit12.Focused then dbEdit13.SetFocus;
  end;
  inherited;
end;
ist fehlgeschlagen, weil das dbCtrlGrid immer zwischendurch (aus mir unbekannten Gründen) den Focus übernimmt. :cry:

Andy
Eisenmann
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26

XP
D4P
BeitragVerfasst: So 28.11.04 11:44 
Titel: Das beunruhigt mich aber sehr!
Hallo,
Wenn man mit D4 arbeitet, und auf eine "Ungereimtheit" stöst denkt man, wenn es ein Back ist, wirds mein Geldbeute( eine höhere Delphi Version) später schon klären.
Beim mir konnte ich feststellen, das DBEditfelder im DBCtrlGrid den Focus, sowohl vom Programm, als auch vom Anwender nicht immer annehmen.
Wenn ich dann andere DBEditfelder in dem selben DBCtrlGrid anwähle, kann ich irgend wann auch an das DBEditfelder, daß den Focus vorher verweigerte.

Seh ich das richtig, daß das DBCtrlGrid bis zu D7 immer noch fehlerhaft?
Oder kann ich nicht damit Umgehen?
Ist die Lösung eine zugekaufte Komponente?
Weis jemand Rat,

bis dann,
der Eisenmann.