{ From: BRIAN PAPE Subj: Picklist in TV } {************************************************} { } { Turbo Vision 2.0 Demo } { Copyright (c) 1992 by Borland International } { } {************************************************} program PickList; uses Objects, Views, Dialogs, App, Drivers,editors; const cmPickClicked = 1001; type PCityColl = ^TCityColl; TCityColl = object(TStringCollection) constructor Init; end; PPickLine = ^TPickLine; TPickLine = object(TMemo) procedure HandleEvent(var Event: TEvent); virtual; end; PPickWindow = ^TPickWindow; TPickWindow = object(TDialog) constructor Init; end; TPickApp = object(TApplication) PickWindow: PPickWindow; constructor Init; end; VAR Lijst:PCityColl; GControl: PView; S : String[30]; constructor TCityColl.Init; begin inherited Init(10, 10); Insert(NewStr('Scotts Valley')); Insert(NewStr('Sydney')); Insert(NewStr('Copenhagen')); Insert(NewStr('London')); Insert(NewStr('Paris')); Insert(NewStr('Munich')); Insert(NewStr('Milan')); Insert(NewStr('Tokyo')); Insert(NewStr('Stockholm')); end; procedure TPickLine.HandleEvent(var Event: TEvent); VAR Count:Integer; begin inherited HandleEvent(Event); if (Event.What = evBroadcast) and (Event.command=cmListItemSelected) then begin S:=PListBox(Event.InfoPtr)^.GetText(PListBox(Event.InfoPtr)^.Focused, high(s)); with PListBox(Event.InfoPtr)^ do begin s := s + #13; InsertText(@s[1],length(s),false); end; DrawView; ClearEvent(Event); end; end; constructor TPickWindow.Init; var R: TRect; Control: PView; ScrollBar: PScrollBar; begin R.Assign(0, 0, 40, 15); inherited Init(R, 'Pick List Window'); Options := Options or ofCentered; R.Assign(5, 2, 35, 4); Control := New(Ppickline, Init(R,NIL,NIL,NIL, 130)); Control^.EventMask := Control^.EventMask or evBroadcast; Insert(Control); R.Assign(4, 1, 13, 2); Insert(New(PLabel, Init(R, 'Picked:', Control))); R.Assign(34, 5, 35, 11); New(ScrollBar, Init(R)); Insert(ScrollBar); R.Assign(5, 5, 34, 11); gControl := New(PListBox, Init(R, 1, ScrollBar)); Insert(gControl); PListBox(gControl)^.NewList(Lijst); R.Assign(4, 4, 12, 5); Insert(New(PLabel, Init(R, 'Items:', Control))); R.Assign(15, 12, 25, 14); Insert(New(PButton, Init(R, '~Q~uit', cmQuit, bfDefault))); end; constructor TPickApp.Init; begin inherited Init; Lijst:=New(PCityColl,Init); PickWindow := New(PPickWindow, Init); InsertWindow(PickWindow); end; var PickApp: TPickApp; begin PickApp.Init; PickApp.Run; PickApp.Done; end.