Okey ik ben gewoon wat in delphi 6 aan het kloten, alleen kom ik nu niet verder met mouse events(procedures).
Hij leest totaal nix in, maar hij geeft ook geen compile/run fouten.
source:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TTForm1 = class(TForm)
StatusBar1: TStatusBar;
procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
TForm1: TTForm1;
StartX, StartY: Integer;{Declare in interface section of forms unit}
implementation
{$R *.dfm}
procedure TTForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StartX := X;
StartY := Y;
end;
procedure TTForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
TForm1.Canvas.Rectangle(StartX, StartY, X, Y);
StatusBar1.Panels[0].Text := '';
StatusBar1.Panels[1].Text := '';
StatusBar1.Panels[2].Text := '';
StatusBar1.Panels[3].Text := '';
end;
procedure TTForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then { make sure button is down }
begin
if Y > StartY then
begin
StatusBar1.Panels[0].Text := 'Top: ' + IntToStr(StartY);
StatusBar1.Panels[2].Text := 'Bottom: ' + IntToStr(Y);
end
else
begin
StatusBar1.Panels[0].Text := 'Top: ' + IntToStr(Y);
StatusBar1.Panels[2].Text := 'Bottom: ' + IntToStr(StartY);
end;
if X > StartX then
begin
StatusBar1.Panels[1].Text := 'Left: ' + IntToStr(StartX);
StatusBar1.Panels[3].Text := 'Right: ' + IntToStr(X);
end
else
begin
StatusBar1.Panels[1].Text := 'Left: ' + IntToStr(X);
StatusBar1.Panels[3].Text := 'Right: ' + IntToStr(StartX);
end;
end;
end;
end.
Hij leest totaal nix in, maar hij geeft ook geen compile/run fouten.
source:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls;
type
TTForm1 = class(TForm)
StatusBar1: TStatusBar;
procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
TForm1: TTForm1;
StartX, StartY: Integer;{Declare in interface section of forms unit}
implementation
{$R *.dfm}
procedure TTForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
StartX := X;
StartY := Y;
end;
procedure TTForm1.FormMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
TForm1.Canvas.Rectangle(StartX, StartY, X, Y);
StatusBar1.Panels[0].Text := '';
StatusBar1.Panels[1].Text := '';
StatusBar1.Panels[2].Text := '';
StatusBar1.Panels[3].Text := '';
end;
procedure TTForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if ssLeft in Shift then { make sure button is down }
begin
if Y > StartY then
begin
StatusBar1.Panels[0].Text := 'Top: ' + IntToStr(StartY);
StatusBar1.Panels[2].Text := 'Bottom: ' + IntToStr(Y);
end
else
begin
StatusBar1.Panels[0].Text := 'Top: ' + IntToStr(Y);
StatusBar1.Panels[2].Text := 'Bottom: ' + IntToStr(StartY);
end;
if X > StartX then
begin
StatusBar1.Panels[1].Text := 'Left: ' + IntToStr(StartX);
StatusBar1.Panels[3].Text := 'Right: ' + IntToStr(X);
end
else
begin
StatusBar1.Panels[1].Text := 'Left: ' + IntToStr(X);
StatusBar1.Panels[3].Text := 'Right: ' + IntToStr(StartX);
end;
end;
end;
end.