Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Editieren VirtualStringTree's (https://www.delphipraxis.net/63272-editieren-virtualstringtrees.html)

c113plpbr 16. Feb 2006 07:29


Editieren VirtualStringTree's
 
Hallo DP'ler,

ich arbeite gerade an einem VirtualStringTree, und versuche dem Benutzer das leben zu erleichtern, indem ich diesen editierbar mache. Dies funktioniert auch schon ganz gut, nur hat der Tree mehrere Spalten, die ja irgendwo auch zusammen gehören ;) .
Nun wäre es praktisch, wenn man mithilfe von irgendeiner Taste von einem Editfeld in der einen Spalte in die nächste Spalte springen könnte. Leider ist mir eine derartige Taste nicht bekannt, daher frage ich mich, ob es sowas bereits gibt, oder wenn nicht, wie man dies selbst einbauen könnte.

Ich hoffe ihr könnt mir helfen,
ciao, Philipp

chaosben 16. Feb 2006 07:55

Re: Editieren VirtualStringTree's
 
Tschaaa ... ich glaube du suchst weniger nach der Taste um dorthin zu springen als mehr nach dem Eingabefeld, welches an der Stelle nicht existiert. Da dies ein Tree und kein Grid ist, kann man die Felder in den Spalten nicht bearbeiten/selektieren, da es sie nicht gibt. Das musste ich neulich leidvoll ;) erfahren.

//so ein Mist ... das stimmt ja alles nicht

Igotcha 16. Feb 2006 08:56

Re: Editieren VirtualStringTree's
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von chaosben
Tschaaa ... ich glaube du suchst weniger nach der Taste um dorthin zu springen als mehr nach dem Eingabefeld, welches an der Stelle nicht existiert. Da dies ein Tree und kein Grid ist, kann man die Felder in den Spalten nicht bearbeiten/selektieren, da es sie nicht gibt. Das musste ich neulich leidvoll ;) erfahren.

Öhm, wie bitte?

Selbstverständlich kann man den VST "gridfähig" machen und wie eine Exceltabelle editieren.

VST -> TreeOptions ->

MiscOptions -> toEditable=true, toGridExtensions=true
SelectionOptions -> toExtendedFocus=true

Danach noch für OnEditing und OnNewText die Ereignisse definieren.

Dann kann man sich mit den Cursortasten komplett frei im VST bewegen und per F2 oder Doppelklick ein Feld editieren (dazu am besten EditDelay auf "0" setzen)

Gruß Igotcha

P.S. Der VST ist ziemlich harter Tobak am Anfang - wenn man sich aber mal reingefummelt hat stellt man fest, dass das Ding so ziemlich alles kann... außer Kaffee kochen ;-)

generic 16. Feb 2006 10:14

Re: Editieren VirtualStringTree's
 
ein den demos ist ein beispiel.
also schau bitte mal in die demos.

chaosben 16. Feb 2006 10:50

Re: Editieren VirtualStringTree's
 
Zitat:

Zitat von Igotcha
Selbstverständlich kann man den VST "gridfähig" machen und wie eine Exceltabelle editieren.

aua .... ich hätte geschworen es geht nicht. Da nehm ich das eben zurück :stupid:

//Nachtrag: Jetzt habe ich das probiert (also die 2 Optionen setzten) und ... es geht immer noch nicht

Igotcha 16. Feb 2006 10:59

Re: Editieren VirtualStringTree's
 
Jo, schau mal, hab mein Post gerade editiert, fehlte noch was ;-)

Und Du musst natürlich im Ereignis OnNewText sagen, was mit dem eingegebenem Text passieren soll. Das ist so ein grds. Ding mit dem VST: Der kann wie gesagt sehr viel, nur machen tut er nix von alleine ;-)

Also sowas in der Art
Delphi-Quellcode:
var
  pData: pProgData;
  iData: pIstData;
  aktueller_knoten: PVirtualNode;
  myValue: double;
begin
    // Eingabe validieren auf Zahl
    try
      myValue:=strToint(NewText);
    except
      ShowMessage('Bei der Eingabe sind nur Ganzzahlen zulässig.');
      Exit;
    end;
    pData:=VTPROGNOSE.GetNodeData(Node);
    pData.FMonat[Column-1]:=myValue;

chaosben 16. Feb 2006 11:03

Re: Editieren VirtualStringTree's
 
Ok, das wars

c113plpbr 16. Feb 2006 14:10

Re: Editieren VirtualStringTree's
 
Hmm, ja, soweit war ich schon, aber mir gehts um bequemes editieren einer "zeile". D.h. ich editiere ein feld, und will nun ins nächste feld, und das direkt editieren. In excel kann ich (während des editierens) tab drücken, und komme somit in das nächste feld, und kann dort gleich wieder anfangen zu schreiben (ohne dann auch noch f2 o.ä. zu drücken). (wobei in excel ja eh alles ein wenig anders läuft ... ;) )
Daher dachte ich mir wäre es genial, wenn man dies auch in einem vst via tastendruck erreichen könnte.

ciao, Philipp

dahead 16. Feb 2006 14:14

Re: Editieren VirtualStringTree's
 
Du kannst ja bei einem OnClick Event folgendermaßen reagieren:

Delphi-Quellcode:
var
  CurNode: PVirtualNode;
  p: PNodeID;
begin
  CurNode := VSTObjectItems.GetFirstSelected;
  p := VSTObjectItems.GetNodeData(CurNode);
  if p <> nil then
    VSTObjectItems.EditNode(CurNode, 0); // 0 ist die Spalte, du musst also noch die aktuell ausgewählte Spalte ermitteln.

c113plpbr 16. Feb 2006 14:46

Re: Editieren VirtualStringTree's
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von dahead
Du kannst ja bei einem OnClick Event folgendermaßen reagieren

Nur mal so, was hat das mit dem OnClick-Ereignis zu tun?
Allerhöchstens mit einem OnKeyPress-ereignis, allerdings werden die key-events in diesen vst-"edits" anscheinend nicht weitergeleitet ...

Aber hab ich mich wirklich so unverständlich ausgedrückt? Ich fand das war eigentlich recht eindeutig ...

Ich hoffe es ist mit dem angehängten screenshot verständlicher ...

ciao, Philipp


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:18 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz