[Back to WIN-OS2 SWAG index] [Back to Main SWAG index] [Original]

    {************************************************}
    {                                                }
    {   Turbo Pascal for Windows                     }
    {   Tips & Techniques Demo Program               }
    {   Copyright (c) 1991 by Borland International  }
    {                                                }
    {************************************************}

    program EditControl;

    uses WinTypes, WinProcs, WObjects, Strings;

    type
    TApp = object(TApplication)
      procedure InitMainWindow; virtual;
    end;

    PMyEdit = ^TMyEdit;
    TMyEdit = object(TEdit)
      procedure WMKeyDownProc(var Message: TMessage);
        virtual WM_KeyDown;
    end;

    PMyWindow = ^TMyWindow;
    TMyWindow = Object(TWindow)
      MyEdit: PMyEdit;
      constructor Init(AParent:PWindowsObject; ATitle: PChar);
      procedure SetUpWindow; virtual;
    end;

    procedure TApp.InitMainWindow;
    begin
      MainWindow := New(PMyWindow, Init(Nil, 'Edit Control'));
    end;

    { This procedure will look the return key and not allow the Default
      Window procedure to proccess them. }
    procedure TMyEdit.WMKeyDownProc(var Message: TMessage);
    var
      Focus: THandle;
    begin
      if Message.wParam = vk_Return then
      begin
        Focus := GetFocus;
        MessageBox(HWindow, 'The Return Key Was Pressed','Attention', mb_Ok);
        SetFocus(Focus);
      end
      else
        DefWndProc(Message);     {process message normally}
    end;

    constructor TMyWindow.Init(AParent:PWindowsObject; ATitle:PChar);
    const
      Text: PChar = 'Press Return';
    begin
      TWindow.Init(AParent, ATitle);
      MyEdit := New(PMyEdit, Init(@Self, 0, Text, 20, 30, 150, 30, 40, False));
    end;

    procedure TMyWindow.SetUpWindow;
    begin
      TWindow.SetUpWindow;
      SetFocus(MyEdit^.HWindow);
    end;

    var
      App: TApp;
    begin
      App.Init('Editing');
      App.Run;
      App.Done;
    end.

[Back to WIN-OS2 SWAG index] [Back to Main SWAG index] [Original]