Hallo Stefan,
die Mail geht direkt an dich.
Mit einer Long-Variable klappt es bei mir. Ich habe bisher einen Array
von Strings übergeben, nun habe ich das als Variant definiert und einen
der numerischen Werte mit CLng in Long umgewandelt (es ist allerdings
immer noch eine Ganzzahl); aber der Code funktioniert immer noch. Was
bei dir möglicherweise anders ist, weiß ich kja nicht. Aber letztlich
wird ja ein String angezeigt, wenn es mit direkter Übergabe von Long
nicht klappt, dann mache doch zunächst einen String daraus.
Beim Rumprobieren hatte ich mal den MouseListener des Grids etabliert,
der lieferte currentColumn; ich schätze, dass er auch currentRow
liefert, habe aber nicht darauf geachtet. Der Listener springt aber auch
an, wenn man in die Kopfzeile klickt und dann sicher auch bei der
Kopfspalte, das müsste sich hoffentliich über den Wert von Zeile und
Spalte entscheiden lassen.
Ich sehe jetzt, dass Robert das in seinem Beispiel verwendet. Er
schreibt nichts vom Listener, ich gehe davon aus, dass er das
GridControl im DesignMode hinzugefügt hat und dann dort das Makro beim
Mausereignis aufruft.
Meine Mail bezieht sich auf das Erzeugen des sortierbaren Grids per
MakroCode, danach hatte Jörg gefragt. Das ist wohl nicht nötig, wenn man
das GridControl im DesignMode hinzufügt, ich interpretiere Roberts
Beispiel so, dass dadurch schon der allgemeine Fall eines MutableGrid
implementiert wird. Bei meinen Versuchen bin ich mit dem Grid aus dem
Design Mode nicht weitergekommen, aber da hatte ich mich wohl irgendwo
verrannt, so wie es aussieht.
Gruß
Gerhard
Am 23.08.2021 um 16:10 schrieb Stefan Deutsch:
Hi Gerhard,
bitte leit mir die Mail weiter. Über die Methode updateCellData() kann
ich den Zellinhalt im Makrocode manipulieren. Bei Neuaufruf des DIalogs
wird dann auch korrekt der neue Wert ausgegeben. Über getCellData() kann
ich auch das Array verändern, aus dem die Daten für das Grid stammen.
Nur direkt im Dialog kann ich aber immer noch nicht in das Grid
schreiben. Wäre das nicht ein Anwendungsgebiet für einen Listener, der
darauf wartet, dass ich in eine Zelle clicke und dann einen neuen Dialog
öffnet, indem ich den gewünschten Wert eintrage? Wäre nur eine etwas
umständliche Bedienung.
Noch eine Nebenfrage: Kann das Gridcontrol keine Variablen in Long
verarbeiten. Wenn ich diese übergebe, wird nichts angezeigt. Übergebe
ich Integer klappt's.
Vielen Dank schonmal! Stefan
Am 23.08.2021 um 15:30 schrieb Gerhard Weydt:
Hallo Stefan,
du hast wahrscheinlich das DefaultGridDataModel verwendet und
möglicherweise die Beschreibung von Thomas Krumbein, aus der auch ich
das Verfahren gelernt habe.
ich habe gerade gestern aufgrund einer Anfrage in der discuss-Liste
rausgeknobelt, wie man ein sortierbares Tabellengitter erzeugen kann
(bei Bedaf kann ich dir die Mail weiterleiten), und dabei gesehen,
dass es auch das Interface
https://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1awt_1_1grid_1_1XMutableGridDataModel.html
gibt. Ich habe da allerdings noch nichts ausprobiert, aber die
genannten Methoden dürften das wohl sein.
Gruß
Gerhard
Am 23.08.2021 um 14:37 schrieb Stefan Deutsch:
Hallo zusammen,
ich hab mir gerade einen Dialog gebaut und im Makro ein GridControl.
Dazu hab ich eine Frage: Ist das ausschließlich Read-Only? Habe gerade
mit xRay keine Eigenschaft für die Spalten gefunden, um darein zu
schreiben. Die Daten stammen aus einem Array und die Zeilenköpfe auch.
Beide hab ich mit addRows an das DataModel übergeben und es wird auch
korrekt dargestellt.
Viele Grüße
Stefan Deutsch
--
Diese E-Mail wurde von Avast Antivirus-Software auf Viren geprüft.
https://www.avast.com/antivirus
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.