Hallo,
in der JVCL gibt es doch unter anderem auch die Komponenten TJvRuntimeDesigner ...
Ich habe diesen (Form Controller) auch schon erfolgreich antesten können ...
Allerdings fehlt in der Dokumentation, wie man das selektierte Objekt (also den Rahmen
um das Objekt, mit dem man das Objekt verschieben und in seiner Größe ändern kann),
nachträglich auf eine bestimmte Größe ändert.
Ich platziere zum Beispiel (statisch) ein Sub-Classed TPaintBox auf den Designer, und
ich erhalte als Resultat ein Rechteck (Sizer-Frame), das ungefähr 80x80 Pixels groß ist.
Ich würde aber, nachdem ich es platziert habe, in der Höhe auf 20 Pixels ändern.
Leider schaffe ich das ohne Hilfe nicht.
Hier der kurze Quellcode:
Code:
unit PartA;
interface
uses
Windows, Classes, Graphics, ExtCtrls;
type
TPaintWire = class(TPaintBox)
private
FHeight: Integer;
procedure setHeight(AValue: Integer);
protected
procedure Paint; override;
public
constructor Create(AComponent: TComponent); override;
property
Height: Integer read FHeight write setHeight default 14;
end;
implementation
constructor TPaintWire.Create(AComponent: TComponent);
begin
inherited Create(AComponent);
self.Height := 20;
end;
procedure TPaintWire.setHeight(AValue: Integer);
begin
FHeight := AValue;
end;
procedure TPaintWire.Paint;
begin
inherited Paint;
Canvas.Pen.Color := clBlack;
Canvas.Pen.Width := 2;
Canvas.MoveTo(1,1);
Canvas.LineTo(1,Height-1);
Canvas.LineTo(Width,Height-1);
end;
end.
und hier der statische Code:
Code:
procedure TFrame24.JvDesignPanel1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
line1: TPaintWire;
begin
if ssCtrl in Shift then
begin
line1 := TPaintWire.Create(JvDesignPanel1);
line1.Parent := JvDesignPanel1;
line1.Width := 100;
line1.Height := 20;
line1.Top := Y;
line1.Left := X;
line1.Visible := true;
end;
end;
würde mich auf Hilfe freuen
Gruß, paule