Delphi-PRAXiS

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 TValueListEditor.OnEditButtonClick: Reihe herausfinden (https://www.delphipraxis.net/92301-tvaluelisteditor-oneditbuttonclick-reihe-herausfinden.html)

Chewie 17. Mai 2007 17:29


TValueListEditor.OnEditButtonClick: Reihe herausfinden
 
Um eine Lösung für das in diesem Thread angesprochene Problem zu finden (wenn jemand da Ideen haben sollte - immer her damit!), habe ich mir überlegt den EditStyle edEllipsis zu verwenden und bei einem Klick des Buttons ein kleines Fenster anzuzeigen.

Das Problem: Wie kann ich herausfinden, in welcher Zeile geklickt wurde? Die Hilfe sagt folgendes:

Zitat:

In der Ereignisbehandlungsroutine können Sie die Eigenschaft Row verwenden, um die vom Benutzer bearbeitete Zeile anzugeben.
Wigentlich wunderbar - nur ist das Event vom Typ TNotifyEvent und hat dementsprechend keine weiteren Parameter. Auch gibt es keine Eigenschaft Row des Editors.

Wie komme ich also an die Zeile?

Danke schonmal!

marabu 17. Mai 2007 17:48

Re: TValueListEditor.OnEditButtonClick: Reihe herausfinden
 
Hallo,

gemeint ist die Eigenschaft Row der Komponente, nicht des Ereignisses.

Freundliche Grüße

Chewie 17. Mai 2007 17:50

Re: TValueListEditor.OnEditButtonClick: Reihe herausfinden
 
Zitat:

Zitat von marabu
Hallo,

gemeint ist die Eigenschaft Row der Komponente, nicht des Ereignisses.

Freundliche Grüße

Wie ich vorhin geschrieben hab:

Zitat:

Auch gibt es keine Eigenschaft Row des Editors.

marabu 17. Mai 2007 17:54

Re: TValueListEditor.OnEditButtonClick: Reihe herausfinden
 
Hallo Martin,

mein VLE hat diese Eigenschaft.

Nachdenkliche Grüße

Chewie 17. Mai 2007 18:03

Re: TValueListEditor.OnEditButtonClick: Reihe herausfinden
 
Hallo Achim,

mein VLE hat diese Eigenschaft auch... Allerdings ist dieser in der Hilfe nicht aufgeführt, und nur dort hab ich danach gesucht...

Aber danke für den Hinweis!

Edit: Und bei der Code-Completion an der Stelle vlElements.Keys[vlElements. wird er auch nicht angezeigt :stupid:

marabu 17. Mai 2007 19:56

Re: TValueListEditor.OnEditButtonClick: Reihe herausfinden
 
Hallo MArtin,

da bist du Opfer einer Unvollkommenheit der Code Completion geworden.

Delphi-Quellcode:
index := VLE. {Row}; //1
VLE.Keys[VLE. {Row}]; //2
ShowMessage(VLE.Keys[VLE. {Row}]); //3
Bei //1 werden tatsächlich alle Eigenschaften angeboten, die sich auf den Typ von index (Integer) casten lassen - oder die als Objekt, Klasse oder Record eine solche Möglichkeit offen lassen. Bei //2 sind alle Eigenschaften sichtbar, die sich direkt oder indirekt als Array-Index eignen (zusätzlich Objekte etc. wie bei //1) . Bei //3 entscheidet der verwendete Parser wegen ShowMessage, dass er alle Strings anbieten sollte - die Array-Klammern werden ignoriert. Das Verhalten des Parsers, der eindeutig eigenständig und deutlich primitiver als der Parser des Compilers ist, kann durch Syntaxfehler in den Zeilen davor auf verschiedene Weise beeinflusst werden. Die Existenzprüfung für eine Eigenschaft mittels Code Completion solltest du also lieber in einer eigenständigen Zeile in Abwesenheit von Syntaxfehlern vornehmen.

Freundliche Grüße

Chewie 17. Mai 2007 20:47

Re: TValueListEditor.OnEditButtonClick: Reihe herausfinden
 
Die eigentliche Existenzprüfung hab ich ja in der Hilfe erledigt - und eben dort steht nichts von der Eigenschaft Row. Würde mich mal interessieren, wie das bei den älteren Delphi-Versionen bzw. bei Delphi 2007 aussieht.

marabu 17. Mai 2007 20:55

Re: TValueListEditor.OnEditButtonClick: Reihe herausfinden
 
In der D7 OH wird Row als von TCustomGrid geerbte Eigenschaft ausgewiesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:32 Uhr.

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