DCMULTILINE und Scrollbar [ERLEDIGT]

Moderator: Moderatoren

Antworten
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

DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

mir ist heute etwas merkwürdiges aufgefallen. Kann es sein, das ein disabled() DCMULTILINE zwar den vertikalen Scrollbalken anzeigt, der aber nicht bewegt werden kann? Erst wenn enabled wird, ist dieser zu bedienen. Das kann doch nicht richtig sein, oder?
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: DCMULTILINE und Scrollbar

Beitrag von Tom »

Doch, das ist vernünftiges Verhalten. Ein Control, das deaktiviert ist, deaktiviert auch seine Kinder. Bei Editprotect verhält es sich dann so, wie Du das vermutlich erwartest.
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: DCMULTILINE und Scrollbar

Beitrag von Manfred »

das stimmt, so ist es. Deshalb ist es ja auch anfänglich nicht aufgefallen. Also muß man sowas Editprotect setzen und dann für den passenden Moment freischalten!? Und nicht mit enable disable arbeiten
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: DCMULTILINE und Scrollbar

Beitrag von Tom »

EditProtect ist ja Rogers Lösung dafür, dass man Controls in normaler Darstellung (es gibt außerdem die Möglichkeit, Farben für diesen Modus festzulegen) anbietet, also nicht abgegraut o.ä., ohne dass sie bearbeitbar sind. Das erreicht er dadurch, dass das Control in diesem Modus seinen Fokus einfach sofort wieder zurückreicht, wenn es ihn bekommt. Insofern: Ja, das wäre die Lösung. Der Scrollbar, der zu einem MLE gehört, ist auch - anders als z.B. derjenige bei einem XbpBrowse - kein XbPart, das angeflanscht wird. Die ChildList() eines MLE/DCMULTILINE ist leer.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

Danke Tom,
ich habe es etwas umgebaut. Jetzt scheint es so zu klappen, wie erwartet.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

Mist, klappt doch nicht. Genügt es denn nicht den Protectblock zu ändern?
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom »

Kannst Du einen Codeschnipsel zeigen? Oder ein kleines Beispiel bauen?
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

Tom,
ich weiß nicht was ich da für ein Beispiel zeigen soll? Es geht hier doch nur um das Grundprinzip.

Code: Alles auswählen

@ oDialogZusatz:nOben,DCGUI_COL DCMULTILINE oDialogZusatz:oArbeitsablauf:textein;
                                                EVAL {|o| o:usevisualstyle := .F.,;
                                                          oDialogZusatz:oArbeitsablauf:addEditControl(o,.T.,,,"Ereignis");
                                                     };
                                                FONT oSysPara:doParaWS:schrifteingabe;
                                           IGNORETAB;
                                       NOHORIZSCROLL;
                                              OBJECT oDialogZusatz:oArbeitsablauf:oTextein;
                                              PARENT oDialogZusatz:oRahmenKopf;
                                        PRESENTATION {{XBP_PP_DISABLED_FGCLR,GRA_CLR_BLACK},{XBP_PP_DISABLED_BGCLR,GRA_CLR_WHITE}};
                                             TABSTOP
In Addeditcontrol werden alle parts gespeichert um sie dann am Ende der reihe nach zu enablen oder disablen. Das klappt alles. Es ist halt nur, das man bei einem DCMULTILINE welches disabled ist, keinen Scrollbalken bewegen kann.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom »

Genau. Also musst Du aus dem WHEN in diesem Fall ein EDITPROTECT machen (und, Achtung, die Logik umdrehen - WHEN lässt die Bearbeitung zu, wenn der Codeblock ja sagt, EDITPROTECT umgekehrt) - und die Farben entsprechend anpassen.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

wenn ich EDITPROTECT {|| .T.} mache bekomme ich es nicht wieder abgeschaltet. An WHEN habe ich jetzt nicht gedacht, das werde ich mal probieren.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

WHEN hat den gleichen EFFEKT wie EDITPROTECT und blockiert den SCROLLBAR auch.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom »

WHEN ist Disablen. Das ist die Klausel dafür. Und EDITPROTECT bekommst Du wieder aus, indem Du die Bedingung änderst. Das wäre die gleiche wie für's Disablen, nur umgekehrt.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

Tom,
habe ich m.E. gemacht. Es gibt eine Membervar die heißt EDITBLOCK. Die wird gesetzt, wenn man EDITPROTECT setzt. Aber wenn ich die nachträglich ändere, bringt es nichts. Es stand zum Start entweder NIL oder {|| .T.} drin. wenn ich {|| .F.} oder NIL draus mache gibt es keine Resonanz in die Richtung, die ich erwarten würde. Deshalb ja auch meine Frage. Bisher war es ja immer möglich sowas zu manipulieren. Aber in dem Fall.....
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom »

DCMULTLINE kennt drei Klauseln, die ähnliche Dinge tun. Der Codeblock, der WHEN folgt, regelt, ob das Control en- oder disabled ist. Der Codeblock, der EDITPROTECT folgt, entscheidet (alternativ oder zusätzlich), ob der Text bearbeitet werden kann, aber das Ergebnis unterscheidet sich nicht von einem bearbeitbaren (enableten) MLE. READONLY lässt das MLE aussehen, als wäre es disabled (WHEN), aber es ist scrollbar - und man kann den Text auch kopieren.

Die Frage ist nur, ob und wie Du überhaupt diese Klauseln verwendest oder ob Du das irgendwie direkt machst, was nicht zu empfehlen ist.

Edit: Alle drei Codeblöcke werden evaluiert, wenn ein DC_GetRefresh() ausgelöst wird - oder wenn DC_GetWhenHideEval() ausgeführt wird.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

Dann muß ich nochmal in mich gehen. Irgendwas mache ich wohl falsch.
Woberi ja jetzt folgende Frage aufkommt:
Was mache ich zuerst?
Ich erzeuge das MLE und möchte im ersten Schritt haben, das es nur angezeigt wird, aber nicht editierbar ist. Aber es muß scrollbar sein.
Angezeigt wird es, nicht editierbar ist es auch, aber es kan auch nicht gescrollt werden. (unerwünschter Zustand)
Wenn ich EDITPROTECT {|| .T.} mache, wird es angezeigt, ist scrollbar, kann aber nicht editierbar gemacht werden. (unerwünschter Zustand)
Wenn ich die WHEN {|| .F.} Klausel nehme, wird es angezeigt, ist nicht editierbar und der Scrollbalken klappt auch nhicht (unerwünschter Zustand)
Wenn ich Readonly nehme, dann wird es angezeigt, ist nicht editierbar, der Scrollbalken klappt nicht, es kann nicht editierbar gemacht werden ( unerwünschter Zustand)
Was kann man sonst machen?
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom »

Wenn Du EDITPROTECT {||.NOT.DarfDasMLEbearbeitetwerden()} machst, dann regelt die Antwort von DarfDasMLEbearbeitetwerden(), ob das so ist. Alternativ kann das auch im Cargo oder in einer iVar des MLE stecken. Das Thema hatten wir doch schon in tausend Varianten, Manfred. Es ist immer das gleiche, oder?
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

verdammt, ich glaube Du hast recht und jetzt kapiere ich wieder was Du meinst. Es kann ja auch eine Funktion da rein. Das vergesse ich immer wieder. :banghead: :banghead: :banghead: Das werde ich jetzt mal versuchen.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred »

ok, ich habe das jetzt über Editprotect und dann einer Funktion geregelt, die den etsprechenden Wert zurückliefert. Enable und disable komplett entfernt. Jetzt sieht es gut aus.
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: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom »

:)
Herzlich,
Tom
Antworten