Scrollbar ermitteln
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21226
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
Scrollbar ermitteln
Wenn ich mir ein Dialogfenster baue und dann später mit der Maus die Größe verändere, dann kann es ja vorkommen, das irgendwann ein Scrollbar rechts oder unten auftaucht. Wie kann ich das ermitteln, ob er vorhanden ist oder wieder weg ist. Bzw. anders gefragt, wenn ich ein Dialogfenster komplett benutze und dann durch ändern der Breite einen Scrollbalken unten erzeuge, was muß ich dann machen, damit das untere Element nicht darunter verschwindet, sondern entsprechend höher geschoben werden kann? Wie und woher bekomme ich dafür die Maße und die Rückmeldung, das es nun einen Scrollbalken gibt, oder nicht mehr.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Scrollbar ermitteln
Hallo Manfred,
gerade diese Woche musste ich mich mal wieder damit beschäftigen. Bei mir läuft das so: Ich gebe dem Dialog oder der Tabpage und den relevanten XbParts auf diesem Dialog ein :layoutAlign mit, damit der sich automoatisch korrekt resized. Und sage ihm (bei Bedarf, da mache ich nicht grundsätzlich) oDlg:drawingArea:scrollbars := XBP_SCROLLBAR_VERT (weil ich nur die vertikale haben möchte, ansonsten muß man natürlich auch die horizontale dazu nehmen).
Bei mir klappt das in dieser Kombination einwandfrei. Automatisch. Deswegen frage ich auch nie ab, wie groß jetzt eigentich der Dialog ist, oder ob es die Scrollbar schon gibt.
Einen Punkt in Deinem Beitrag habe ich nicht ganz verstanden. Also renn ich da vielleicht offene Türen ein: oDlg:drawingArea:currentSize() gibt mir die aktuelle Größe zurück.
Jan
gerade diese Woche musste ich mich mal wieder damit beschäftigen. Bei mir läuft das so: Ich gebe dem Dialog oder der Tabpage und den relevanten XbParts auf diesem Dialog ein :layoutAlign mit, damit der sich automoatisch korrekt resized. Und sage ihm (bei Bedarf, da mache ich nicht grundsätzlich) oDlg:drawingArea:scrollbars := XBP_SCROLLBAR_VERT (weil ich nur die vertikale haben möchte, ansonsten muß man natürlich auch die horizontale dazu nehmen).
Bei mir klappt das in dieser Kombination einwandfrei. Automatisch. Deswegen frage ich auch nie ab, wie groß jetzt eigentich der Dialog ist, oder ob es die Scrollbar schon gibt.
Einen Punkt in Deinem Beitrag habe ich nicht ganz verstanden. Also renn ich da vielleicht offene Türen ein: oDlg:drawingArea:currentSize() gibt mir die aktuelle Größe zurück.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21226
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
Re: Scrollbar ermitteln
LayoutAlign gibt es aber erst in der 2er?
Ich passe es gerade noch in der 1.9er an. Ich werde wohl erst in den nächsten Tagen dazu kommen auf die 2er im scharfen Betrieb umzustellen. Also mß ich da noch etwas warten.
Ich passe es gerade noch in der 1.9er an. Ich werde wohl erst in den nächsten Tagen dazu kommen auf die 2er im scharfen Betrieb umzustellen. Also mß ich da noch etwas warten.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Scrollbar ermitteln
Oh! OK, da Du zuletzt immer mit der 2er was gefragt hattest war ich davon asugegangen, daß das hier auch der Fall sei.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21226
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
Re: Scrollbar ermitteln
indirekt. Ich möchte noch zweigleisig fahren, bis der erste User die 2er im Einsatz hate und nichts grobes findet. Ich hatte aber auch LayoutAlign wieder vergessen. Du hattest es ja schonmal erwähnt vor längerer Zeit. Kommt direkt auf meine Liste für Samstag in OS.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Scrollbar ermitteln
Ich hab sowas in der 1.9 immer über den oDlg:resize gemacht. Wo ich mir noch unsicher ist, ist dieser Text aus der 2.0-Hilfe: "Under Windows, an XbpIWindow object displays scroll bars only if needed. No scroll bars are displayed if all child objects are visible on the screen, regardless of the value assigned to :scrollbars." Ich meine mich erinnern zu können, das ich in de r1.9 eine Scrollbar erzwingen konnte, egal, ob alles auf den Dialog passte oder nicht. Da bin ich mir aber im Moment nicht mehr so ganz sicher.
Jan
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: Scrollbar ermitteln
@Manfred : wenn der Scrollbalken kommt und was verdeckt ... was willst du dagegen tun ?
wie man beim plazieren von XbParts die o:DrawingArea benutzt sollte man ein "resize" ebenso einsetzten.
aNew enthält die Grösse der (neuen) o:DrawingArea ... egal ob nun gerade Scrollbars "visible" sind oder nicht.
---
ich nutzt nun NICHT aOld, aber wohl der LayoutManager in der v1.9x
wenn man 100 x min/max/normal macht sieht man was passiert -> Chaos
deshalb verwende ich immer die "aOriginal" Daten in Relation zu aNew
auf diesem einfachen Prinzip beruht auch DXE_Dialog.
nach dem o:Create läuft mein LayoutManager durch die DrawingArea:Childlist() und sammelt alle Infos von den XbParts.
der DXE_Dialog hat nun seine eigene o:Resize() Methode die auch reagiert wenn man ein Table PC von Landscape auf Portait wechselt. da der DXE_Dialog auch auf Strg-MausWheel reagiert ist auch ein "Zoom" mit den Fingern auf dem Table PC möglich.
---
um eine Scrollbar zu "erzwingen" muss man
1.) o:drawingArea:scrollbars := "bestücken"
2.) eine XbpStatic auf die o:DrawingArea platzieren welche grösser ist als o:drawingArea
3.) nach der Anzeige (o:Show) muss man ein "resize" einleiten damit Scrollbars erscheinen
---
Frage : beachtet der v2.x LayoutManager auch Fonts oder nur Pos / Size ?
wie man beim plazieren von XbParts die o:DrawingArea benutzt sollte man ein "resize" ebenso einsetzten.
Code: Alles auswählen
oDlg:DrawingArea:Resize := {|aOld,aNew,oSelf| Do_Resize(aOriginal,aNew,oSelf) }
---
ich nutzt nun NICHT aOld, aber wohl der LayoutManager in der v1.9x
wenn man 100 x min/max/normal macht sieht man was passiert -> Chaos
deshalb verwende ich immer die "aOriginal" Daten in Relation zu aNew
auf diesem einfachen Prinzip beruht auch DXE_Dialog.
nach dem o:Create läuft mein LayoutManager durch die DrawingArea:Childlist() und sammelt alle Infos von den XbParts.
der DXE_Dialog hat nun seine eigene o:Resize() Methode die auch reagiert wenn man ein Table PC von Landscape auf Portait wechselt. da der DXE_Dialog auch auf Strg-MausWheel reagiert ist auch ein "Zoom" mit den Fingern auf dem Table PC möglich.
---
um eine Scrollbar zu "erzwingen" muss man
1.) o:drawingArea:scrollbars := "bestücken"
2.) eine XbpStatic auf die o:DrawingArea platzieren welche grösser ist als o:drawingArea
3.) nach der Anzeige (o:Show) muss man ein "resize" einleiten damit Scrollbars erscheinen
---
Frage : beachtet der v2.x LayoutManager auch Fonts oder nur Pos / Size ?
gruss by OHR
Jimmy
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21226
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
Re: Scrollbar ermitteln
Hi Jimmy
ich dachte mir, das ich das beim Resize berücksichtige und dann alles etwas nach oben schiebe und kleiner mache.
ich dachte mir, das ich das beim Resize berücksichtige und dann alles etwas nach oben schiebe und kleiner mache.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
- Manfred
- Foren-Administrator
- Beiträge: 21226
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 211 Mal
- Danksagung erhalten: 71 Mal
Re: Scrollbar ermitteln
war wie gesagt nur eine idee, weil es mir zum ersten mal bewußt aufgefallen ist. Aber wieso eine rekursive Schleife? Wenn ich den Dialog mit der Maus in der größe ziehe, oder drücke sollte doch nur solange ein resize stattfinden, bis ich die Maustaste loslasse. Aber ist auch egal. Ich dachte nur es gäbe da etwas vom System her, was ich übersehen habe. Ich begrenze die Fläche so weit es geht dann eben nach unten ab, setze also den untersten part so, das der Scrollbalken nicht stört und das sollte genügen. Ist eh nur ein Dialog, welcher selten aufgerufen wird.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!