Seite 1 von 1
erkennen wenn Breite der Tabellenspalten verändert wird ?
Verfasst: Fr, 20. Jul 2018 5:05
von AUGE_OHR
hi,
mit
kann ich auf den Klick auf einen Column Header reagieren.
Frage : wenn ich nun die Breite der Column verändere, indem ich zwischen den Headern klicke, wie "merkt" das meine App
Idee gesucht für XbpBrowse() sowie (native) Listview()
Hintergrund : ich möchte die selbe Breite in weiteren Fenstern habe und die synchronisieren
Re: erkennen wenn Breite der Tabellenspalten verändert wird ?
Verfasst: Fr, 20. Jul 2018 6:52
von Tom
Das ist ein Resize-Event, nichts weiter. Du musst also nur den Resize-Slot der Spalte(n) belegen und dort reagieren.
Re: erkennen wenn Breite der Tabellenspalten verändert wird ?
Verfasst: Sa, 21. Jul 2018 4:06
von AUGE_OHR
Tom hat geschrieben: ↑Fr, 20. Jul 2018 6:52
Das ist ein Resize-Event, nichts weiter. Du musst also nur den Resize-Slot der Spalte(n) belegen und dort reagieren.
JA
ich habe das Demo \SOURCE\samples\basics\GuiBrow\FBROWSE.prg modifiziert
Code: Alles auswählen
FOR i:=1 TO F_LEN
oCol := oBrowse:addColumn( DirBlock( aArray, i ), aHeading[i,1], aHeading[i,2] )
oCol:heading:resize := {|| Msgbox("Header resize") }
NEXT
... aber bei oDlg:Show() führt er nun für jede Column den Codeblock aus beim Start
OK Danke,
ich werde noch ein wenig daran rum-schrauben bis es so passt wie ich es gerne hätte
Re: erkennen wenn Breite der Tabellenspalten verändert wird ?
Verfasst: Sa, 21. Jul 2018 12:04
von Tom
Ja, weil die Spalte vorher die Dimensionen 0,0 hat. Beim Resizen vergleicht man deshalb die aktuellen mit den vorigen Werten. Ich setze bei ähnlichen Gelegenheiten Flag-iVars im Dialogobjekt (abgeleitete Klasse), um Erstaufbau, das Restaurieren von Einstellungen usw. abzufangen. Und man muss natürlich aufpassen, nicht in eine Endlosrekursion zu geraten.