Das nächste Entwicklertreffen findet Anfang Mai in Münster statt - weitere Infos bzw. zur Anmeldung!

DCMULTILINE und Scrollbar [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Do, 11. Apr 2019 21:03

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7527
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: DCMULTILINE und Scrollbar

Beitrag von Tom » Do, 11. Apr 2019 21:52

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: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar

Beitrag von Manfred » Fr, 12. Apr 2019 6:33

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7527
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: DCMULTILINE und Scrollbar

Beitrag von Tom » Fr, 12. Apr 2019 9:06

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: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Fr, 12. Apr 2019 9:30

Danke Tom,
ich habe es etwas umgebaut. Jetzt scheint es so zu klappen, wie erwartet.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Fr, 12. Apr 2019 9:43

Mist, klappt doch nicht. Genügt es denn nicht den Protectblock zu ändern?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7527
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom » Fr, 12. Apr 2019 10:02

Kannst Du einen Codeschnipsel zeigen? Oder ein kleines Beispiel bauen?
Herzlich,
Tom

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Fr, 12. Apr 2019 10:15

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7527
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom » Fr, 12. Apr 2019 10:32

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: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Fr, 12. Apr 2019 10:35

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Fr, 12. Apr 2019 10:38

WHEN hat den gleichen EFFEKT wie EDITPROTECT und blockiert den SCROLLBAR auch.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7527
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom » Fr, 12. Apr 2019 12:04

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: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Fr, 12. Apr 2019 12:10

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7527
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom » Fr, 12. Apr 2019 13:09

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: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Fr, 12. Apr 2019 14:02

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7527
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom » Fr, 12. Apr 2019 15:47

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: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Fr, 12. Apr 2019 16:28

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18536
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Manfred » Sa, 13. Apr 2019 13:04

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 Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7527
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: DCMULTILINE und Scrollbar [ERLEDIGT]

Beitrag von Tom » Sa, 13. Apr 2019 13:21

:)
Herzlich,
Tom

Antworten