123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- {
- Copyright (c) 1997-2008 by the Daniel Mantione
-
- Debug expression evaluator dialog ?
-
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- unit fpevalw;
- {****************************************************************************}
- interface
- {****************************************************************************}
- uses fpdebug,dialogs,views,objects,fpconst,drivers;
- type Pevaluate_dialog=^Tevaluate_dialog;
- Tevaluate_dialog=object(Tdialog)
- watch:Pwatch;
- expr_input,expr_output:Pinputline;
- constructor init(var bounds:Trect);
- procedure evaluate;
- procedure handleevent(var event:Tevent);virtual;
- destructor done;
- end;
- {****************************************************************************}
- implementation
- {****************************************************************************}
- constructor Tevaluate_dialog.init(var bounds:Trect);
- var r:Trect;
- l:Plabel;
- b:Pbutton;
- begin
- inherited init(bounds,'Evaluate expression');
- options:=options or ofcentered;
- {watch is auto initialized to nil.}
- r.assign(2,3,size.x-20,4);
- new(expr_input,init(r,255));
- insert(expr_input);
- r.assign(size.x-20,3,size.x-18,4);
- insert(new(Phistory,init(r,expr_input,hidEvaluate)));
- r.assign(2,2,size.x-20,3);
- new(l,init(r,'E~x~pression:',expr_input));
- insert(l);
- r.assign(2,6,size.x-20,7);
- new(expr_output,init(r,255));
- insert(expr_output);
- r.assign(2,5,size.x-20,6);
- new(l,init(r,'~R~esult:',expr_output));
- insert(l);
- r.assign(size.x-14,3,size.x-3,5);
- new(b,init(r,'~E~valuate',cmEvaluate,bfDefault));
- insert(b);
- //r.assign(size.x-14,6,size.x-3,8);
- //new(b,init(r,'Help',cmHelp,bfNormal));
- //insert(b);
- expr_input^.select;
- end;
- procedure Tevaluate_dialog.evaluate;
- begin
- if watch<>nil then
- dispose(watch,done);
- new(watch,init(expr_input^.data^));
- expr_output^.data^:=strpas(watch^.current_value);
- expr_output^.drawview;
- end;
- procedure Tevaluate_dialog.handleevent(var event:Tevent);
- begin
- inherited handleevent(event);
- if event.what=evCommand then
- case event.command of
- cmEvaluate:
- evaluate;
- end;
- end;
- destructor Tevaluate_dialog.done;
- begin
- if watch<>nil then
- dispose(watch,done);
- end;
- end.
|