Anfängerfrage GraStringAT(..

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
mkersch
UDF-Programmierer
UDF-Programmierer
Beiträge: 89
Registriert: Fr, 12. Mai 2006 13:26
Wohnort: Wünricht

Anfängerfrage GraStringAT(..

Beitrag von mkersch »

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Zuletzt geändert von brandelh am Do, 16. Nov 2006 13:32, insgesamt 1-mal geändert.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Oh natürlich, daran habe ich jetzt gar nicht gedacht.
Dann hast du auch keine Repaint-Probleme, da die Xbp das alles selbst erledigen.
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1931
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Static-Anzeige

Beitrag von Rolf Ramacher »

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
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16586
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 116 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Rolf,
das ist beim Ändern der Caption mit SetCaption() (zum Glück) nicht notwendig.

Viele Grüße,
Martin
:grommit:
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.
P. Jossi
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 31
Registriert: Mi, 17. Mai 2006 7:16

Beitrag von P. Jossi »

Kannst nicht ein static verwenden?
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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:

Beitrag von Tom »

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
Antworten