DCBROWSE unsichtbar nach Erzeugung

Moderator: Moderatoren

Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von Marcus Herz »

So was in der Art haben wir in xclass implementiert. Es flackert kaum noch
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von Manfred »

ich glaube hier geht es doch wieder in die falsche Richtung. Das Flackern kommt wohl bei mir daher, das zunächst erstmal die ganzen Browser aufgebaut werden müssen. D.h. Sie werden aufgebaut und dann erstmal übereinander gelegt. Das meinte ich mit Flackern. (War dann wohl anfänglich etwas unglücklich ausgedrückt) Es sind die einzelnen Browser, die man erstmal alle sieht und dann verschwinden sie zum Schluß. Bis auf den, der gebraucht wird.
Es ist ja so, das sie erstmal alle nacheinander in das Array geschrieben werden und dann zuletzt daraus erzeugt werden. Und da alle Browser sich von links nach rechts aufbauen, siht das eben wie geflackert aus. Und das möchte ich unterbinden, das man das nicht sieht. Was aber bisher nicht geklappt hat.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
HaPe
1000 working lines a day
1000 working lines a day
Beiträge: 995
Registriert: So, 15. Nov 2015 17:44
Wohnort: 71665 Vaihingen-Enz
Hat sich bedankt: 17 Mal
Danksagung erhalten: 15 Mal

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von HaPe »

Hallo Manfred !
ich glaube hier geht es doch wieder in die falsche Richtung
Nein, das glaube ich nicht.
Marcus hat sich zum Flackern dazu ja ebenso geäußert.
Die Controls, Container, Browser, usw. außerhalb des sichbaren Bereiches aufbauen und erst zum Schluß in den sichtbaren Bereich schieben.
Das Flackern kommt wohl bei mir daher, das zunächst erstmal die ganzen Browser aufgebaut werden müssen
Was nicht sichtbar ist, kann nicht Flackern ...
--
Hans-Peter
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von Jan »

Manfred,

abseits von eXpress++: Im "normalen" XbpBrowse gibt es ja diese manchmal sehr störende Zeitverzögerung bis hin zum zeitlupenförmigen Aufbau durch das Erzeugen der Spalten. Was wäre, wenn Du den Browse erzeugst, den dann erstmal versteckst (beim XbpBrowse :hide()), die ganzen zeitaufwändigen Sachen machst, und dann erst das :show() machst?

Ich weiß nicht ob das beim DCBrowse so geht, aber es wäre vielleicht einen Versuch wert.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von Tom »

Jan, das macht Manfred ja in dem einen Beispiel. Ich mache das auch so. Wichtig ist, dass man, wenn es nur um GUI, also Anzeige und Darstellung geht, bei entsprechenden Operationen z.B. mit LockUpdate() dann nicht mit RefreshAll() oder solchem Unsinn arbeitet, sondern mit InvalidateRect().
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von Manfred »

HaPe,
Du bist auf dem falschen Gedanken.
Es geht hier bei mir um teilweise bis zu 5 Browser, die "übereinander" liegen. Jeder Browser wird (dem Anschein nach) zellenweise von links oben nach rechts unten erzeugt. Dann wird er ausgeblendet und dann kommt der nächste. Wieder von links oben nach rechts unten. Wenn das nun mehrmals hintereinander geschieht (und das über einen größeren Bildschirmbereich hinweg), dann nimmt man das als Flackern war. Und das stört. Am besten wäre, wenn ich es schaffen würde alle Browser im Verborgenen zu erzeugen und dann nur den anzuzeigen, der benötigt wird. Aber dann höre ich schon wieder den Anwender schreien: "Das dauert alles so lange, warum denn nur?" Weil er während des Vorgangs nicht sieht, das was gemacht wird und deshalb der Meinung ist es würde ewig dauern. Was aber nicht der Fall ist, weil es sichtbar evtl. sogar noch länger dauern würde, aber er sieht, das sich was tut und somit einen anderen Eindruck gewinnt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von Manfred »

OK,
wobei ich mir das gerade nochmal selbst ganz genau angeschaut habe. Was flackert ist, das jeder Browser einen anderen Spaltenaufbau hat und das erzeugt das vermeindlich Flackern. Die Spalten verschieben sich eben x-mal hin und her. Wie schon gesagt, es wäre dienlich wenn ich es irgendwie schaffen würde nur den Browser anzuzeigen der benötigt wird und den Rest erst gar nicht sichtbar hätte. Aber das scheint ja wohl nicht zu klappen, mit Rogers Technik.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von Tom »

Ich sehe gerade, dass ich solche doppelten Browses, von denen ich nur eines brauche, auf Statics lege (simple DCSAYs), die HIDE-Klausel ist jeweils für das Static und das Browse aktiv, über eine logische iVar des Dialogobjekts. Dann flackert nichts - und die Umschaltung zwischen den Browses geht auch vergleichsweise sauber. Wichtig ist natürlich, dass der logische Wert schon beim Aufbau der GetList .F. ist.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von Manfred »

bei mir sieht das so aus. ICh habe mal 2 Browser eingestellt, es folgen aber noch mehr

Code: Alles auswählen

@ oSysPara:skaliereXbParts(15),oSysPara:skaliereXbParts(5) DCBROWSE oDialogZUsatz:oBrowse;
              CURSORMODE XBPBRW_CURSOR_ROW;
                    DATA oDialogZUsatz:aBrowse;
                  FILTER {|o| IF(o:schnellfilter,.F.,.T.)};
               HEADLINES 2;
                    HIDE {|| versteckeBrowse("ALLES")};
              ITEMMARKED {|| oDialogZUsatz:itemmarkedbrowse(oDialogZusatz:oFla),;
                             dc_getrefresh(getlist),;
                             dc_getorigset(getlist);
                          };
              NOSOFTTRACK;
                   PARENT oDialogZusatz:oRahmenBrowse;
             PRESENTATION oVtPara:aPresBrowse;
                     SIZE DCGUI_PARENTWIDTH-oSysPara:skaliereXbParts(10),DCGUI_PARENTHEIGHT - oSysPara:skaliereXbParts(20);
             SORTUPBITMAP BITMAP_RD_UP_DARKGRAY ;
           SORTDOWNBITMAP BITMAP_RD_DOWN_DARKGRAY

         DCBROWSECOL OBJECTVAR jjjj;
                        HEADER "JJJJ";
                        PARENT oDialogZusatz:oBrowse;
                          SORT {|aMousePos, nColPos, self| oDialogZusatz:MausImKopf(nColPos,"jjjj")};
                       TOOLTIP "rechte Maustaste sortiert die Spalte" 
		
		@ oSysPara:skaliereXbParts(15),oSysPara:skaliereXbParts(5) DCBROWSE oDialogZUsatz:oBrowseBuchung;
              CURSORMODE XBPBRW_CURSOR_ROW;
                    DATA oDialogZUsatz:aBrowse;
                  FILTER {|o| IF(o:schnellfilter,.F.,.T.)};
               HEADLINES 2;
                    HIDE {|| versteckeBrowse("BUCHUNG")};
              ITEMMARKED {|| oDialogZUsatz:itemmarkedbrowse(oDialogZusatz:oFla),;
                             dc_getrefresh(getlist),;
                             dc_getorigset(getlist);
                          };
              NOSOFTTRACK;
                   PARENT oDialogZusatz:oRahmenBrowse;
             PRESENTATION oVtPara:aPresBrowse;
                     SIZE DCGUI_PARENTWIDTH-oSysPara:skaliereXbParts(10),DCGUI_PARENTHEIGHT - oSysPara:skaliereXbParts(20);
             SORTUPBITMAP BITMAP_RD_UP_DARKGRAY ;
           SORTDOWNBITMAP BITMAP_RD_DOWN_DARKGRAY

         DCBROWSECOL OBJECTVAR jjjj;
                        HEADER "JJJJ";
                        PARENT oDialogZusatz:oBrowseBuchung;
                          SORT {|aMousePos, nColPos, self| oDialogZusatz:MausImKopf(nColPos,"jjjj")};
                       TOOLTIP "rechte Maustaste sortiert die Spalte"
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCBROWSE unsichtbar nach Erzeugung

Beitrag von Tom »

Gib dem Browse mal ein zusätzliches Static als Parent. Liefert <VersteckeBrowse("ALLES")> wirklich .T., bis der Dialog im EVAL "Show()" sagt?
Herzlich,
Tom
Antworten