Anzeigedauer bei Ragtime?

Hey Leute,
ich baue gerade mit Ragtime eine Datenbank für meine DVD Sammlung!

Ich habe folgende Fragen:

+ Wenn ich über einen Knopf in eine Zeile eine Zahl setze, kann ich dann die Anzeigedauer der Zahl einstellen??

+ Kann ich die Farbe der Knöpfe ändern?

Lg
Torben

Re: Anzeigedauer bei Ragtime?

#6845 On 9 September, 2007 21:56 Thomas Kaegi said,

Hallo Torben

Die Farbe eines Knopfes kannst du nicht als solche defnieren. Aber der Knopf befindet sich ja in einem Container, entweder im Layout oder eine Rechenblattzelle dient als Container. Diesen kannst du eine Füllvorlage zuweisen. Und wenn du in der Knopfinformation unter "Anordnung" die Option "Container und Inhalt gekoppelt" aktivierst, dann wird der Knopf so gross wie der Container, dem du die Füllvorlage zugewiesen hast und hat damit die Farbe dieser Füllvorlage.

Das Problem mit der Anzeigedauer ist für mich nicht so ganz klar. Du sagst, dass mit dem Knopf eine Zahl in eine Zeile gesetzt werde. Meinst du nicht eine Zelle? Und soll die Zahl danach gelöscht werden oder einfach unsichtbar sein? Ich nehme mal an, du schreibst mit dem Knopf eine Zahl in eine Zelle, die nur 2 Sekunden sichtbar sein, danach aber nur unsichtbar sein und nicht gelöscht werden soll.

Mein Lösungsvorschlag:
Ich gehe mal davon aus, dass du in einem Layout einen Container mit Inhalt Rechenblatt hast. Dupliziere diesen Container, aber wähle für den duplizierten Container "Kein Inhalt". Gib dem zweiten Container die Füllvorlage "Transparent". Ziehe aus dem Inventar das Rechenblatt, welches sich im ersten Container befindet, in den zweiten Container und klick in eine Zelle des Rechenblatts im zweiten Container. Im Menü "Rechenblatt" wählst du "Lage anhängen". Jetzt ist im ersten Container die Lage 1 sichtbar, im zweiten die Lage 2 des gleichen Rechenblatts. Wähle die sichtbaren Zellen in Lage 2 aus und gib ihnen die Füllvorlage "Transparent".

Ich setze voraus, dass du Martin's Power Functions hast. Ich nehme ferner an, die Zelle, in welche die Zahl gesetzt werden solle, sei Zelle A1 (in Lage 1) und - damit ich eine sinnvolle Formel schreiben kann - nehme zudem an, dass die Zahl einfach mit jedem Knopfdruck um 1 erhöht werden solle. Ich benutze zudem die Zelle B1 in Lage 1 als Hilfszelle. Das kann natürlich auch eine beliebige andere Zelle sein. Das Rechenblatt heisse einfach "RB"

Die Formel im Knopf heisst dann:
SetzeZelle(RB!$A$1+1;RB!$A$1)&SetzeZelle(AddSekunde(Jetzt;2);RB!$B$1)&SetzeBereichFüllung(RB![2]$A$1;"Transparent")

Also wird zuerst der Inhalt von Zelle A1 (in Lage 1) um 1 erhöht, dann Zelle B1 auf den aktuellen Zeitpunkt + 2 Sekunden gesetzt. Schliesslich wird die Füllung von Zelle A1 in Lage 2 auf "Transparent" gesetzt.

In Lage 2, direkt in Zelle A1 kommt die Formel:
SpezialWenn(Sekunde>[1]B1;SetzeBereichFüllung(A1;"Standardfüllung"))

Sobald also die aktuelle Zeit grösser ist als die Zeit, die in Zelle B1 (Lage 1) geschrieben wurde, wird die Füllung von Zelle A1 (in Lage 2) auf "Standardfüllung" gesetzt. Vorausgesetzt ist, dass die Standardfüllung im "Normalzustand" ist, also weiss und nicht etwa transparent.

Jetzt musst du nur noch den zweiten Container genau über den ersten legen. Die um 1 erhöhte Zahl wird nach dem Knopfdruck für zwei Sekunden sichtbar sein (weil die darüber liegende Zelle A1 von Lage 2 die Füllvorlage "Transparent" hat) und danach mit der Standardfüllung abgedeckt. Ähnliche Beispiele findest du in unserem Buch in Kapitel F2.

Wer Martin's Power Functions nicht hat, muss in einer Rechenblattzelle eine Zeichnung platzieren, die nur aus einem genügend grossen Rechteck mit Standardfüllung besteht, und dann nach zwei Sekunden mit einer Formel diese Zeichnung in die Zelle A1 von Lage 2 holen.

Gruss
Thomas