Technical Information Database TI301D.txt Use Collections and ListBoxes. Category :OWL Platform :All Product :Pascal All Description: {$X+} (* The Resource file will only have one item in it. A dialog with a listbox and an OK button. The listbox ID should be 101 and the OK Button ID should be 1. The name of the dialog is NewDialog. *) program Initialization_ListBox_with_Collection; {$R CollDlg.res} uses WinTypes, winprocs, wobjectb, strings, BWCC; var st1,st2,st3: PChar; const buttonid = 100; listid = 101; type Plbtrans =^Tlbtrans; Tlbtrans = record Strings: PStrCollection; Selection: integer; end; type typePMyApp = ^TMyApp; TMyApp = object(TApplication) procedure InitMainWindow; virtual; end; PMyMainWindow = ^TMyMainWindow; TMyMainWindow = object(TWindow) But: PButton; Constructor Init(AName: PChar); Destructor Done; virtual; procedure SetUpWindow; virtual; procedure TestButton(var Msg:TMessage); virtual id_First + ButtonId; end; var Buf: TlbTrans; procedure TMyApp.InitMainWindow; begin MainWindow:= New(PMyMainWindow, init('Main Window')); end; constructor TMyMainWindow.Init(AName: PChar); begin TWIndow.Init(nil, AName); but:= New(PButton,init( self,ButtonId,'&Test',10,10, 50,50,false)); end; Destructor TMyMainWindow.Done; { dispose of collection } begin TWindow.Done; Dispose(But); FreeMem(St2,8); FreeMem(St3,8); end; procedure TMyMainWindow.SetUpWindow; begin TWindow.SetUpWindow; end; procedure TMyMainWindow.TestButton(var Msg: TMessage); { Setup DialogBox with a ListBox } var TheDialog: PDialog; LB: PListBox; S: PChar; begin TheDialog:= new(PDialog,init( Self,'NewDialog')); New(LB,InitResource(TheDialog,101)); { create collection } Buf.Strings:=New(PStrCollection, init(10,10)); GetMem(St1,8); StrCopy(St1,'Hello'); Buf.Strings^.Insert(St1); GetMem(st2,8); StrCopy(St2,'Goodbye'); Buf.Strings^.Insert(St2); GetMem(st3,8); StrCopy(St3,'Hey'); Buf.Strings^.Insert(St3); Buf.Selection:=1; TheDialog^.TransferBuffer:= Buf; Application^.ExecDialog(TheDialog); GetMem(S, 8); S:= buf.Strings^.at(Buf.Selection); MessageBox(hWindow,S,'Data from ListBox',mb_Ok); FreeMem(S, 8); end; var MyApp: TMyApp; begin MyApp.Init('MyApp'); MyApp.Run; MyApp.Done; end. Reference: 7/16/98 4:33:41 PM
Last Modified: 01-SEP-99