Um ein Formular mit Daten auszudrucken, sammle ich die Daten in einem Jvc String Grid. Um Daten, die sich wiederholen nicht immer wieder neu einzugeben, sammle ich die editierten Strings in einer unsichtbaren ListBox. Jedesmal wenn ich einen Character in ein Feld des Grids eingebe, sucht eine Routine entsprechend der länge der bereits eingegebenen Zeichen nach passenden Einträgen in der ListBox.
Mit SelStart und SelLength wird über den InplaceEditor der Rest des Wortes markiert. Das klappt auch alles sehr ordentlich, aber danach wird leider ein
TJvStringGrid.WMCommand aufgerufen in der durch inherited der Vorgang leider überschrieben wird.
Ich bin ratlos !
Für Ideen bin ich dankbar
mfg
Josef_D
Code:
function read_autofill: boolean; var anz: integer; len: integer; i : integer; l : integer; x : integer; y : integer; s : string; begin x := Form6.JvStringGrid1.Col; y := Form6.JvStringGrid1.Row; l := strlen(PChar(Form6.JvStringGrid1.Cells[x,y])); anz := Form6.ListBox1.Items.Count; for i := 0 to anz-1 do begin s := strleft(Form6.ListBox1.Items[i], l); if l > 0 then begin if Form6.JvStringGrid1.Cells[x,y] = s then begin Form6.JvStringGrid1.Cells[x,y] := Form6.ListBox1.Items[i]; len := strlen(PChar(Form6.ListBox1.Items[i])); Form6.JvStringGrid1.InplaceEditor.SelStart := l; Form6.JvStringGrid1.InplaceEditor.SelLength := len; end; end; end; read_autofill := TRUE; end;
TJvStringGrid.WMCommand aufgerufen in der durch inherited der Vorgang leider überschrieben wird.
Ich bin ratlos !
Für Ideen bin ich dankbar
mfg
Josef_D
Comment