Deutsch
Forum

scrollarea.inc Handhabung

 
- Seite 1 -



Manfred
Barei
Hallo iF,

ich habe mit deiner scrollareainc ein paar Probleme, könntest Du mal über 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 Hilfe schon einmal im vorraus Dankeeeeeeee............!!!!

Gruß
Manfred

4 kB
Hochgeladen:15.08.2010
Ladeanzahl541
Herunterladen
 
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 Header-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)
waitInput
- 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 möglichst 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://xprofan.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
Ladeanzahl151
Herunterladen
 
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.

Gruß
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 läuft das richtig super - jetzt auch mit dem Tabellenbild und alles herrlich flicker und neuzeichenproblemfrei ^^ :


5 kB
Hochgeladen:24.09.2010
Ladeanzahl420
Herunterladen
1.166 kB
Hochgeladen:24.09.2010
Ladeanzahl290
Herunterladen
13 kB
Hochgeladen:24.09.2010
Ladeanzahl144
Herunterladen
 
24.09.2010  
 




Manfred
Barei
Hallo iF,

ich habe den Programmcode für 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 für Roland).



Gruß
Manfred

10 kB
Hochgeladen:26.09.2010
Ladeanzahl235
Herunterladen
64 kB
Hochgeladen:26.09.2010
Ladeanzahl161
Herunterladen
 
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
Ladeanzahl256
Herunterladen
11 kB
Hochgeladen:26.09.2010
Ladeanzahl140
Herunterladen
 
26.09.2010  
 




Manfred
Barei
Hallo iF,

Danke für die Antwort und das mit dem anwählen des Tabcontroll habe ich hin bekommen.

Gruß
 
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  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

31.389 Betrachtungen

Unbenanntvor 0 min.
Rainer Hoefs10.05.2023
Jörg Sellmeyer05.06.2020
Georg Teles30.05.2019
Manfred Barei16.08.2018
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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