Problem z wlasnym komponentem, pomocy! ;)

0

unit Linia;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, Graphics, Forms, Dialogs, StdCtrls;
type
TLinia = class(TGraphicControl)

private
{ Private declarations }
protected
{ Protected declarations }
public

constructor Create(AOwner : TComponent); override;
{ Public declarations }
published
property Width default 50;
property Height default 20;
end;

procedure Register;

implementation

constructor TLinia.Create (AOwner: TComponent);
begin
inherited Create(AOwner);
Width:= 50;
Height:= 20;
end;

procedure Register;
begin
RegisterComponents('Wodzu', [TLinia]);
end;

end.

Oto ten komponent, jak widzicie jest straszliwie skomplikowany;) Chcialbym teraz dodac do niego procedure TLinia.Paint tak aby na Canvasie komponentu cos sie narysowalo. Jednak kiedy to robie to dostaje ostrzezenie od kompilatora i nic sie nie rysuje;(

Czy ktos moze mi pomoc?

Ja chce po prostu narysowac na Canvasie komponentu jedna glupia linie... hmm... --take care,

Wodzu

0

do protected dodaj
procedure Paint; override;

procedure TLinia.Paint;
begin
with canvas do
begin
//jakies tam rysowanko
end;
end;--sys:&gt logout....

0

No wlasnie, nie wiedzialem ze mam overraidowac Painta...dzieki:)

Sheitarze, zajrzyj tutaj jeszcze pozniej bo czuje ze bede Cie jeszcze potrzebował :D --take care,

Wodzu

0

A zadaniem tego komponentu ma byc rysowanie linii po jego Canvasie, jednakze
chcialbym moc ustalac polozenie linii zarowno w Object Inspectorze jak i w
Runtime. Czy mozesz mi dac wskazowki jak mam to zrobic?

hmm... --take care,

Wodzu

0

Tak to sie robi Wodzu ;)

unit Linia;

interface

uses
Windows, Messages, SysUtils, Classes, Controls, Graphics, Forms, Dialogs, StdCtrls;
type
TLinia = class(TGraphicControl)

private
{ Private declarations }
FPoczatekX,FPoczatekY: Integer;
FKoniecX, FKoniecY: Integer;
procedure SetPoczatekX(Value: Integer);
procedure SetPoczatekY(Value: Integer);
procedure SetKoniecX(Value: Integer);
procedure SetKoniecY(Value: Integer);
protected
{ Protected declarations }
procedure Paint; override;
public

constructor Create(AOwner : TComponent); override;
{ Public declarations }
published
property Width default 50;
property Height default 20;
property PoczatekX: Integer read FPoczatekX write SetPoczatekX;
property PoczatekY: Integer read FPoczatekY write SetPoczatekY;
property KoniecX: Integer read FKoniecX write SetKoniecX;
property KoniecY: Integer read FKoniecY write SetKoniecY;
end;

procedure Register;

implementation

constructor TLinia.Create (AOwner: TComponent);
begin
inherited Create(AOwner);
Width:= 50;
Height:= 20;
KoniecX:=50;
KoniecY:=20;
end;

procedure TLinia.Paint;
begin
Canvas.MoveTo(FPoczatekX, FPoczatekY);
Canvas.LineTo(FKoniecX, FKoniecY);
end;

procedure TLinia.SetPoczatekX(Value: Integer);
begin
if (Value&lt&gtFPoczatekX) then
begin
FPoczatekX := Value;
Invalidate;
end;
end;

procedure TLinia.SetKoniecX(Value: Integer);
begin
if (Value&lt&gt FKoniecX) then
begin
FKoniecX := Value;
Invalidate;
end;
end;

procedure TLinia.SetKoniecY(Value: Integer);
begin
if (Value&lt&gtFKoniecY) then
begin
FKoniecY := Value;
Invalidate;
end;
end;

procedure TLinia.SetPoczatekY(Value: Integer);
begin
if (Value&lt&gtFPoczatekY) then
begin
FPoczatekY := Value;
Invalidate;
end;
end;

procedure Register;
begin
RegisterComponents('Wodzu', [TLinia]);
end;

end.--take care,

Wodzu

1 użytkowników online, w tym zalogowanych: 0, gości: 1