Tabellenfeld mit mehrzeiligen ZellenHabe gerade ein kleines Problem (ein weiteres in der langen Liste von Problemen) mit Table Box bemerkt. Ich versuche, eine ziemlich lange Zeichenfolge zu Table Box hinzuzufügen, und da Table Box nicht wirklich mehrere Zeilen unterstützt, habe ich versucht, Col Box mit Table Box(<< Set Wrap()) zu verwenden ... Das Problem dabei ist, dass es so zu sein scheint alles andere kaputtmachen
Names Default To Here(1);
tb = Table Box(
nceb = Number Col Edit Box("Order", []),
scb1 = String Col Box("103width", {}),
cb = Col Box("longstring", {}),
scb2 = String Col Box("104width", {}),
);
nceb << Set Width(40);
scb1 << Set Width(103);
scb2 << Set Width(104);
New window("",
tb
);
textb = Text Box("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDD", << Set Wrap(150));
long_str = "speciallylongname";
Eval(EvalExpr(
tb << Add Row({1, Expr(long_str), Expr(textb), Expr(long_str)});
));

Scheint, als ob 103width umbrochen wird und nur die zweite Zeile angezeigt wird.
Hat jemand eine gute Idee, wie ich damit umgehen könnte? Diese drei fallen mir schnell ein:
- Muss ich nur Spaltenfelder mit Textfeldern verwenden und einfach akzeptieren, dass ich Benutzern nicht erlauben kann, Zeilen im Tabellenfeld so einfach auszuwählen, wie ich es gerne hätte?
- Muss ich meine benutzerdefinierte Klasse für ein neues Anzeigefeldelement schreiben (wie bei „Aufgeben“ bei Tabellenfeldern)?
- Erstellen Sie ausgeblendete Spalten mit Volltext und berechnen Sie dann die maximale Breite, die ich in String-Spaltenfeldern anzeigen kann, und zeigen Sie nur diese an.
MassenanpassungWindowsBetreff: Tabellenfeld mit mehrzeiligen ZellenDa das Tabellenfeld außerdem für jede Zeile eine feste Höhe zu haben scheint, könnte es von Vorteil sein, Text Box() mit Scroll Box() zu umschließen (dadurch wird die Spalte etwas breiter, wenn ein Bildlauffeld angezeigt wird).
Names Default To Here(1);
tb = Table Box(
nceb = Number Col Edit Box("Order", []),
scb1 = String Col Box("103width", {}),
cb = Col Box("longstring", {}),
scb2 = String Col Box("104width", {}),
);
nceb << Set Width(40);
scb1 << Set Width(103);
scb2 << Set Width(104);
New window("",
tb
);
textb = Scroll Box(Size(175, 35),
Text Box("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", << Set Wrap(150))
, <<SET auto="" stretching=""></SET>Betreff: Tabellenfeld mit mehrzeiligen ZellenIch neige dazu, Tabellenfelder spaltenweise zu füllen, also habe ich Folgendes versucht:
nceb << set({1});
scb1 << set({long_str});
scb2 << set({long_str});
wait(2);
cb << set(lstBoxes);
Es trat jedoch das gleiche Problem auf.Die einzige Möglichkeit, es zum Laufen zu bringen, bestand darin, auch scb1 und eine Col-Box mit Textfeldern zu haben.Normalerweise habe ich darauf zurückgegriffen, dass die erste Spalte eines Tabellenfelds Optionsfelder enthält, um eine Auswahl zu ermöglichen:

Betreff: Tabellenfeld mit mehrzeiligen Zellen@txnelson Unterschiede im ersten Fall könnten durch unterschiedliche Schriftarteinstellungen (oder vielleicht sogar Zoomstufen?) verursacht werden, da die Breiten nach meinem Verständnis mithilfe von Pixeln festgelegt werden.
Der zweite Fall ist etwas besorgniserregend, da es so aussieht, als würden die Zeilen irgendwie durcheinander geraten. Höchstwahrscheinlich wird Text aus der falschen Zeile angezeigt:

(geändert long_str = "11231231312312312312"; für zweite Zeile).
Die Verwendung von Col Box mit Textfeldern könnte derzeit die „einzige“ Lösung sein. Schade, dass Sie nicht auf Zeilen klicken und sie hervorheben können, indem Sie einfach tb << Set Selectable Rows(1); bei Verwendung von Kühlboxen.
Betreff: Tabellenfeld mit mehrzeiligen ZellenIch habe Ihr Skript ausgeführt und unterschiedliche Ergebnisse erhalten.

und noch verwirrendere Ergebnisse, wenn der Tabelle eine zweite Zeile hinzugefügt wird

Die Verwendung von Col Box() mit eingebetteten Textfeldern scheint zu helfen
