Seite 2 von 2

Verfasst: Mo, 22. Mai 2006 17:44
von brandelh
Manfred hat geschrieben:was ich meinte, war, Erhaben, bzw. Eingedrückt.
Das geht am einfachsten wenn du 2 statics übereinander legst,
das untere (create() zuerst) als type raised oder depressed etc. und darüber den Text, es sei denn es ist möglich den Textstyle mit den anderen zu kombinieren (addieren, weiß ich jetzt gar nicht ... probieren).

Verfasst: Mi, 24. Mai 2006 8:58
von Manfred
Hi Hubert,
brandelh hat geschrieben:
Manfred hat geschrieben:Ich muß jetzt irgendwie Beispiele sammeln und anhand derer ausprobieren.
Hallo Manfred,

wenn du im XppFD einen Dialog erstellst und als Class-Code speicherst, erhälst du schöne Beispiele, so habe ich auch angefangen.
Ich sage nur mal wieder:"Die einfachsten Rezepte sind oft die besten...."

Verfasst: Mi, 24. Mai 2006 9:06
von brandelh
Ich sage nur mal wieder:"Die einfachsten Rezepte sind oft die besten...."
Meine Rede :D

Verfasst: Mi, 24. Mai 2006 9:21
von Manfred
Aaaaaber,

eine Frage habe ich auch dazu noch.

Ich habe ein paar Statics mit Text versehen und ihm dann gesagt, er soll mir einmal Objektcode und einmal Funktionscode erzeugen.

Ich verstehe jetzt nicht so ganz, warum bei Objektcode die Statics durchnummeriert wurden und bei Funktionscode nach jedem Static ein :create() erfolgte, aber alle nur Static heißen. Hat das einen besonderen Grund, oder kann man das halten wie der Benether?

Verfasst: Mi, 24. Mai 2006 9:37
von brandelh
Manfred hat geschrieben:Ich verstehe jetzt nicht so ganz, warum bei Objektcode die Statics durchnummeriert wurden und bei Funktionscode nach jedem Static ein :create() erfolgte, aber alle nur Static heißen.
Bei Funktionscode wird die Variable mit der das Object im Quellcode direkt angesprochen werden kann 'wiederverwendet', beim Classcode eindeutig benannt.

Im Funktionscode kann man z.B. das erste SLE nicht mal kurz später direkt ansprechen z.B. mit oXbp:setCaption(), da oXbp mittlerweile das letzte Objekt der Createreihenfolge beherbergt. Das ist schlecht !
Bei kleinen Auswahlboxen ist das kein Problem, aber bei umfangreichem Code kann man nicht einfach in einer abgeleiteten Klasse wenige Änderungen machen. Alles oder nichts lautet auch beim XppFD bei Funktionscode.

Beim Object-Code - eindeutig bevorzugt zeigt schon die Trennung des erzeugten Codes in User.PRG und _USER.PRG <- Unterstrich beachten den Unterschied. der XppFD schreibt nur noch in die Grundlagen, in der eigenen Routine USER.PRG kann man ändern was man will, VOR oder NACH dem Aufruf der Superroutine.

Hier kann man immer einfach oWin:MySLE:... ändern oder abfragen, sonst bleibt nur der Weg über die Childlist das richtige Xbp zu suchen.
Das ist umständlich.

Verfasst: Mi, 24. Mai 2006 9:42
von brandelh
Spiele einfach mal mit beiden Ausgaben herum:
Schalter ändert die Caption eines statics etc. ...

PS: man sollte die Namen der Xbp nicht vom XppFD durchnummerieren oder bestimmen lassen. Was war noch :SLE44 ???
Immer einen iVarNamen (z.B. über Bearbeiten) zuweisen, der mit einem spricht: oSleNachName ...

Verfasst: Mi, 24. Mai 2006 9:45
von Manfred
Alles klar,

habe ich so verstanden.

Allerdings mit der Durchnummerierung hat es den Vorteil, man kann alles über eine Schleife mit :create(), :type usw. belegen. Bei Festen Masken z.B.

Verfasst: Mi, 24. Mai 2006 9:49
von brandelh
OK, never say never again :wink: es gibt wohl immer Ausnahmen.
Und wenns läuft dann läufts auch ...

Verfasst: Mi, 24. Mai 2006 9:52
von Manfred
Hi Hubert,

es geht mir eigentlich nur darum: In der ganzen Zeit hier, in der ich das Forum jetzt nutze, habe ich feststellen müssen, wie umständlich ich teilweise programmiert habe und sicherlich auch noch werde. Da frage ich gerne nach.

Verfasst: Mi, 24. Mai 2006 9:56
von brandelh
dafür ist das Forum da ... :D

Re: xbpstatic und :setcaption()

Verfasst: Do, 25. Jan 2018 15:18
von vorti
Ich hol den Thread nochmal ins Leben weil er thematisch gut passt.

Gibt es die Möglichkeit einfach alle xbpStatic´s zu ändern, wenn diese als Caption eine Variable haben oder muss man die auch mit setCaption bzw. :caption durchgehen.

Re: xbpstatic und :setcaption()

Verfasst: Do, 25. Jan 2018 15:25
von Jan
Ohne das getestet zu haben: Du must auf jeden betroffenen Static mindestens ein :configure() machen. Wobei ich mir jetzt nicht sicher bin, ob das Ändern des Variableninhaltes und ein fogendes :configure() wirklich ausreichen würde. Versuchs mal.

Jan

Re: xbpstatic und :setcaption()

Verfasst: Do, 25. Jan 2018 15:26
von brandelh
Die "variable" füllt ja nur die Caption des Controls, da gibt es keine Verbindung später.
Also JA, man muss die Caption per Methode ändern.

Re: xbpstatic und :setcaption()

Verfasst: Do, 25. Jan 2018 15:41
von brandelh
Eventuell reicht ein oWin:configure() um die geänderten Captions zu übernehmen, aber dabei wird oft auch was anderes verstellt, ich würde setCaption() aufrufen, geht doch schnell ;-)

Re: xbpstatic und :setcaption()

Verfasst: Fr, 26. Jan 2018 2:39
von AUGE_OHR
vorti hat geschrieben: Do, 25. Jan 2018 15:18 Gibt es die Möglichkeit einfach alle xbpStatic´s zu ändern, wenn diese als Caption eine Variable haben oder muss man die auch mit setCaption bzw. :caption durchgehen.
wenn ich das richtig verstehe möchtest du eine Veränderung der "Anzeige" :!:

das Control muss also ein "re-paint" machen was bei einer o:SETxxx() Method üblicherweise enthalten ist.

btw.

im Help File sind die "VAR" unter Konfiguration VOR einem o:Create() gedacht.
unter Laufzeit stehen SETxxx() Methoden die solche "VAR" nachträglich verändern können

will man nun eine "VAR" direkt verändern dann muss man o:Configure() aufrufen.
ein o:Configure() ist meisten der letzte Ausweg aber selten notwendig.

Tip : im Help auch mal nach den Superklassen gucken was alles geerbt wurde steht ja auch zur Verfügung ;-)

---

wenn beim XbpStatic() der o:Draw Callback Slot mit einem Codeblock belegt wird

Code: Alles auswählen

   ::draw := {| oPS, aInfo, self | ... }
kann man eine "VAR" als Variabel benutzen und mit den GRA* Function ausgeben was du willst.
trotzdem wird die "Anzeige" nicht "reagieren" wenn "nichts passiert" also kein Event kommt :!:

Tip : "sammel" alle XbpStatic Objecte in einem Array

Code: Alles auswählen

   AEVAL(aSammel, {|oXbp| PostappEvent( xbeP_Draw,,,oXbp ) } )

Re: xbpstatic und :setcaption()

Verfasst: Fr, 26. Jan 2018 11:22
von Tom
Die Methode Configure() hat im Prinzip eine ähnliche Wirkung wie ein Destroy() und ein erneutes Create(). Wenn man die iVar Caption zwischenzeitlich neu gesetzt hat, sollte das zwar wirken, aber das ist Kanonenfeuer auf Singvögel (ich kaufe ein neues Auto, weil das alte schmutzig ist). Wie Jimmy richtig schrieb, enthält die Methode SetCaption() das Setzen der Caption und das Auslösen der Neuzeichnung. Man kann aber z.B. eine abgeleitete Klasse bauen, die Codeblöcke als Captions zulässt - und dann in einer Refreshfunktion, die alle Objekte eines Dialogs abarbeitet, die Codeblöcke evaluiert und davon abhängig die Captions neu setzt. Oder so.