xbpstatic und :setcaption()

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag 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).
Gruß
Hubert
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

Beitrag 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...."
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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Ich sage nur mal wieder:"Die einfachsten Rezepte sind oft die besten...."
Meine Rede :D
Gruß
Hubert
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

Beitrag 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?
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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag 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.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag 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 ...
Gruß
Hubert
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

Beitrag 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.
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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

OK, never say never again :wink: es gibt wohl immer Ausnahmen.
Und wenns läuft dann läufts auch ...
Gruß
Hubert
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

Beitrag 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.
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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

dafür ist das Forum da ... :D
Gruß
Hubert
vorti
UDF-Programmierer
UDF-Programmierer
Beiträge: 61
Registriert: Mo, 25. Sep 2017 12:21

Re: xbpstatic und :setcaption()

Beitrag 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.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: xbpstatic und :setcaption()

Beitrag 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
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: xbpstatic und :setcaption()

Beitrag 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.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: xbpstatic und :setcaption()

Beitrag 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 ;-)
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: xbpstatic und :setcaption()

Beitrag 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 ) } )
gruss by OHR
Jimmy
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: xbpstatic und :setcaption()

Beitrag 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.
Herzlich,
Tom
Antworten