Spaltenbreite ändern

  • Hallo,

    in einer Tabelle kann ich die Spaltenbreite ändern indem ich im Tabellenbereich die Spaltenlinie mit der Maus anfasse und verschiebe.
    Das funktioniert aber leider nicht mehr wenn da mit CombineCells Zellen "verschmolzen" wurden und solch eine Zelle gerade im Focus liegt.

    Ich habe versucht da im OnMouseMove irgend etwas zu bewegen um den Focus von dieser Zelle wegzubekommen, leider ohne Erfolg!

    Ist das der falsche Ansatz, wie bekomme ich die Spaltenbreiten mit der Maus verändert?

    Ciao
    Stefan

    • Offizieller Beitrag

    Der code um spalten breiten zu ändern ist sehr komplex, mit OnMouseMove wird da nichts zu machen sein.

    CombineCells kann Zellne verschmelzen ohne sie zu löschen, dann sollte auch die Änderung der Breiten möglich sein, da ja der index der zellen sich nicht ändert.

    Bitte prüfen ob dieses flag gesetzt ist:
    wpKeepCellsWhenCombiningCells in EditOptionsEx

  • Danke für den Tip!
    wpKeepCellsWhenCombiningCells war bisher noch nicht gesetzt, habe es hinzugefügt und siehe da, ich kann per Code die Spaltenbreiten ändern, auch wenn combined cells enthalten sind:

    Code
    for i := 0 to 5 do
    tbl.cols[i].ASetColumn(WPAT_COLWIDTH,WPCentimeterToTwips(Vorlage.Spaltenbreiten[i]));

    Was das Positionieren der Spalten mit der Maus innerhalb der Tabelle betrifft, funktioniert das leider noch nicht, ich kann die Spaltenlinien anfassen, aber mal geht das Spaltenbreiteändern und mal nicht, ein System dafür, warum es mal nicht geht, habe ich noch nicht gefunden...

    Ciao
    Stefan