AW: Prüfen ob Scrollbar aktiviert
Zitat:
Aber mir ist gerade etwas anderes aufgefallen: In einem TMemo werden bei ScrollBars:=ssBoth immer beide Leisten angezeigt, auch wenn sie nicht notwendig sind (dann eben nur deaktiviert). TMemo kennt ja irgendwie kein automatisches Ein- und Ausblenden der Scrollbars. Insofern ist mein Vorschlag, die Clientgröße des Fensters zu testen, völliger Unsinn, da die Leisten immer da sind... :pale: Was ich aber jetzt gefunden habe: SCROLLBARINFO Aus dem Parameter rgstate lassen sich Rückschlüsse darauf ziehen, ob ein Element (oder die gesamte Scrollbar) zum Beispiel unsichtbar (STATE_SYSTEM_INVISIBLE) oder deaktiviert (STATE_SYSTEM_UNAVAILABLE) ist. Ist wenig Text im Memo enthalten und die vertikale Scrollbar überflüssig, sieht der Status so aus:
Delphi-Quellcode:
Wird die vertikale Scrollbar benötigt, ändert sich das so:
ScrollBarInfo.rgstate[0]=STATE_SYSTEM_UNAVAILABLE; //gesamte Scrollbar deaktiviert
ScrollBarInfo.rgstate[1]=STATE_SYSTEM_UNAVAILABLE; //oberer Button deaktiviert ScrollBarInfo.rgstate[2]=STATE_SYSTEM_UNAVAILABLE; //Page up-Bereich deaktiviert ScrollBarInfo.rgstate[3]=STATE_SYSTEM_STATE_SYSTEM_INVISIBLE; //verschiebbarer Button unsichtbar ScrollBarInfo.rgstate[4]=STATE_SYSTEM_UNAVAILABLE; //Page down-Bereich deaktiviert ScrollBarInfo.rgstate[5]=STATE_SYSTEM_UNAVAILABLE; //unterer Button deaktiviert
Delphi-Quellcode:
Vielleicht hilft Dir das weiter...
ScrollBarInfo.rgstate[0]=0; //gesamte Scrollbar ist aktiviert
//... |
AW: Prüfen ob Scrollbar aktiviert
Zitat:
Bei meinem grid ist das normal weil die Scrollbar über CreateWindow erstellt wurde und ich zu jederzeit Einfluss auf die Value nehmen kann. Beim Memo geht das aber nicht oder aber du kannst mir sagen wo ich dort die Max Value einstellen kann. gruss |
AW: Prüfen ob Scrollbar aktiviert
Zitat:
Ich teste das mal mit der ListView oder anderer Komponente. Edit: ListView und TreeView funktionieren. gruss |
AW: Prüfen ob Scrollbar aktiviert
ListView, auch wenn es auf vsList steht?
Gruss |
AW: Prüfen ob Scrollbar aktiviert
Zitat:
gruss |
AW: Prüfen ob Scrollbar aktiviert
Hmm... Das verstehe ich jetzt nicht.
Deine Frage bezog sich doch darauf, ob eine Scrollbar eines TMemo's aktiv ist, oder nicht (sichtbar ist sie ja leider permanent)!? Und das kann man doch sehr gut mit ScrollBarInfo.rgstate[0] überprüfen? Das funktioniert bei mir (Delphi XE, XP) ganz hervorragend:
Delphi-Quellcode:
function ScrollBarEnabled(Wnd: HWnd; Vert: Boolean): Boolean;
var ScrollBarInfo: TScrollBarInfo; IdObject: Integer; begin ScrollBarInfo.cbSize:=Sizeof(TScrollBarInfo); if Vert then IdObject:=OBJID_VSCROLL else IdObject:=OBJID_HSCROLL; Result:=GetScrollBarInfo(Wnd,IdObject,ScrollBarInfo) and (ScrollBarInfo.rgstate[0] and STATE_SYSTEM_UNAVAILABLE=0); end; |
AW: Prüfen ob Scrollbar aktiviert
Zitat:
Ich kann unter Eigenschaften die Scrollbar welche sichtbar sein soll auswählen. Bsp. ssVertikal Alle anderen sind dann im Designer auch nicht sichtbar das ist Fakt. Aber! Trotzdem bekomme ich bei der Abfrage siehe erster Beitrag bei State immer einen Positiven wert zurückgeliefert deshalb wird meine Virtuelle ScrollBar bei ssHorizontal trotzdem gezeichnet. Habe neue Version unter Projekte hochgeladen. Bilder werden jetzt gerendert. gruss |
AW: Prüfen ob Scrollbar aktiviert
nimm mal um zu testen STATE_SYSTEM_INVISIBLE.
STATE_SYSTEM_INVISIBLE – if invisible (not shown yet) STATE_SYSTEM_UNAVAILABLE – if disabled Wenn man dies abfragen kann, muss man es ja auch setzten können. //OT: aber mit Img sowas zu machen ist aber nicht der Renner oder? OT// gruss alfold |
AW: Prüfen ob Scrollbar aktiviert
Zitat:
Es wird ja niemand zu seinem Glück gezwungen! :) Wenn ich eine Skinned komponente habe nonvcl oder auch nicht.. dann sieht es besch.. aus wenn ausgerechnet die ScrollBar nicht dazu passt. Deine Vorschläge habe ich alle schon durch. ;) gruss |
AW: Prüfen ob Scrollbar aktiviert
Ich würde es mir nie wagen, Dich in Deinem Eifer zu Bremsen:-D
Zitat:
Wer hat schon Zeit sich dafür evtl erst noch img zu zeichnen/testen usw. Egal, wie Du schon sagst: "Es wird ja niemand zu seinem Glück gezwungen!":P Gruss alfold |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz