QUICK REFERENCE: SCROLLPANE. MOSTRANDO ARQUIVOS.

Um ScrollPane é uma área onde podemos mostrar muitas linhas de texto.

Esse objeto possui dentro dele outro objeto: uma ScrollBar que vai possibilitar que se deslize o texto.

Para criar um objeto ScrollPane usamos o Workspace (como já fizemos para o TextField) com o programa:

ScrollPane new openInWorld.

Importante notar que, dentro dum ScrollPane não vem um objeto Text. Assim, temos que (abra a lingueta Supplies) colocar um dentro dele. Mas isso não basta. Temos que "ligar" esse objeto ao outro. Para isso usamos o Menu do halo do objeto Text. Clicamos em:embed into. Mas NÃO clicamos em ScrollPane mas sim em: TransformMorph!

Isso fará com que, se o texto a ser publicado for maior que a área do ScrollPane, esse fica escondido e pode ser visto rolando a barra.

Um dos usos interessantes dum ScrollPane+Text é para mostrar os registros de um arquivo. Você se lembra que criamos o arquivo: meuarquivo.txt que tinha três campos que poderiam ser: "código", nome e "telefone"? Podemos criar uma aplicação (uma atividade) em que, clicando um botão, os dados desse arquivo aparecem num ScrollPane.

Vamos fazer um exercício simples, sem uma edição dos campos muito sofisticada.Essa edição pode ser feita com algum trabalho adicional, usando recursos da Classe String.

O script vai estar ligado ao objeto Text e não ao ScrollPane. E será:

|file bigString line|
file := FileStream fileNamed: 'meuarquivo.txt'. 
bigString := file contentsOfEntireFile.
line:= bigString copyReplaceAll:':' with: '\'.
self setCharacters: line asString withCRs. 
file close.

Podemos testar apenas apertando o botão amarelo no Editor de script:

Mas já vimos, em lição anterior, como ligar um script a um botão. Fazemos isso e salvamos nosso projeto (atividade) para podermos carregá-lo em qualquer oportunidade.

Repare, na figura seguinte com nossa atividade em sua forma final, que mudamos os objetos para terem formas mais bonitas. O uso de cores fortes é uma tradição do Squeak. Afinal ele foi feito para crianças usarem.

Vejamos outras propriedades interessantes da Classe ScrollPane:


position

Arraste o botão do halo.


size

Arraste o botão do halo.


sendToBack, bringToFront, embedInto


changeColor


makeScrollBarRetractable


scrollBarOnLeft


scrollBarOnRight


show


hide

Use-as com o Menu do halo, com o Viewer ou programando.

OBSERVAÇÃO: Talvez muitos de vocês, acostumados a usar arquivos relacionais, não imagine como é possível, por exemplo, capturar e mostrar apenas um registro de um arquivo .TXT (o proprietário de um dado telefone, por exemplo). Como podemos jogar o arquivo numa OrderedCollection, podemos dar uma varredura em cada elemento da coleção e testar os dados de um campo de cada registro, tendo o desestruturado pelo separador :#.


              LIÇÃO ANTERIOR       PRÓXIMA LIÇÃO             
ÍNDICE HOMEPAGE