Italia
Foro

Grosse Datenmengen

 

GDL
Hallo Frank,

ich habe schon einige Versuche mit der Sharewarever. gemacht und möchte nach dem Lizenzgewinn die Listview auch in meinem Modellbahnproggi nutzen.
Und hier habe ich ein Reaktionsproblem mit normalen Windowsbutton ab mittelgrossen Datenmengen im Listview. ca 100kb.

Das heisst, wenn ich im Listview eine Auswahl tätigte, reagieren die anderen Fenstercontrols danach mit einer einmaligen Verzögerung.Je grösser die Datenmenge im Listview desto länger die Verzögerung.

Ich habe nichts besonderes wie eine einfache Hauptschleife ein paar Controls und 4 Listboxen.Das waitinput kann ich nicht weglassen, da im späterem Hauptmodul andere Funktionen sonst nicht gehen.

Probier bitte einfach bei dir ne Anwendung aus und lade dabei deine Flughäfendatei ein.
Diese verursacht bei mir 17 bis 20 sec. Reaktionszeit .Innerhalb des Listviews wird sofort reagiert.(Anderen Datensatz,Linksklick,Rechtsklick)

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
02.03.2007  
 



Hey Georg! Büdde mit kleinem Source.

Ich hab mir hier mal einen Textblock geschrieben den ich einfach toll finde:

[tb]minimalbeispiel[/tb]
 
02.03.2007  
 




GDL
Finde ich auch toll.Nur brauche ich immer Zusatzdateien um das Problem real darstellen zu können.Ich bin halt ein Einzelgänger in Sachen proggen.
Hoffe das dies geht.Ansonsten bekomme ich es so leicht nicht hin.
KompilierenMarkierenSeparieren
declare astart$,ende%,lvdll&,image#,string#,bereich#,hdll&,font1&,font&,name$,num%
declare anzahl&,x&,listview&,listview1&,listview2&,listview3&,bemerkung$,decoder$
declare ausgang$,rahmen1&,rahmen2&,text&[100],bt&
Def GetSysColor(1) !USER32, GetSysColor
usermessages 16
SetTrueColor 1
astart$=$ProgDir
case left$(astart$,14)=C:ProgrammeX:astart$=C:\Steuerung\
case left$(astart$,14)=C:PROGRAMMEX:astart$=C:\Steuerung\
chdir astart$
mkdir daten
chdir astart$+daten
window 0,0-%maxx,%maxy
cls getsyscolor (15)
Dim bereich#,320
 $I Listview_Funktionen.inc
lvdll&=usedll(Listview.dll)
 $I SKCONTROL.INC
let hdll& = UseDll(SKControl.dll)        Farb DLL laden
SKCtrl_InitDll()
dim string#,255
dim image#,255
font1&=@Create(Font,Courier,17,0,1,0,0)
font&=@Create(Font,Courier,8,0,1,0,0)
=================================================================

proc vorbereiten

    chdir astart$+daten\

    ifnot findfirst$(komponenten.str)=komponenten.str

        assign #1,komponenten.str
        rewrite #1
        print #1,feld1;C;2;0
        print #1,feld2;C;20;0
        print #1,feld3;C;4;0
        print #1,decoder;C;4;0
        print #1,ausgang;C;1;0
        close #1
        dbcreate komponenten.str > b.dbf
        dbcreate komponenten.str > k.dbf
        dbcreate komponenten.str > w.dbf
        dbcreate komponenten.str > m.dbf
        dbcreate komponenten.str > s.dbf
        name$=w.dbf
        clearlist wbox&
        erzeugen
        name$=s.dbf
        clearlist sbox&
        erzeugen
        name$=m.dbf
        clearlist mbox&
        erzeugen
        name$=b.dbf
        clearlist bbox&
        erzeugen

    else

        name$=w.dbf
        einlesen
        name$=s.dbf
        einlesen
        name$=m.dbf
        einlesen
        name$=b.dbf
        einlesen

    endif

endproc

==============================================================================

proc erzeugen

    num%=1
    anzahl&=dbopen(#1,name$)
    dbuse(#1)

    whilenot num% > 999

        dbappendblank()
        dbput(feld1,xx)
        dbput(feld2,....................)
        dbput(decoder,0000)
        dbput(ausgang,0)
        dbputrec(0)
        inc num%

    wend

    dbclose(#1)

endproc

===============================================

proc bildschirm

    x&=MixRGBs(GetSysColor(15),RGB(193,65,3))
    listview&=CreateListView(%hwnd,%hinstance,0,x&,-1,$31)
    ShowListview(listview&,10,150,440,200)
    setfont listview&,font&
    InsertColumn listview&,lfd.Nr.,80,0
    InsertColumn listview&,Bezeichnung,180,0
    InsertColumn listview&,Decoder,80,0
    InsertColumn listview&,Ausgang,80,0
    x&=MixRGBs(GetSysColor(15),RGB(193,65,93))
    listview1&=CreateListView(%hwnd,%hinstance,0,x&,-1,$31)
    ShowListview(listview1&,470,150,440,200)
    setfont listview1&,font&
    InsertColumn listview1&,lfd.Nr.,80,0
    InsertColumn listview1&,Bezeichnung,180,0
    InsertColumn listview1&,Decoder,80,0
    InsertColumn listview1&,Ausgang,80,0
    x&=MixRGBs(GetSysColor(15),RGB(0,202,0))
    listview2&=CreateListView(%hwnd,%hinstance,0,x&,-1,$31)
    ShowListview(listview2&,10,450,440,200)
    setfont listview2&,font&
    InsertColumn listview2&,lfd.Nr.,80,0
    InsertColumn listview2&,Bezeichnung,180,0
    InsertColumn listview2&,Decoder,80,0
    InsertColumn listview2&,Ausgang,80,0
    x&=MixRGBs(GetSysColor(15),RGB(0,0,224))
    listview3&=CreateListView(%hwnd,%hinstance,0,x&,-1,$31)
    ShowListview(listview3&,470,450,440,200)
    setfont listview3&,font&
    InsertColumn listview3&,lfd.Nr.,80,0
    InsertColumn listview3&,Bezeichnung,180,0
    InsertColumn listview3&,Decoder,80,0
    InsertColumn listview3&,Ausgang,80,0
    declare bemerkungedit&,decoderedit&,adresseedit&
    bt&=create(button,%hwnd,w,10,100,50,20)

endproc

========================================================

proc einlesen

    num%=1
    anzahl&=dbopen(#1,name$)
    dbuse(#1)

    whilenot num% > anzahl&

        dbgo(num%)
        bemerkung$=dbget$(feld2)
        decoder$=dbget$(decoder)
        ausgang$=dbget$(ausgang)
        case left$(name$,1)=w:SetItem listview&,right$(00+str$(num%),3),bemerkung$,decoder$,ausgang$
        case left$(name$,1)=s:SetItem listview1&,right$(00+str$(num%),3),bemerkung$,decoder$,ausgang$
        case left$(name$,1)=m:SetItem listview2&,right$(00+str$(num%),3),bemerkung$,decoder$,ausgang$
        case left$(name$,1)=b:SetItem listview3&,right$(00+str$(num%),3),bemerkung$,decoder$,ausgang$
        inc num%

    wend

    dbclose(#1)

endproc

==================================================================

proc aufraeumen

    dispose string#
    dispose image#
    dispose bereich#
    deleteobject font&
    deleteobject font1&
    SKCtrl_DeInitDll()        Farb DLL löschen
    FreeDll hdll&
    FreeDll lvdll&

endproc

==========================================================================
bildschirm
vorbereiten

whilenot ende%

    waitinput

    if %umessage = 16

        ende%=1
        aufraeumen

    elseif clicked(bt&)

        beep

    endif

wend


Dies werden nur 17k File. Im Hauptmodul sinds dann 4MB mit 255 Spalten.
Verzögerungszeit hier sind ca 2 sec.

Servus
Georg
 
Windows7 Xprofan 8,9,10 [...]  [...] 
02.03.2007  
 




Frank
Abbing
Hallo Georg,

Hab mein Demo Vier.prf mal getestet (beinhaltet Flughafendatei) und kann keine Verzögerungen erkennen. Wie du weisst, nutzt die Listview.dll nur die originalen SysListview32- Controls. Die komplette Verwaltung wird also von Windows übernommen, da funkt die Listview-Dll nicht dazwischen.
Ich vermutet, du bekommst die Probleme mit älteren Computer, die wahrscheinlich auch zu wenig RAM besitzen. Windows wird wahrscheinlich bei seiner Verwaltung Daten auslagern müssen und ein alter Prozessor arbeitet auch entsprechend langsamer. Daher werde ich an deinem Problem nichts ändern können, du solltest es mal mit etwas mehr Speicher probieren.
Kannst du denn bestättigen, dass mein Demo Vier.prf bei dir langsam reagiert?
 
02.03.2007  
 




GDL
Hallo Frank,

ich habe in vier.prf noch
button&=create(button,dialog&,T,650,230,20,20)
eingefügt und frage den in der Hauptschleife ab.

Geht auf jeden Rechner einwandfrei. Werde jetzt mal mit den Spalten hantieren. Vielleichts liegts an deren Anzahl. Oder ich übersehe irgendwas Wichtiges und komme einfach nicht darauf.

Servus
Georg

Jetzt bekomme auch ich schöne aufgelockerte Oberflächen hin.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
02.03.2007  
 




Michael
Wodrich
Bekommt da jedes der 4 Listviews 255 Spalten?
 
Programmieren, das spannendste Detektivspiel der Welt.
02.03.2007  
 




GDL
Ja und 999 Zeilen.
 
Windows7 Xprofan 8,9,10 [...]  [...] 
02.03.2007  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

945 Views

Untitledvor 0 min.

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