Whoops. Google Groups "ate" some hyphens on a few lines.
You can fix them yourself, or head over to www.emubrowser.com
for the fixed code.


On Oct 8, 11:34 pm, Dos-Man 64 <chairs...@mail.com> wrote:
> EBIDX is a shape-drawing application that uses the keyboard
> exclusively. This is useful for drawing elipses, diamonds, rectangles,
> circles, etc.
>
> The (astonishingly) small size of this program means that I don't have
> to bother posting the executable.  I just post the instructions and
> the source code.  Others are encouraged to upgrade the project.
>
> Usage
>
> Creating shapes
> p create ellipses
> z create diamonds
> + create rectangles
> r create rounded rectangles
> * create circles
>
> Moving shapes
> Using the 19
> keys on the numeric keypad. Num Lock must be on.
>
> Resizing shapes
> w make shape wider
> n make shape more narrow
> t make shape taller
> s make shape shorter
>
> Misc
> d delete a shape
> i change line width
> c change color of shape
> & change from solid to clear and vice versa
>
> Notes
> n and w resize circles. It shouldn't be necessary to use t and/or s.
> Pressing i changes the value of the line width for shapes. Possible
> values range from 1 to 16. Changes to line width are silent and
> do not take effect on the shape you are editing (due to a bug.) The
> next shape you create will use the new line width. Setting line width
> to 17 will reset the linewidth to 1 again. All commands must be in
> lowercase to be recognized. Typing in S instead of s won't produce
> the desired outcome.
>
> About
> The author is Phil Sassano. The email for questions is
> kingof...@hotmail.com. EBIDX is a Free Pascal app.
> It requires only a window with a color dialog selection
> component on it. The source code is only (roughly 300)
> lines of code, but there is significant shapedrawing
> power
> stuffed in there :)
>
> unit Unit1;
> {$mode objfpc}{$H+}
> interface
> uses
> Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
> ExtCtrls,
> EditBtn;
> type
> { TForm1 }
> TForm1 = class(TForm)
> ColorDialog1: TColorDialog;
> procedure FormCreate(Sender: TObject);
> procedure FormKeyPress(Sender: TObject; var Key: Char);
> procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
> Shift: TShiftState; X: LongInt; Y: LongInt);
> private
> { private declarations }
> public
> { public declarations }
> end;
> var
> Form1: TForm1;
> implementation
> var
> linewidth: integer;
> linetype: integer;
> solidstyle: boolean;
> shape1: Tshape;
> { TForm1 }
> procedure TForm1.FormCreate(Sender: TObject);
> begin
> // all this project requires is a form with a color selection
> // dialog control on it.
> form1.Canvas.AutoRedraw := true;
> solidstyle := true;
> linetype := 0;
> linewidth := 1;
> end;
> procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
> begin
> if key = '&' then
> begin
> solidstyle := not solidstyle;
> if linetype = 0 then exit;
> if solidstyle = true then
> shape1.brush.style := bssolid
> else
> shape1.brush.style := bsclear;
> exit;
> end;
> if key = 'i' then
> begin
> linewidth := linewidth + 1;
> if linewidth > 16 then linewidth := 1;
> exit;
> end;
> if key = 'p' then
> begin
> shape1 := Tshape.Create(self);
> shape1.Brush.Color := colordialog1.Color;
> shape1.Pen.Color := colordialog1.color;
> linetype := 5;
> shape1.pen.width := linewidth;
> shape1.pen.color := shape1.Brush.Color;
> shape1.shape := stEllipse;
> shape1.parent := self;
> shape1.Visible := true;
> end;
> if key='z' then
> begin
> shape1 := Tshape.Create(self);
> shape1.Brush.Color := colordialog1.Color;
> shape1.Pen.Color := colordialog1.color;
> linetype := 5;
> shape1.pen.color := shape1.Brush.Color;
> shape1.pen.width := linewidth;
> shape1.shape := stDiamond;
> shape1.Refresh;
> shape1.parent := self;
> shape1.Visible := true;
> end;
> if key='r' then
> begin
> shape1 := Tshape.Create(self);
> shape1.Brush.Color := colordialog1.Color;
> shape1.Pen.Color := colordialog1.color;
> linetype := 5;
> shape1.pen.color := shape1.Brush.Color;
> shape1.pen.width := linewidth;
> shape1.shape := stRoundRect;
> shape1.parent := self;
> shape1.Visible := true;
> end;
> if key='*' then
> begin
> shape1 := Tshape.Create(self);
> shape1.Brush.Color := colordialog1.Color;
> shape1.Pen.Color := colordialog1.color;
> linetype := 2;
> shape1.pen.color := shape1.Brush.Color;
> shape1.pen.width := linewidth;
> shape1.shape := stCircle;
> shape1.parent := self;
> shape1.Visible := true;
> end;
> if key='+' then
> begin
> shape1 := Tshape.Create(self);
> shape1.Brush.Color := colordialog1.Color;
> shape1.Pen.Color := colordialog1.color;
> linetype := 4;
> shape1.pen.color := shape1.Brush.Color;
> shape1.pen.width := linewidth;
> shape1.shape := stRectangle;
> shape1.parent := self;
> shape1.Visible := true;
> exit;
> end;
> if linetype = 0 then exit;
> if solidstyle = true then
> shape1.brush.Style := bsSolid
> else
> shape1.brush.style := bsClear;
> if linetype = 4 then
> begin
> if key='w' then
> begin
> shape1.height := shape1.height + 1;
> shape1.width := shape1.width + 1;
> exit;
> end;
> if key='n' then
> begin
> shape1.height := shape1.height 1;
> shape1.width := shape1.width 1;
> exit;
> end;
> end;
> if key = 'c' then
> begin
> if colordialog1.Execute = true then
> begin
> shape1.Brush.Color := colordialog1.Color;
> shape1.Pen.Color := colordialog1.color;
> end;
> end;
> if key = 'w' then
> shape1.width := shape1.width + 1;
> if key = 'n' then
> shape1.width := shape1.width 1;
> if key = 't' then
> shape1.height := shape1.height + 1;
> if key = 's' then
> shape1.height := shape1.height 1;
> if key = 'd' then
> begin
> shape1.free;
> linetype := 0;
> exit;
> end;
> if key = '1' then
> begin
> shape1.top := shape1.top + 1;
> shape1.Left := shape1.left 1;
> exit;
> end;
> if key = '3' then
> begin
> shape1.top := shape1.top + 1;
> shape1.Left := shape1.left + 1;
> exit;
> end;
> if key = '7' then
> begin
> shape1.top := shape1.top 1;
> shape1.Left := shape1.left 1;
> exit;
> end;
> if key = '9' then
> begin
> shape1.top := shape1.top 1;
> shape1.Left := shape1.left + 1;
> exit;
> end;
> if key = '8' then shape1.top := shape1.top 1;
> if key = '2' then shape1.top := shape1.top + 1;
> if key = '6' then shape1.left := shape1.left + 1;
> if key = '4' then shape1.left := shape1.left 1;
> shape1.pen.width := linewidth;
> shape1.refresh;
> end;
> procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
> Shift: TShiftState; X: LongInt; Y: LongInt);
> begin
> if linetype = 0 then exit;
> shape1.left := x;
> shape1.top := y;
> end;
> initialization
> {$I unit1.lrs}
> end.

-- 
You received this message because you are subscribed to the Linux Users Group.
To post a message, send email to linuxusersgroup@googlegroups.com
To unsubscribe, send email to linuxusersgroup-unsubscr...@googlegroups.com
For more options, visit our group at 
http://groups.google.com/group/linuxusersgroup

Reply via email to