Parent und/oder AppDesktop()

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Parent und/oder AppDesktop()

Beitrag von Manfred »

Hi,

mal eine ganz generelle Frage:

Wenn ich unter purem Xbase++ einen Dialog erstelle, dann habe ich danach das Objekt. Wie ist das denn bei express++? Dort wird doch erst alles nach dem DCREAD GUI erstellt. Was ist wenn ich mehrere Fenster nacheinander übereinander platziere? Ich habe das Problem, dass beim Schließen der Fenster die Reihenfolge nicht mehr stimmt und irgendwie ein Fenster hinter dem anderen verschwindet und dann diese "oben" liegende Fenster nicht zu bearbeiten ist. Wenn man dann nicht genau darauf achtet, dass ja das andere Fenster im Hintergrund ist, dann kommt der User schon mal ins Schwitzen, weil er denkt das PRG wäre abgestürzt, aber in Wirklichkeit ist es nur durch das darunterliegende blockiert.
Sicherlich mal wieder was ganz einfaches, aber wie schon bisher festgestellt, das Einfache macht mir immer die größten Sorgen....
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: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Parent und/oder AppDesktop()

Beitrag von Tom »

Achte mal darauf, in allen MODALEN Dialogen das hier zu machen:

Code: Alles auswählen

DCREAD GUI ... PARENT @oDialog EVAL {|o|SetAppWindow(o)} MODAL
Erstens hast Du dann die Objektvariable, auf die Du zugreifen kannst, und zweitens klappt's dann auch mit Modalität und Z-Order.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Parent und/oder AppDesktop()

Beitrag von Manfred »

Hi Tom,

bevor ich wieder etwas falsches erzähle:

Code: Alles auswählen

PROCEDURE main()
          LOCAL aVo
          LOCAL getlist := {}
          LOCAL GetOptions
          LOCAL oBrowse := NIL
          LOCAL oThread := Thread():new()
          LOCAL oVostamm

          MEMVAR oBild
          MEMVAR oMa
          MEMVAR oMessage
          MEMVAR oPruefen
          MEMVAR oSysPara

          oBild    := bildschirm():new()
          oMessage := nachricht():new()
          oPruefen := pruefen():new()

          oMa      := mitarbeiter():new():initvaria()
          oVostamm := fstamm():new():initvaria()

          oBild:cPrgArt          := "Info-Terminal"
          oBild:cVersion         += "09/06.03.2009"
          oMa:name               := "Info"
          oSysPara:cProgrammName := "Info-Terminal"

          oBild:hauptmenue(.T.,.T.)
          oVostamm:db_oeffnen()
          SETCANCEL(.F.)                                                        // ALT+C abschalten
          DO WHILE .T.
             aVo := {}
             oVostamm:felderleeren()
             @  1, 1 SAY "Darst/Interpr:                     Titel:                                 "
             @  1,15 GET oVostamm:v_darstell PICTURE "@K !XXXXXXXXXXXXXXXXXXX";
                                             WHEN EMPTY(oVostamm:v_titel);
                                             VALID {|| oThread:start("interpret", aVo, oThread, oVostamm))}
             @  1,42 GET oVostamm:v_titel    PICTURE "@K !XXXXXXXXXXXXXXXXXXX";
                                             WHEN EMPTY(oVostamm:v_darstell);
                                             VALID {|| oThread:start("titel", aVo, oThread, oVostamm)}
             READ
             IF oVostamm:v_titel = "LOGOUT" .OR. oVostamm:v_darstell = "LOGOUT"
                EXIT
             ENDIF
             @ 70, 1 DCBROWSE oBrowse;
                      AUTOREFRESH 111;
                       CURSORMODE XBPBRW_CURSOR_ROW;
                             DATA aVo;
                      NOSOFTTRACK;
                             SIZE 1000,600

         DCBROWSECOL ELEMENT 1 WIDTH 300 HEADER "Interpret" PARENT oBrowse
         DCBROWSECOL ELEMENT 2 WIDTH 300 HEADER "Titel"     PARENT oBrowse
         DCBROWSECOL ELEMENT 3 WIDTH 200 HEADER "Ort"       PARENT oBrowse
         DCBROWSECOL ELEMENT 4 WIDTH  50 HEADER "Platz"     PARENT oBrowse ALIGN XBPALIGN_RIGHT

         DCGETOPTIONS HILITEGETS GRA_CLR_CYAN;
                      AUTORESIZE;
                     NOMINBUTTON;
                     NOMAXBUTTON;
                           PIXEL;
                      SAYOPTIONS XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT

         DCREAD GUI;
                FIT;
            OPTIONS GetOptions
          ENDDO .T.
          AppQuit()
          RETURN
********************************************************************************
FUNCTION titel(aVo,oThread, oVostamm)
         LOCAL aDlgSize     := {300,100}
         LOCAL cIndexAnfang
         LOCAL cIndexEnde
         LOCAL oAblauf
         LOCAL oDialog
         LOCAL oHinweis
         LOCAL oVo2        := kassette():new():initvaria()
         LOCAL oVostamm2   := fstamm():new():initvaria()

         MEMVAR oGenre
         MEMVAR oHersteller
         MEMVAR oMessage
         MEMVAR oSysteme

         oMessage    := nachricht():new()
         oGenre      := genre():new():initvaria()
         oHersteller := hersteller():new():initvaria()
         oSysteme    := systeme():new():initvaria()

         IF Empty(oVostamm:v_titel)
            oThread:quit()
            RETURN(.T.)
         ENDIF
         oGenre:db_oeffnen()
         oHersteller:db_oeffnen()
         oSysteme:db_oeffnen()
         oVostamm2:db_oeffnen("titel")
         oDialog  := DialogFenster():new(AppDesktop(),SetAppWindow(),,aDlgSize,,,.F.)
         oHinweis := feldtexte():new(oDialog,,{5,40},{200,20})
         oHinweis:caption := "Daten werden erzeugt, bitte Geduld...."
         oAblauf  := feldtexte():new(oDialog,,{5,10},{100,20})
         oDialog:create()
         oHinweis:create()
         oAblauf:create()
         oVo2:db_oeffnen()
         oVostamm2:db_oeffnen("titel")
         DO WHILE .T.
            IF "*" $ oVostamm:v_titel .OR. "?" $ oVostamm:v_titel               // Orwilsseek ist angesagt
               oVostamm:v_titel := StrTran(Trim(oVostamm:v_titel)," ","?")
               (oVostamm2:nArea)->(OrdWildSeek(Upper(oVostamm:v_titel)))
               DO WHILE (oVostamm2:nArea)->(Found())
                  IF oVo2:satzsuchen(Str((oVostamm2:nArea)->id,8,0),,"idvostamm",,,,.T.,.F.,.F.)
                     oVostamm2:fuehreDbVerbindungen("titelsuchen")
                     AAdd(aVo,{;
                               (oVostamm2:nArea)->v_darstell,;
                               (oVostamm2:nArea)->v_titel,;
                               (oGenre:nArea)->bez,;
                               (oVo2:nArea)->lagernr;
                              })
                     oAblauf:setcaption(Transform(Len(aVo),"9999"))
                  ENDIF
                 (oVostamm2:nArea)->(OrdWildSeek())
               ENDDO
               EXIT
            ELSE                                                                // es wurde definitiv nach einem Namen gesucht
               cIndexAnfang := Upper(oVostamm:v_titel)                          // Anfangsbuchstaben sichern für den ScopeAnfang
               cIndexEnde   := Trim(cIndexAnfang)                               // für Scopende
               oVostamm2:satzsuchen(oVostamm2:indexOhneArtikel(Upper(oVostamm:v_titel)),.T.,"titel",,,,.T.,,.F.)
               (oVostamm2:nArea)->(Dbsetscope(SCOPE_TOP,cIndexAnfang))
               (oVostamm2:nArea)->(Dbsetscope(SCOPE_BOTTOM,cIndexEnde))
               IF (oVostamm2:nArea)->(Eof())
                  IF oMessage:anzeigen("Es wurde kein passender Eintrag gefunden. Soll eine ungefähre Suche probiert werden?",.T.,"J")
                     (oVostamm2:nArea)->(DbClearScope())
                     oVostamm:v_titel := "*" + Trim(oVostamm:v_titel) + "*"
                     LOOP
                  ENDIF
                  EXIT
               ENDIF
               DO WHILE ! (oVostamm2:nArea)->(Eof())
                  IF oVo2:satzsuchen(Str((oVostamm2:nArea)->id,8,0),,"idvostamm",,,,.T.,,.F.)
                     oVostamm2:fuehreDbVerbindungen("titelsuchen")
                     AAdd(aVo,{;
                               (oVostamm2:nArea)->v_darstell,;
                               (oVostamm2:nArea)->v_titel,;
                               (oGenre:nArea)->bez,;
                               (oVo2:nArea)->lagernr;
                              })
                     oAblauf:setcaption(Transform(Len(aVo),"9999"))
                  ENDIF
                  (oVostamm2:nArea)->(DbSkip())
               ENDDO
               (oVostamm2:nArea)->(DbClearScope())
            ENDIF
            EXIT
         ENDDO .T.
         oGenre:schliesse_datenbank()
         oHersteller:schliesse_datenbank()
         oSysteme:schliesse_datenbank()
         oVostamm2:schliesse_datenbank()
         oDialog:destroy()
         oMessage:anzeigen("Suchvorgang beendet")
         oThread:quit()
         RETURN .T.
wenn die Funktion Titel() und der Thread beendet sind, dann lande ich UNTER dem Browser. Und da das ein Kundenterminal ist und daran auf keinen Fall eine Maus soll, ist das störend. Ich habe keine Ahnung, warum es so ist und wie ich es ändern kann.
Ja, es ist ein Textbildschirm, über den GUI geblendet wird. Ich habe express++ gewählt, weil es damit recht einfach geht Arrays zu browsen.
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: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Parent und/oder AppDesktop()

Beitrag von Manfred »

Hi,

hat denn keiner einen Tipp parat, was ich machen muß, damit ich gezielt die entsprechenden Fenster aktivieren kann, bzw. nach Schließen des Hinweisfensters wieder im Browser lande? :(
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: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Parent und/oder AppDesktop()

Beitrag von Tom »

Muss "titel" in einem neuen Thread gestartet werden?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Parent und/oder AppDesktop()

Beitrag von Manfred »

Hi Tom,

hm, ich habe es gerade mal ausprobiert. Wenn ich den Thread nicht starte, dann klappt es zwar auch, aber man sieht keine Zwischenergebnisse im Browser im Hintergrund.

Am schönsten fände ich es natürlich, wenn die Suche im Hintergrund laufen würde, jederzeit mit ESC oder einem entsprechenden Button abbrechbar wäre und der Browser das aktuelle Ergebnis anzeigen würde (refresh).
Aber dazu fehlt mir wohl im Moment der nötige Gehirnschmalz.
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: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Parent und/oder AppDesktop()

Beitrag von Manfred »

Es muß doch irgendeine Möglichkeit geben, nach dem Thread:quit() zu sagen: Aktiviere mit den Browser?
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
Jan
Marvin
Marvin
Beiträge: 14658
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Parent und/oder AppDesktop()

Beitrag von Jan »

Manfred,

wenn ich Dich richtig verstanden habe, dann kann ich Dir eine Lösung liefern. Aber erst heute Abend, wenn ich wieder zu Hause bin. Und auch nur Xbase++ pur, kein eXpress++. Das geht über den Umweg Event-Schleife des Threads mit dem Browse. Ich hab mir damals auch einen abgebrochen, um das hinzubekommen. Obwohl es ganz simpel ist (wenn man weiß, wie das geht) :oops:

Ich melde mich dann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2936
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Parent und/oder AppDesktop()

Beitrag von Wolfgang Ciriack »

Hallo Manfred,
übergib doch oBrowse mit an die Funktion und mache dann ein SetAppFocus(oBrowse).
Viele Grüße
Wolfgang
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Parent und/oder AppDesktop()

Beitrag von Manfred »

Hi Wolfgang,

dass habe ich versucht, aber das klappt nicht. Der oBrowse ist ja noch NIL in dem Moment, weil er erst knapp später erzeugt wird.
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: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Parent und/oder AppDesktop()

Beitrag von Manfred »

Hi,

ich habe jetzt einmal etwas ganz anderes gebaut. Aber auch hier habe ich so meine Verständnisprobleme:

Code: Alles auswählen

#include "q:\include\inkey.ch"
#include "appevent.ch"
#include "Gra.ch"
#include "dcdialog.ch"
#include "Xbp.ch"
********************************************************************************
PROCEDURE appsys()
          RETURN
********************************************************************************
PROCEDURE main()
          LOCAL aVo       := {}
          LOCAL getlist   := {}
          LOCAL GetOptions
          LOCAL oAblauf   := NIL
          LOCAL oBrowse   := NIL
          LOCAL oText     := NIL

          MEMVAR oGenre
          MEMVAR oHersteller
          MEMVAR oMessage
          MEMVAR oSysteme
          MEMVAR oVo
          MEMVAR oVostamm

          PUBLIC bDarst                                                         // muß hier erstmal noch stehen
          PUBLIC bTitel                                                         // muß hier erstmal noch stehen

          oGenre      := genre():new():initvaria()
          oHersteller := hersteller():new():initvaria()
          oMessage    := nachricht():new()
          oSysteme    := systeme():new():initvaria()
          oVo         := kassette():new():initvaria()
          oVostamm    := fstamm():new():initvaria()
          oGenre:db_oeffnen()
          oHersteller:db_oeffnen()
          oSysteme:db_oeffnen()
          oVo:db_oeffnen()
          oVostamm:db_oeffnen(,,,,,,.T.)

          @ 10, 1 DCSAY "Darsteller/Interpret:";
                   FONT "12.Arial.Bold";
                 OBJECT oText;
                   SIZE 150,20

          @  0,150 DCGET oVostamm:v_darstell;
                  OBJECT oVostamm:oV_darstell;
                RELATIVE oText;
                    SIZE 300,20;
                 TABSTOP;
                   VALID {|| interpret(@aVo,oBrowse,oAblauf)}

          @  0,310 DCSAY "Titel:";
                    FONT "12.Arial.Bold";
                  OBJECT oText;
                RELATIVE oVostamm:oV_darstell;
                    SIZE 50,20

          @  0,50 DCGET oVostamm:v_titel;
                  OBJECT oVostamm:oV_titel;
                RELATIVE oText;
                    SIZE 300,20;
                 TABSTOP
          @  0,310 DCSAY "";
                   COLOR GRA_CLR_RED;
                    FONT "12.Arial.Bold";
                  OBJECT oAblauf;
                RELATIVE oVostamm:oV_Titel;
                    SIZE 100,20

          @ 32, 1 DCBROWSE oBrowse;
                CURSORMODE XBPBRW_CURSOR_ROW;
                      DATA aVo;
               NOSOFTTRACK;
                      SIZE 1000,700

               DCBROWSECOL ELEMENT 1 WIDTH 300 HEADER "Interpret" PARENT oBrowse
               DCBROWSECOL ELEMENT 2 WIDTH 300 HEADER "Titel"     PARENT oBrowse
               DCBROWSECOL ELEMENT 3 WIDTH 200 HEADER "Ort"       PARENT oBrowse
               DCBROWSECOL ELEMENT 4 WIDTH  50 HEADER "Platz"     PARENT oBrowse ALIGN XBPALIGN_RIGHT

          DCGETOPTIONS;
                BORDER XBPDLG_SIZEBORDER;
            HILITEGETS GRA_CLR_CYAN;
           NOESCAPEKEY;
           NOMINBUTTON;
           NOMAXBUTTON;
                 PIXEL;
                 TITLE "Kundenterminal 09.03.2009";
           WINDOWWIDTH 1024;
          WINDOWHEIGHT 768

            DCREAD GUI;
               OPTIONS GetOptions
          RETURN
********************************************************************************
FUNCTION interpret(aVo,oBrowse,oAblauf)
         LOCAL cIndexAnfang
         LOCAL cIndexEnde

         MEMVAR oGenre
         MEMVAR oMessage
         MEMVAR oVo
         MEMVAR oVostamm

         IF oVostamm:v_darstell = "LOGOUT"
            AppQuit()
         ENDIF
         IF ! Empty(oVostamm:v_titel) .OR. Empty(oVostamm:v_darstell)
            RETURN(.F.)
         ENDIF
         oAblauf:setcaption("Suche erfolgt")
         oVostamm:indexfocus("darst")
         oVostamm:oV_Darstell:disable()
         oVostamm:oV_Titel:disable()
         DO WHILE .T.
            IF "*" $ oVostamm:v_darstell .OR. "?" $ oVostamm:v_darstell         // Ordwilsseek ist angesagt
               oVostamm:v_darstell := StrTran(Trim(oVostamm:v_darstell)," ","?")
               (oVostamm:nArea)->(OrdWildSeek(Upper(oVostamm:v_darstell)))
               DO WHILE (oVostamm:nArea)->(Found())
                  IF oVo:satzsuchen(Str((oVostamm:nArea)->id,8,0),,"idvostamm",,,,.T.,.F.,.F.)
                     oVostamm:fuehreDbVerbindungen("titelsuchen")
                     AAdd(aVo,{;
                               (oVostamm:nArea)->v_darstell,;
                               (oVostamm:nArea)->v_titel,;
                               (oGenre:nArea)->bez,;
                               (oVo:nArea)->lagernr;
                              })
                     oBrowse:refreshAll()
                  ENDIF
                 (oVostamm:nArea)->(OrdWildSeek())
               ENDDO
               EXIT
            ELSE                                                                // es wurde definitiv nach einem Namen gesucht
               cIndexAnfang := Upper(oVostamm:v_darstell)                       // Anfangsbuchstaben sichern für den ScopeAnfang
               cIndexEnde   := Trim(cIndexAnfang)                               // für Scopende
               oVostamm:satzsuchen(oVostamm:indexOhneArtikel(Upper(oVostamm:v_darstell)),.T.,"darst",,,,.T.,.F.,.F.,"titelsuchen")
               (oVostamm:nArea)->(Dbsetscope(SCOPE_TOP,cIndexAnfang))
               (oVostamm:nArea)->(Dbsetscope(SCOPE_BOTTOM,cIndexEnde))
               IF (oVostamm:nArea)->(Eof())
                  IF oMessage:anzeigen("Es wurde kein passender Eintrag gefunden. Soll eine ungefähre Suche probiert werden?",.T.,"J")
                     (oVostamm:nArea)->(DbClearScope())
                     oVostamm:v_darstell := "*" + Trim(oVostamm:v_darstell) + "*"
                     LOOP
                  ENDIF
                  EXIT
               ENDIF
               DO WHILE ! (oVostamm:nArea)->(Eof())
                  IF oVo:satzsuchen(Str((oVostamm:nArea)->id,8,0),,"idvostamm",,,,.T.,.F.,.F.)
                     oVostamm:fuehreDbVerbindungen("titelsuchen")
                     AAdd(aVo,{;
                               (oVostamm:nArea)->v_darstell,;
                               (oVostamm:nArea)->v_titel,;
                               (oGenre:nArea)->bez,;
                               (oVo:nArea)->lagernr;
                              })
                     oBrowse:refreshAll()
                  ENDIF
                  (oVostamm:nArea)->(DbSkip())
               ENDDO
               (oVostamm:nArea)->(DbClearScope())
            ENDIF
            EXIT
         ENDDO .T.
         oAblauf:setcaption("")
         oMessage:anzeigen("Suchvorgang beendet")
         oVostamm:oV_Darstell:enable()
         oVostamm:oV_Titel:enable()
         RETURN(.T.)
1. wie kann ich die Schleife unterbrechen, wenn gesucht wird.
2. wie bekomme ich das Array aVo wieder leer, bevor die nächste Suche losgeht? Wenn ich in die Funktion Interpret vor Setcaption ein aVo := {} reinbaue, dann wird das Array zwar leer und auch wieder gefüllt, aber der Browser zeigt nichts mehr an. Wenn ich es rausnehme, dann wird immer nur hinzugeschrieben.
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: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Parent und/oder AppDesktop()

Beitrag von Manfred »

Ok,

das Problem mit dem Array scheint erledigt. Dafür gibt es dc_getbrowarray().
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: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Parent und/oder AppDesktop()

Beitrag von Manfred »

HiHo,

jetzt habe ich immer noch das Problem, dass ich die While Schleife nicht unterbrochen bekomme, wenn ich die Daten in das Array schreibe. (per ESC oder so)
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
Bertram Hansen
Foren-Moderator
Foren-Moderator
Beiträge: 1015
Registriert: Di, 27. Sep 2005 8:55
Wohnort: 51379 Leverkusen
Hat sich bedankt: 28 Mal
Danksagung erhalten: 20 Mal
Kontaktdaten:

Re: Parent und/oder AppDesktop()

Beitrag von Bertram Hansen »

Hallo Manfred,

ich bin gerade in der Doku von Roger über die folgenden Funktion gestolpert.
dc_completeevents()
Siehe Dir mal das Beispiel in der Doku an. Eventuell ist es das was Du benötigst.

Evenuell hilft Dir auch der Quellcode der Funktion DC_WorkArea2Excel() von Roger unter ...\EXP19\Source\Dclipx\_dcfunct.prg
Dort hat er einen Abbruchbutton in einem Laufzeitbalken eingebaut.
:wave:
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.

Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: Parent und/oder AppDesktop()

Beitrag von Manfred »

Hi Bertram,

den 1. Tipp werde ich gleich nachsehen, den 2. Tipp habe ich schon probiert, aber es klappte nicht so wie ich es dachte. Aber ich werde mir nochmals ansehen, was er da gebaut 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!!
Antworten