Italia
Foro

scrollarea.inc Handhabung

 
- 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

4 kB
Hochgeladen:15.08.2010
Downloadcounter541
Download
 
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:
KompilierenMarkierenSeparieren
cls
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.
 
16.10.2010  
 



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.
 
15.08.2010  
 



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.

1.201 kB
Hochgeladen:15.08.2010
Downloadcounter151
Download
 
15.08.2010  
 



Hallo Manfred,

konntest Du mit dieser Variante etwas anfangen?

Dank der Canvassasse (oder so) gibts nun auch neue Möglichkeiten.
 
24.09.2010  
 




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 ^^ :


5 kB
Hochgeladen:24.09.2010
Downloadcounter420
Download
1.166 kB
Hochgeladen:24.09.2010
Downloadcounter290
Download
13 kB
Hochgeladen:24.09.2010
Downloadcounter144
Download
 
24.09.2010  
 




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

10 kB
Hochgeladen:26.09.2010
Downloadcounter235
Download
64 kB
Hochgeladen:26.09.2010
Downloadcounter161
Download
 
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...)


9 kB
Hochgeladen:26.09.2010
Downloadcounter256
Download
11 kB
Hochgeladen:26.09.2010
Downloadcounter140
Download
 
26.09.2010  
 




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?

 
Gruß Thomas
Windows XP SP2, XProfan X2
30.09.2010  
 



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.
 
30.09.2010  
 




Thomas
Freier
Ja, danke, das war's.
 
Gruß Thomas
Windows XP SP2, XProfan X2
30.09.2010  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

31.426 Views

Untitledvor 0 min.
Rainer Hoefs10.05.2023
Jörg Sellmeyer05.06.2020
Georg Teles30.05.2019
Manfred Barei16.08.2018
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie