Spaltenausrichtung in TBrowse [ERLEDIGT]

Auf dem Weg von Clipper, FoxPro u.ä. nach Xbase++

Moderator: Moderatoren

Antworten
Benutzeravatar
dtmackenzie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Do, 22. Nov 2007 9:02
Wohnort: Leipzig
Hat sich bedankt: 66 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

Spaltenausrichtung in TBrowse [ERLEDIGT]

Beitrag von dtmackenzie »

TBrowse zentriert die Spalten und versucht, die Fensterbreite auszunutzen.
Ist es möglich, dieses Verhalten "auszuschalten" damit die Spalten linksbündig erscheinen und nicht breiter sind als nötig?
(Falls ich mich nicht klar ausgedruckt habe - ich rede hier von den Spalten als Ganzes, nicht von dem Spalteninhalt.)
Zuletzt geändert von dtmackenzie am Mi, 23. Sep 2009 11:32, insgesamt 1-mal geändert.
Viele Grüße,
David
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Spaltenausrichtung in TBrowse

Beitrag von brandelh »

Hi,

du kannst die Breite des TBColumn-Objektes durch :width festlegen.
Wenn du das nicht machst, wird laut Hilfe der Längste Eintrag (Kopf-, Daten Fußzeile) benutzt.
mit der picture Maske bzw. dem Anzeige-codeblock (ltrim()) sollte dann auch ein linksbündiges Verhalten möglich sein.
PS: wurde Text nicht automatisch linksbündig angezeigt ... ich meine doch :?
Gruß
Hubert
Benutzeravatar
dtmackenzie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Do, 22. Nov 2007 9:02
Wohnort: Leipzig
Hat sich bedankt: 66 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

Re: Spaltenausrichtung in TBrowse

Beitrag von dtmackenzie »

Hallo Hubert,

Danke für die schnelle Antwort!
Ich versuche das Problem mit einem Screenshot deutlich zu machen -

[Die Dateierweiterung bmp wurde deaktiviert und kann nicht länger angezeigt werden.]

Ich compiliere nun mit GUI=YES, dadurch kann ich das Anwendungsfenster wesentlich breiter machen (das Scrollen geht deutlich langsamer, aber nix ist umsonst...).
Für Tabellen mit nur wenigen Spalten führt dies dazu, dass die Spalten in der Mitte gezeigt werden, mit viel Platz links und rechts.
Die Benutzer hätten die Spalten aber lieber auf der linken Seite (es geht hier um die Spalten selbst, nicht um den Text in den Spalten).
Ich bin auch der Meinung, dass dies die Augen weniger strapaziert wenn man zwischen verschiedenen Browsern umschaltet.
Viele Grüße,
David
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Spaltenausrichtung in TBrowse

Beitrag von AUGE_OHR »

dtmackenzie hat geschrieben:Ich compiliere nun mit GUI=YES, dadurch kann ich das Anwendungsfenster wesentlich breiter machen (das Scrollen geht deutlich langsamer, aber nix ist umsonst...).
verwendest du dein "alter" Tbrowse "ohne Änderungen" jetzt mit Xbase++ ?

wenn ja, siehe doch mal in den Source und suche nach INKEY() ... was für einen Wert hast du da ? (oder keinen)
wenn du SETMOUSE(.T.) gesetzt hast, also mit Events arbeitest, dann schau dir mal c:\ALASKA\XPPW32\Source\SYS\BrowSys.prg an.
dtmackenzie hat geschrieben:Für Tabellen mit nur wenigen Spalten führt dies dazu, dass die Spalten in der Mitte gezeigt werden, mit viel Platz links und rechts.
Die Benutzer hätten die Spalten aber lieber auf der linken Seite (es geht hier um die Spalten selbst, nicht um den Text in den Spalten).
das selbe "Problem" hast du auch unter Cl*pper und GUI XbpBrowse.
Workaround : "Breite" mit zählen und eine zusätzliche Spalte am Ende (ohne Header/ Seperator )
gruss by OHR
Jimmy
Benutzeravatar
dtmackenzie
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 265
Registriert: Do, 22. Nov 2007 9:02
Wohnort: Leipzig
Hat sich bedankt: 66 Mal
Danksagung erhalten: 22 Mal
Kontaktdaten:

Re: Spaltenausrichtung in TBrowse

Beitrag von dtmackenzie »

Hallo Jimmy,

es hat gut geklappt mit der extra Spalte -

Code: Alles auswählen

browse:configure()  // nötig damit browse:colWidth(n) funktioniert
nwidth := nright + 1 - nleft
FOR n:=1 TO browse:colCount
    nwidth -= (browse:colWidth(n) + 3)  // +3 für Spaltentrenner " | "
NEXT
IF nwidth > 3
    column := TBColumnNew(SPACE(nwidth - 3), {|| ""})
    browse:addColumn(column)
END
Zur Performance - ja, ich habe schon BrowSys.prg angeschaut (z.B. Thema Textmodus: Browse-Refresh stört Text-Kopieren), ich nutze aber kein SETMOUSE(.T.). Das eigentliche Problem ist noch allgemeiner - die Fenster werden auf manchen Rechnern (nicht unbedingt den langsamsten!) langsam gezeichnet. Naja, Alaska "machen DOS-Bildschirm nach"...

Danke nochmal Jimmy!

P.S. DISPBEGIN()/DISPEND() an den richtigen Stellen hilft enorm mit der Performance!
Viele Grüße,
David
Antworten