Einzelnen Beitrag anzeigen

Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#28

AW: VirtualTreeView Editfelder, ComboBox und andere

  Alt 8. Apr 2016, 18:49
Also so richtig weiter gekommen bin ich bislang noch. Noch jemand einen Vorschlag?
Also ich habe da jetzt mal was zusammengebastelt und hoffe, dass es dir weiter hilft. Im Prinzip ist das jetzt ein Konstrukt, dass du für alles immer wieder verwenden könntest wenn du willst. Speziell in diesem Programm habe ich die Funktion mit Pfeiltaste hoch, runter, links und rechts implementiert. Auch Enter führt dazu, dass die nächste Node unterhalb der aktuellen ausgewählt und direkt editiert wird. Die Sache mit der Tab-Taste habe ich nur beim ersten Mal beachtet da dies einfach nur ein(e) Haken/Property beim VirtualStringTree ist (WantsTabs). Sobald diese Property auf True steht, wird allerdings nur eine Message abgefangen und entsprechen "modifiziert". Das könnte man dan dementsprechend in den abgeleiteten Editorklassen einbauen. War ich jetzt aber zu faul zu.

Das hier ist die Methode die bewirkt, dass beim Drücken der Tab-Taste die Komponente nicht verlassen wird. Das kann man dann ja analog dazu in seiner eigenen Editorklasse auch machen und stattdessen in die nächste Column springen.
Delphi-Quellcode:
interface
[...]
  procedure WMGetDlgCode(var Message: TWMGetDlgCode); message WM_GETDLGCODE;
[...]
implementation
[...]
procedure TBaseVirtualTree.WMGetDlgCode(var Message: TWMGetDlgCode);

begin
  Message.Result := DLGC_WANTCHARS or DLGC_WANTARROWS;
  if FWantTabs then
    Message.Result := Message.Result or DLGC_WANTTAB;
end;

[...]
So, ich hoffe das du damit was anfangen kannst. Solltest du hierzu noch Fragen haben, dann meld dich einfach nochmal.
Angehängte Dateien
Dateityp: 7z VSTEditorSample.7z (64,2 KB, 41x aufgerufen)
  Mit Zitat antworten Zitat