[Back to OOP SWAG index]  [Back to Main SWAG index]  [Original]

{
> Some trouble-shooting With Turbo Vision, AGAIN!
> If i want to impelement this source code to
> show x in a Window, how do i do that!!

> For x:=1 to 100 do
>    WriteLn (x);

> That means that i want show x counting in the
> Window..........

Here a simple method you can use to get started. It has been tested, and it
does not do much, except show a counting dialog box.
}

Unit CountDlg;

Interface
Uses
  Objects, dialogs, views, drivers;
Type
  KDialog = Object(TDialog)
              Count : Word;
              ps    : PStaticText;
              Constructor Init(Var bounds:Trect;ATitle:TTitleStr);
              Procedure HandleEvent(Var Event:TEvent); virtual;
             end;
  PKDialog = ^KDialog;

Implementation

Function NumStr(n:Word):String;
Var
  S : String;
begin
  Str(n,s);
  NumStr := s;
end;

Constructor KDialog.Init(Var Bounds:TRect;ATitle:TTitleStr);
Var
  r : TRect;
begin
  inherited init(Bounds,ATitle);
  Count := 0;
  GetExtent(r);
  r.grow(-1,-2); r.b.y := r.a.y + 1;
  new(ps,init(r,'  Cyclycal counter := '+NumStr(Count)));
  insert(ps);
end;

Procedure KDialog.HandleEvent(Var Event:TEvent);
begin
  inc(Count);
  if count > 10000 then count := 0;
  DisposeStr(ps^.Text);
  ps^.Text := NewStr('  Cyclycal count := '+NumStr(Count));
  ps^.Draw;
  Inherited HandleEvent(Event);
end;

end.

{
And... the associated application to try it With ...
}

Program GenApp;
Uses
  Objects, App, Views, Dialogs, CountDlg;
Type
  GenericApp = Object(TApplication)
                 Procedure Run; Virtual;
               end;

Procedure GenericApp.Run;
Var
  r  : TRect;
begin
  GetExtent(R);
  R.Grow(-26,-10);
  ExecuteDialog(new(PKDialog,init(r,'Test Counter')),nil);
end;

Var MyApp : GenericApp;

begin
  MyApp.Init;
  MyApp.Run;
  MyApp.Done;
end.

[Back to OOP SWAG index]  [Back to Main SWAG index]  [Original]