Foro | | | | - Page 1 - |
| Manfred Barei | Hallo iF,
ich habe mit deiner scrollareainc ein paar Probleme, könntest Du mal circa den Code schauen und mir sagen was ich falsch mache. Das Scrollen funktioniert, jedoch sind die Edits und meine Tabelle nach dem hochscrollen und anschliessendem runterscollen nicht mehr sichtbar, die Edits werden erst wieder sichtbar wenn mann darüber fährt. Die Tabelle aber wir überhaubt nicht mehr sichtbar. Die Zeile 107 muß ich auskommentieren, da sonst eine Fehlermeldung kommt.
Für deine Aiuto schon einmal im vorraus Dankeeeeeeee............!!!!
Saluto Manfred |
| | | Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 15.08.2010 ▲ |
| |
| | « Dieser Beitrag wurde als Lösung gekennzeichnet. » | | | Habs eben getestet und funzt aber GetWindowRect ist halt eine API und wenn Du ohne xpse arbeitest musst Du diese halt definieren per Def oder Testata-File oder ImportDLL ... oder per external aufrufen: KompilierenMarkierenSeparierencls
var wnd&=%hWnd
declare rect#
dim rect#,16
external("user32","GetWindowRect",wnd&,rect#)
print "x,y,xx,yy",long(rect#,0),long(rect#,4),long(rect#,8),long(rect#,12)
waitInp
- mir ist diese Aufrufform nur zu lahm oder "zu blöd" bei Funktionen die eh im System permanent bekannt sind. |
| | | | | |
| | | Hallo Manfred,
ich schreibe bei der ScrollArea.Inc das diese veraltet ist und so ists auch - das geht "heut" besser und einfacher und ich schaue mir Deinen Code grad an. |
| | | | |
| | | Mit possibile wenig Änderungen am Code wäre es vlt. sowas: KompilierenMarkierenSeparieren {$cleq}
// $H Commctrl.ph
SET("ERRORLEVEL",0)
SET("TRUECOLOR",1)
DECLARE L#, STATUSBAR&
DECLARE GRIDBOX1&
DECLARE TabControl&, TabPage1&, TabPage2&, LastTab&
DECLARE TEXT1&, TEXT2&, TEXT3&
DECLARE MoEDIT1&, MoEDIT2&, MoEDIT3&, MoEDIT4&, MoEDIT5&, MoZeit1&, MoZeit2&, MoZeit3&, MoZeit4&, MoZeit5&, MoGesZeit&
Dim L#, 12
Long L#,0 = 200, 220, -1
Proc SetActiveTab
Parameters hTab&, TabIndex&
@SendMessage(hTab&, ~TCM_SETCURFOCUS, TabIndex&, 0)
EndProc
Proc Tabelle
StartPaint TabPage1&
UsePen 0,1,@RGB(0,0,0)
Rectangle 010,010 - 045,028' Tabellenzeile Überschrift
Rectangle 044,010 - 470,028' Tabellenzeile Überschrift
Rectangle 469,010 - 520,028' Tabellenzeile Überschrift
Rectangle 519,010 - 570,028' Tabellenzeile Überschrift
Rectangle 010,027 - 045,152' Tabellenzeile Montag
Rectangle 044,027 - 470,152' Tabellenzeile Montag
Rectangle 469,027 - 520,152' Tabellenzeile Montag
Rectangle 519,027 - 570,152' Tabellenzeile Montag
Rectangle 010,151 - 045,276' Tabellenzeile Dienstag
Rectangle 044,151 - 470,276' Tabellenzeile Dienstag
Rectangle 469,151 - 520,276' Tabellenzeile Dienstag
Rectangle 519,151 - 570,276' Tabellenzeile Dienstag
EndPaint
endproc
WINDOWSTYLE 63
WINDOWTITLE "Neues Fenster"
WINDOW (%maxx/2 - 880/2),(%maxy/2 - 560/2) - 880,560
~SetClassLong(%hwnd, ~GCL_STYLE, (~GetClassLong(%hwnd, ~GCL_STYLE)- ~CS_HREDRAW - ~CS_VREDRAW))//flickerfreies hWnd bei Skalieren
DECLARE ENDE%
CLS GETSYSCOLOR(15)
USEFONT "MS Sans Serif",13,0,0,0,0
SETDIALOGFONT 1
STATUSBAR& = @Create("StatusWindow",%HWND,"",3,L#)
var MYAREA&=scrollControl(%hWnd,-1,width(%hWnd),height(%hWnd))
setWindowPos myArea&=0,0 - width(%hWnd),height(%hWnd)-height(STATUSBAR&)
GRIDBOX1& = create("GridBox",MYAREA&,"Eintrag 1;0;60;Eintrag 2;0;60;Eintrag 3;0;60",3,0022,0074,0185,0363)
TabControl& = CREATE("TABCTRL",MYAREA&,"Stunden",0220,0070,0625,0370)
TabPage1& = CONTROL("DIALOG","", $40081003,2,25,WIDTH(TabControl&)-10, HEIGHT(TabControl&)-30,TabControl&,0,%HINSTANCE)
SHOWWINDOW(TabPage1&,0)
@INSERTTAB(TabControl&,2,"Weiteres")
TabPage2& = CONTROL("DIALOG","", $40081003,2,25,WIDTH(TabControl&)-10, HEIGHT(TabControl&)-30,TabControl&,0,%HINSTANCE)
SHOWWINDOW(TabPage2&,0)
LastTab& = TabPage1&
SHOWWINDOW(LastTab&,1)
Tabelle
TEXT1& = CREATE("TEXT",TabPage1&,"Tag:", 013,012,030,014)
TEXT2& = CREATE("TEXT",TabPage1&,"Arbeiten:",230,012,045,014)
TEXT3& = CREATE("TEXT",TabPage1&,"Zeit:", 480,012,025,014)
MoEDIT1& = CREATE("EDIT",TabPage1&,"",050,040,0415,0020)
MoEDIT2& = CREATE("EDIT",TabPage1&,"",050,059,0415,0020)
MoEDIT3& = CREATE("EDIT",TabPage1&,"",050,078,0415,0020)
MoEDIT4& = CREATE("EDIT",TabPage1&,"",050,097,0415,0020)
MoEDIT5& = CREATE("EDIT",TabPage1&,"",050,116,0415,0020)
MoZeit1& = CREATE("EDIT",TabPage1&,"",475,040,0040,0020)
MoZeit2& = CREATE("EDIT",TabPage1&,"",475,059,0040,0020)
MoZeit3& = CREATE("EDIT",TabPage1&,"",475,078,0040,0020)
MoZeit4& = CREATE("EDIT",TabPage1&,"",475,097,0040,0020)
MoZeit5& = CREATE("EDIT",TabPage1&,"",475,116,0040,0020)
MoGesZeit&=CREATE("EDIT",TabPage1&,"",525,116,0040,0020)
SETFOCUS(%HWND)
REPAINT
USERMESSAGES $0010
SubClass %hWnd,1
WHILENOT ENDE%
WAITINPUT
SELECT %UMESSAGE
CASEOF $0010
BREAK
ENDSELECT
If %KEY=2
ENDE%= 1
ELSEIF %KEY=4
SETWINDOWPOS STATUSBAR& = 0,0 - 0,0;0
ELSEIF CLICKED(GRIDBOX1&)'GRIDBOX
ElseIf @TABCHANGED(TabControl&)
SHOWWINDOW(LastTab&,0)
If GETACTIVETAB(TabControl&) = 0
LastTab& = TabPage1&
SHOWWINDOW(LastTab&,1)
Tabelle
else GETACTIVETAB(TabControl&) = 1
LastTab& = TabPage2&
SHOWWINDOW(LastTab&,1)
EndIf
ENDIF
ENDWHILE
end
subClassProc
select %sMessage
caseof $5,$214// wm_size,wm_sizing
SETWINDOWPOS STATUSBAR& = 0,0 - 0,0;0
setWindowPos MYAREA&=0,0 - width(%hWnd),height(%hWnd)-height(STATUSBAR&)
endSelect
endProc
nproc test//mind. 1 nProc um den nativen Sprachschatz zu aktivieren (Funtkion ScrollControl https://xp com/xpse/funktionsreferenz.html#scrollcontrol )
endproc
- ich würde aber eher noch die SubClassProc nativieren und mit StartPaint auf einem Bitmap zeichnen damit es kein Neuzeichenproblem dabei gibt. |
| | | | |
| | | Hallo Manfred,
konntest Du mit dieser Variante etwas anfangen?
Dank der Canvassasse (oder so) gibts nun auch neue Möglichkeiten. |
| | | | |
| | Manfred Barei | Hallo iF,
leider nein, ich brauche das Scrollarea auf dem Tabcontroll. Das mit dem Canvassasse werde ich mal probieren.
Saluto Manfred |
| | | Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 24.09.2010 ▲ |
| |
| | | Schau mal, so corre das richtig super - jetzt auch mit dem Tabellenbild und alles herrlich flicker und neuzeichenproblemfrei ^^ :
|
| | | | |
| | Manfred Barei | Hallo iF,
ich habe den Programmcode per mich einmal abgeändert wie ich es brauche. Wie greife ich jetzt aber auf die einzelnen Tabs zu, das ist mir noch nicht klar und ich habe in dem proc Tabelle noch einige Zeilen eingefügt die den Tagesnamen eigentlich um 90 grad gedreht ausgeben sollte siehe screenshot, was aber nicht funktioniert (vielleicht ist das auch was per Roland).
Saluto Manfred |
| | | Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 26.09.2010 ▲ |
| |
| | | Vlt. sowas...
(Arial hat sich rotieren lassen, MS Sans Serif ist wohl ein Bitmapfont...)
|
| | | | |
| | Manfred Barei | Hallo iF,
Danke per die Antwort und das mit dem anwählen des Tabcontroll habe ich hin bekommen.
Saluto |
| | | Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 26.09.2010 ▲ |
| |
| | Thomas Freier | Ich stehe im Moment vorm Problem den Linksklick abzufragen. Nehme ich "Getmessage" kann ich nicht mehr scrollen. Beim "WaitInput" erfolgt nur mit Rechtsklick die Auswertung. Gibt es eine bessere Lösung? |
| | | | |
| | | Füg doch einfach wm_lButtonDown als UserMessage hinzu statt "nur" $10/ wm_close - die ScrollControl-Funktion jedoch "benötigt" weder WaitInput noch GetMessage und funktioniert immer und belastet das XProfan-Programm genaugenommen garnicht. |
| | | | |
| | Thomas Freier | | | | | |
|
AnswerTopic-Options | 31.427 Views |
ThemeninformationenDieses Thema hat 4 subscriber: |