Anfängerfrage GraStringAT(..
Moderator: Moderatoren
Anfängerfrage GraStringAT(..
Anfängerfrage
Mit der Funktion GraStringAt(oPS.. möchte ich einen Zählerstand im Dialogfeld anzeigen lassen z.B. bei jeden Buttondruck Zähler+1.
Jedoch wird im Dialogfeld die vorhergehende Zahl nicht gelöscht d.h. der 1 (Einser) wird direkt über den 0 (Nuller) geschrieben usw. Wie kann ich im Dialogfeld die „alte“ Zahl vorher löschen.
oPS := drawingArea:lockPS() // Micro PS anfordern
GraStringAt(oPS,{100,100},alltrim(str(z)))
z++
drawingArea:unlockPS( oPS ) // Micro PS freigeben
Im Voraus vielen Dank für Eure Hilfe
mfg.
Michael
Mit der Funktion GraStringAt(oPS.. möchte ich einen Zählerstand im Dialogfeld anzeigen lassen z.B. bei jeden Buttondruck Zähler+1.
Jedoch wird im Dialogfeld die vorhergehende Zahl nicht gelöscht d.h. der 1 (Einser) wird direkt über den 0 (Nuller) geschrieben usw. Wie kann ich im Dialogfeld die „alte“ Zahl vorher löschen.
oPS := drawingArea:lockPS() // Micro PS anfordern
GraStringAt(oPS,{100,100},alltrim(str(z)))
z++
drawingArea:unlockPS( oPS ) // Micro PS freigeben
Im Voraus vielen Dank für Eure Hilfe
mfg.
Michael
- brandelh
- Foren-Moderator
- Beiträge: 15710
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 73 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Hi Michael,
sieh dir mal die Funktion GraSetAttrString() an, dort kann man die Farben für Schrift und Hintergrund, sowie das 'Mischen' der Anzeige mit dem Hintergrund (GRA_AS_BGMIXMODE). Letzteren müsstest du auf GRA_BGMIX_OVERPAINT einstellen wenn ich das richtig lese.
PS: alle GRA_ Funktionstypen haben eine eigene GraSetAttr...() Funktion um verschiedene Dinge einzustellen.
sieh dir mal die Funktion GraSetAttrString() an, dort kann man die Farben für Schrift und Hintergrund, sowie das 'Mischen' der Anzeige mit dem Hintergrund (GRA_AS_BGMIXMODE). Letzteren müsstest du auf GRA_BGMIX_OVERPAINT einstellen wenn ich das richtig lese.
PS: alle GRA_ Funktionstypen haben eine eigene GraSetAttr...() Funktion um verschiedene Dinge einzustellen.
Zuletzt geändert von brandelh am Do, 16. Nov 2006 13:32, insgesamt 1-mal geändert.
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16586
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Michael,
mehrere Möglichkeiten - unter anderem mit GraBox() an der Stelle ein gefülltes Quadrat in der Hintergrundfarbe zeichnen und danach die Zahl ausgeben.
Viel besser (und einfacher) ist es jedoch, wenn Du Dir an die Stelle, an der die Zahl erscheinen soll, ein XbpStatic() hinpackst und dann die anzuzeigende Zahl mit :SetCaption() entsprechend zuweist.
Viele Grüße,
Martin
mehrere Möglichkeiten - unter anderem mit GraBox() an der Stelle ein gefülltes Quadrat in der Hintergrundfarbe zeichnen und danach die Zahl ausgeben.
Viel besser (und einfacher) ist es jedoch, wenn Du Dir an die Stelle, an der die Zahl erscheinen soll, ein XbpStatic() hinpackst und dann die anzuzeigende Zahl mit :SetCaption() entsprechend zuweist.
Viele Grüße,
Martin
![grommit :grommit:](./images/smilies/grommit.gif)
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15710
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 73 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
Oh natürlich, daran habe ich jetzt gar nicht gedacht.Martin Altmann hat geschrieben:Viel besser (und einfacher) ist es jedoch, wenn Du Dir an die Stelle, an der die Zahl erscheinen soll, ein XbpStatic() hinpackst und dann die anzuzeigende Zahl mit :SetCaption() entsprechend zuweist.
Dann hast du auch keine Repaint-Probleme, da die Xbp das alles selbst erledigen.
Gruß
Hubert
Hubert
- Rolf Ramacher
- Der Entwickler von "Deep Thought"
- Beiträge: 1931
- Registriert: Do, 09. Nov 2006 10:33
- Wohnort: Bergheim
- Danksagung erhalten: 3 Mal
- Kontaktdaten:
Static-Anzeige
Hallo Michael,
wenn der Wert immer mit neuen Werten angezeigt werden soll, würde
ich nach der Static-Caption-Zuweisung ein :configure() einbauen,
damit der alte Wert überschrieben wird.
gruß Rolf
wenn der Wert immer mit neuen Werten angezeigt werden soll, würde
ich nach der Static-Caption-Zuweisung ein :configure() einbauen,
damit der alte Wert überschrieben wird.
gruß Rolf
- Martin Altmann
- Foren-Administrator
- Beiträge: 16586
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Rolf,
das ist beim Ändern der Caption mit SetCaption() (zum Glück) nicht notwendig.
Viele Grüße,
Martin
das ist beim Ändern der Caption mit SetCaption() (zum Glück) nicht notwendig.
Viele Grüße,
Martin
![grommit :grommit:](./images/smilies/grommit.gif)
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 105 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Das ist mit einem XBPSTATIC_TYPE_TEXT tatsächlich einfacher, nach einem :SetCaption() muß auch kein :Configure() erfolgen, aber es geht auch mit GraStringAt():
Code: Alles auswählen
aAttr := Array(GRA_AS_COUNT)
aAttr[GRA_AS_COLOR] := GRA_CLR_BLACK
aAttr[GRA_AS_BACKCOLOR] := XBPSYSCLR_TRANSPARENT
aAttr[GRA_AS_MIXMODE ] := GRA_FGMIX_OVERPAINT
GraSetAttrString(oPS,aAttr)
GraStringAt(oPS,{x,y},cMyString)
Herzlich,
Tom
Tom