String-Eingabe

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

String-Eingabe

Klaus Füller-5
Ich suche einen Morf, in den der Anwender einen String eintippen kann.  
Nichts Merkwürdiges, keine Farben und Schrifttypen, einfach nur 'xyzzy'.

Ich verwende:

        entry := TextMorph new.
        entry
                backgroundColor: Color veryLightGray;
                contents: '';
                wrapFlag: true;
                crAction: (MessageSend receiver: self selector: #contentsAccepted).];
                hResizing: #spaceFill;
                vResizing: #rigid.

Das funktioniert einigermaßen:

* Wenn ich den Morph, in dem entry steckt, vergrößere, passt sich  
entry an. Das ist nett.

Die Details sind aber hässlich:

* Wenn ich mit

        entry contents: 'abcde'.

   einen neuen Inhalt setze, ändert sich die Breite des TextMorphs auf  
5 Zeichen und
   der Morph passt sich nicht mehr der Umgebung an. Erneutes Senden  
von #hResizing bringt nichts.

* Schlimmer: Wenn man eine Eingabe macht, die länger ist als die  
Morphbreite, wächst der Morph
   in senkrechter Richtung (zusätzliche Zeilen). Ich will aber, dass  
er in waagerechter Richtung
   wächst oder dass --- Spitze des Luxus --- die getippten Zeichen  
nach links aus dem Display
   verschwinden.

Wer kann mir helfen?

Testumgebung: Monticello:

        MCHttpRepository
                location: 'http://www.squeaksource.com/KFGui'
                user: ''
                password: ''

Die Package laden und dann in einem Workspace

        (MultipleEntryMorph titles: #('Host' 'Port' 'User' 'Password'))  
openInHand

ausführen.
Reply | Threaded
Open this post in threaded view
|

Aw: String-Eingabe

pascal.vollmer
 Hallo,

zumindest mit der Anforderung dass getippte Zeichen links aus dem Textfeld verschwinden, wird Dir PluggableTextMorph gute Dienste leisten. Ich verwende es in squeaksource/TimeTable.
Damit konnte ich die folgende unschöne Eigenschaft von TextMorph umgehen, dass bei groß eingestelltem Schriftgrad der Schriftgrad "verloren geht", wenn man mit 'Del' alle Zeichen aus dem Textfeld löscht.

Gruß
Pascal


----- Original Nachricht ----
Von:     Klaus Füller <[hidden email]>
An:      Squeak in Germany / Squeak in Deutschland <[hidden email]>
Datum:   17.01.2009 18:24
Betreff: [Squeak-ev] String-Eingabe

> Ich suche einen Morf, in den der Anwender einen String eintippen kann.  
> Nichts Merkwürdiges, keine Farben und Schrifttypen, einfach nur 'xyzzy'.
>
> Ich verwende:
>
> entry := TextMorph new.
> entry
> backgroundColor: Color veryLightGray;
> contents: '';
> wrapFlag: true;
> crAction: (MessageSend receiver: self selector: #contentsAccepted).];
> hResizing: #spaceFill;
> vResizing: #rigid.
>
> Das funktioniert einigermaßen:
>
> * Wenn ich den Morph, in dem entry steckt, vergrößere, passt sich  
> entry an. Das ist nett.
>
> Die Details sind aber hässlich:
>
> * Wenn ich mit
>
> entry contents: 'abcde'.
>
>    einen neuen Inhalt setze, ändert sich die Breite des TextMorphs auf  
> 5 Zeichen und
>    der Morph passt sich nicht mehr der Umgebung an. Erneutes Senden  
> von #hResizing bringt nichts.
>
> * Schlimmer: Wenn man eine Eingabe macht, die länger ist als die  
> Morphbreite, wächst der Morph
>    in senkrechter Richtung (zusätzliche Zeilen). Ich will aber, dass  
> er in waagerechter Richtung
>    wächst oder dass --- Spitze des Luxus --- die getippten Zeichen  
> nach links aus dem Display
>    verschwinden.
>
> Wer kann mir helfen?
>
> Testumgebung: Monticello:
>
> MCHttpRepository
> location: 'http://www.squeaksource.com/KFGui'
> user: ''
> password: ''
>
> Die Package laden und dann in einem Workspace
>
> (MultipleEntryMorph titles: #('Host' 'Port' 'User' 'Password'))  
> openInHand
>
> ausführen.

Pascal Vollmer
Email: [hidden email]

Jetzt komfortabel bei Arcor-Digital TV einsteigen: Mehr Happy Ends, mehr Herzschmerz, mehr Fernsehen! Erleben Sie 50 digitale TV Programme und optional 60 Pay TV Sender, einen elektronischen Programmführer mit Movie Star Bewertungen von TV Movie. Außerdem, aktuelle Filmhits und spannende Dokus in der Arcor-Videothek. Infos unter www.arcor.de/tv
Reply | Threaded
Open this post in threaded view
|

Re: Aw: String-Eingabe

Klaus Füller-5

Am 17.01.2009 um 19:14 schrieb [hidden email]:

> zumindest mit der Anforderung dass getippte Zeichen links aus dem  
> Textfeld verschwinden, wird Dir PluggableTextMorph gute Dienste  
> leisten. Ich verwende es in squeaksource/TimeTable.

Ich finde squeaksource/TimeTable nicht.

Wenn ich PluggableTextMorph benutze, weiß ich nicht -

- wie ich die Texthintergrundfarbe ändern kann,
- Ich kann die Größe setzen, beispielsweise auf 100@20. Dann bekomme  
ich fast das,
   was ich brauche. Allerdings scrollt der Inhalt nach wie vor  
senkrecht.
- Wie kann ich den Text horizontal scrollen lassen?
- Außerdem sollte die Höhe natürlich von der Schriftgröße abhängen.
- Wenn ich die Morphs nebeneinander anordne, überlappen die sich bei  
knappem Platz.
   Es scheint so zu sein, dass PluggableTextMorph dem Layout-Manager  
falsche Informationen
   über seine Größe gibt.

- Ich kann #acceptOnCr machen. OK. Ruft der einen Block auf, wenn ich  
Accept mache??
   Kann ich von außen den roten Rand (den für "Inhalt geändert" wieder  
abschalten?

Danke für die schnelle Antwort.

Klaus