1.9 generell (1.9.331)

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9361
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

1.9 generell (1.9.331)

Beitrag von Tom »

Ich habe die 1.9 auf der DevCon erhalten. Generell scheint es ein großes Problem mit dem Redraw zu geben. Die :Disable() und :Enable()-Slots reagieren nicht mehr so wie in der 1.8(2), und manchmal erst, wenn man ein Repaint des Parentwindows erzwingt, indem man zum Beispiel ein anderes Fenster davorzieht und wieder wegschiebt. Erstaunlicherweise arbeitet das bei Keyboard-Navigation "korrekter" als bei Mausnavigation. Wenn ich also über den ItemMarked-Slot eines Browses eine Variable setze, die in Abhängigkeit Pushbuttons im selben Dialog Enablen/Disabeln soll, reagiert das nicht vernünftig, analog der :Visible-Slot. Das Problem scheint durchgängig alle Parts zu betreffen, so zum Beispiel auch in Abhängigkeit veränderte Captions von Bitmap-Objekten. Wie gesagt, ein erzwungenes Repaint korrigiert das, aber das kann's ja nicht sein.

Das Verhalten ist Till Warweg auch auf der DevCon (nicht nur von mir) demonstriert worden. Ich hoffe, es ist im kurzfristig erhältlichen ersten Hotfix behoben, der auch das Problem mit den Relationen beseitigen soll.

Probleme habe ich auch mit dem Ownerdrawing zum Beispiel bei Menüs, die ich zur Laufzeit verändere, indem ich ihre Captions abhängig verändere, wozu ich dann :GetItem() und :SetItem() benutze. Da ich diese Menüs allerdings über DC.. aus eXpress++ baue, ist möglich, daß Roger da etwas noch nicht berücksichtigt.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Tom,

danke für die Infos, fange gerade an eine ältere Anwendung im Hybridmodus auf 1.90 umzustellen. Die OrdWildSeek() kann ich dort sehr gut brauchen und das Problem von Memoedit() unter 1.82 drückt die Anwender - und damit auch mich.
Meine reinen GUI-Programme kommen danach, ich werde sehr genau testen bevor ich diese auf 1.90 freigebe.

Mal sehen ob der Patch schneller ist :wink:
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16516
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Hubert,
brandelh hat geschrieben:Mal sehen ob der Patch schneller ist :wink:
nun - Alaska wird sich jetzt sicherlich erstmal einen Monat Urlaub gönnen - und das haben sie sich nach dem ganzen Streß auch durchaus verdient :!:
Ich würde also mit einem Patch nicht vor August rechnen.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Wie, 1 Monat Urlaub? :shock:

Die hatten über Ostern zu und nächstes Wochenende ist Pfingsten.

Das muß genügen.
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
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16516
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Manfred,
nun sei mal nicht so hart mit den Jungs! Dass das Büro nicht besetzt war, heißt ja noch lange nicht, dass sie nicht gearbeitet haben!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Martin,

Wenn irgendwas besetzt ist, dann muß dass nicht immer heißen, das gearbeitet wird, es wird dann meißtens viel S...... gemacht. :lol:
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
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: 1.9 generell (1.9.331)

Beitrag von AUGE_OHR »

hi,
Tom hat geschrieben:Ich habe die 1.9 auf der DevCon erhalten. Generell scheint es ein großes Problem mit dem Redraw zu geben...

... Das Problem scheint durchgängig alle Parts zu betreffen, so zum Beispiel auch in Abhängigkeit veränderte Captions von Bitmap-Objekten. Wie gesagt, ein erzwungenes Repaint korrigiert das, aber das kann's ja nicht sein.
mir scheint es so als wenn es ein "bekanntes" Problem in der v1.9.331
ist was in einer der "beta" Version aufgetaucht war aber bei den letzten
"RC" Version "behoben" war ... (Fenster minimieren/maximieren und
Teile wie "Schrift" wurden nicht "repaint(ed)".)

nun gibt es aber seit der v1.9x "ownerdraw" womit ich jetzt meine
"Detail" Fenster ausgestattet habe und somit selbst kontrolliere wann
der was "repaint(en)" soll.

deshalb ist es mir wohl bei der letzten RC (1.9.330) "entgangen" das
dass Problem "wieder" aufgetaucht ist, aber da es "bekannt" ist sollte
eine Patch "schnell" folgen können, es sei den man will noch mehr
BUGs der v1.9.331 "beheben" ...

gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

ich frage mich schon, warum bekannte Probleme plötzlich verschwinden und später wieder auftauchen.

@Martin

der verschlimbesserte Bug in den Relationen und nun das, ich denke nicht dass die einen Urlaub verdient haben :wink: aber ich gönne ihn ihnen dennoch.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo an alle,

also ich habe es nicht ausgehalten und mein umfangreichstes GUI (Xbase++ PUR) Programm durch den Compiler gejagt:

Version 1.90.331
Gemeldete Compilerfehler: 0
Festgestellte Unstimmigkeiten: 0
Repaintverhalten: konnte keine Fehler feststellen (wie gesagt, nur Xbase++ Standard GUI Elemente)
Insgesamt kommt mir die Anzeige des Programmes schneller vor (weniger Flackern ...), aber das war vorher kein Problem.
Rechner Pentium III Tulatin 1,266 Mhz, 512 MB Ram.

Ich werde weiter testen, allerdings nicht in den nächsten Tagen.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Neue Möglichkeiten: OrdWildSeek(...)

Beitrag von brandelh »

Hallo,

ich habe hier ein Adressverwaltungsprogramm, welches auch portugisische Adressen verwalten muss, dazu muss man wissen, dass die Portugiesen keinen festen Familiennamen kennen, sondern zwischen 4 und 5 Namensteile haben, die Sie frei mischen können: Rodriges da Silva Poablo ist somit gleich wie Da Silva Rodriges Poablo ... also nichts für einen linksbündigen Index. In diesem Fall habe ich bisher also 2 Suchbegriffe (Namensbestandteile) per

Code: Alles auswählen

 upper(alltrim(cName1)) $ upper(NachName+Vorname) .and. upper(alltrim(cName2)) $ upper(NachName+Vorname)
verwendet.

Bei 30000 Namen dauert so eine Suche auf lokaler Festplatte etwa 12 Sekunden, im Netzwerk deutlich länger.

Code: Alles auswählen

Neu nun mit Index auf upper(Nachname+Vorname) und 

if OrdWildSeek("*"+upper(alltrim(cName1))+"*") 
   do while found() .and. ! eof()
        if &Suchbegriff
           Anzeige
        endif
        OrdWildSeek()
   enddo 
endif
Die neue 1.90 Routine erledigt die gleiche Suche (lokal) in 1 Sekunde !
Das nenne ich einen Geschwindigkeitsgewinn. Die Anwender wird es freuen, Arbeit etwa 20 Minuten.
Mit den comprimierten CDX Indexen könnte man da fast an Volltextsuche (nicht in Memodateien !) denken ...
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Hubert,

dieser Test war prima, weil ich sowas auch suche.
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Ein Hinweis habe ich noch vergessen,

ein OrdWildSeek("TEST") findet NICHTS , auch wenn DBSEEK("TEST") .t. liefert !

so wie es scheint, ist OrdWildSeek() NUR mit einem Platzhalter (* ? etc.) im Suchbegriff brauchbar, nicht dass das ein Nachteil währe.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Hubert,

habe das Orwildseek() gerade mit einer DB getestet, in der 430.000 Sätze sind.

Dauer: 16 Sekunden bei 1643 Treffern.

Der Server ist ein Linux 9.2 mit Samba 3.0x und einer 1GB Karte.

Elitegroup Athlon 1800 512 MB RAM IDE HD

Die WS ist ein Asus mit Athlon 2800+ 512 MB WinXP 1GB Karte

Also auf Serverseite nichts weltbewegendes.
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Manfred hat geschrieben:habe das Orwildseek() gerade mit einer DB getestet, in der 430.000 Sätze sind.
Dauer: 16 Sekunden bei 1643 Treffern.
...
Also auf Serverseite nichts weltbewegendes.
Du meinst die Leistung wäre schlecht ?
Wie lange hast du bisher mit Locate oder Filter oder sonst wie dafür benötigt ?
Passt der Index ?
1643 Treffer aus 430.000, da läßt sich der Suchbegriff sicher besser wählen :wink:
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Hubert,

halt halt halt,

ich meinte die Voraussetzungen auf der Serverseite sind nicht der Brüller. Ich bin recht angetan von dem Ergebnis.....

Puh, ganz schnell retten.......
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

PS: Natürlich hängt der Geschwindigkeitszuwachs ganz entscheident von der Satzlänge ab. Ein OrdWildSeek kann gerade nicht die BTREE Struktur des Index für eine schnelle Suche nutzen (das würde linksbündige Suche bedingen !).
Er lebt davon dass er mit der Indexdatei weniger Daten durchsuchen muss, als locate oder filter. Wenn der Index aber nur wenig kleiner ist als der eigentliche Datensatz, kann man auch nur wenig sparen.

PPS: Die Annahmen beruhen auf meiner Vermutung wie das realisiert wurde.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Manfred hat geschrieben:Puh, ganz schnell retten.......
Keine Angst, ich beiße nicht :D
Zuletzt geändert von brandelh am So, 04. Jun 2006 10:47, insgesamt 1-mal geändert.
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Also ich werde das Teil jetzt mal einbauen.

Man muß natürlich eine Zwischendatei generieren, in die das Ergebnis geschrieben wird, um es dann zu browsen.

Würde ich jetzt so machen, oder gibt es da noch einen anderen Trick, wenn man das Ergebnis weiterverarbeiten will, sprich anklicken um den Wert zu übernehmen?
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
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16516
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Hubert,
brandelh hat geschrieben:PPS: Die Annahmen beruhen auf meiner Vermutung wie das realisiert wurde.
Deine Annahmen trügen Dich nicht!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

hat jemand schon mal das Ergebnis farblich dargestellt? Mit anderen Worten, die "Suchfetzen", die Orwildseek() findet irgendwie mit einer Farbe unterlegen, damit man nachvollziehen kann was da gefunden wurde?
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

So ganz verstehe ich nicht, was du meinst, aber gefunden wird der Teil des Suchbegriffes, der weder * noch ? ist (zumindest solange die Standardeinstellungen aktiv sind).
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Hubert,

Suchbegriff: "Feld"

Gefunden würde : "Vorfelder", "Hauptfeld", "Ährenfeld" usw.

Schön wäre jetzt Vorfelder, Hauptfeld, Ährenfeld

Wenn hier im Forum unter "suchen" etwas gefunden wird, wird das Ergebnis auch farblich unterlegt
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Manfred,

und wer zeigt denn die Indexdatei oder das Ergebnis an ?

Richtig, mit 1.90 kannst DU ein RTF-Control einsetzen und die gefundenen Wortteile mit anderer Farbe darstellen (XbpMle kann das nicht).
Gruß
Hubert
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Ja stimmt, das war jetzt etwas zu schnell geschossen.

Eigentlich würde ich das Ergebnis in eine DB schreiben, aber es ginge doch sicherlich auch in einem Array!?

Allerdings muß ich mal wieder passen, ich weiß im Moment nicht, wie ich ein Array in XbpBrowse() anzeigen soll.

Das frustet alles. Ich habe heute so viel gelesen und nicht wirklich etwas verstanden, bzw. etwas gefunden, was mich weitergebracht hätte.
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15696
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Manfred,

ich habe mal hier einen QuickBrowse (Anzeige ist schneller, kann aber nicht alles, was XbpBrowse kann) mit Array im Quellcode beigefügt.
Ich nutzte ausschließlich QuickBrowse.
Wichtig ist hier eine Verbindung des Arrays mit DacPagedDataStore():new(... das die Datenbereitstellung für das QuickBrowse bereitstellt.
Ich weiß jetzt nicht mehr genau ob man das für ein richtiges Browse auch braucht ?

Code: Alles auswählen

   
// ich spreche die Arrayfelder über diese Defines an und richte mir 
// auch immer gleiche ein leeres Array für Blankdatensätze, sonst
// muss ich die Parameter später dauernd von der Reihenfolge wissen.

// Arraybeschreibung von Verf
Gruß
Hubert
Antworten