Einzelnen Beitrag anzeigen

Benutzerbild von paule32.jk
paule32.jk

Registriert seit: 24. Sep 2022
Ort: Planet Erde
356 Beiträge
 
Delphi 11 Alexandria
 
#1

Delphi 7 - Jedi VCL

  Alt 30. Jul 2023, 11:08
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
Frag doch einfach
  Mit Zitat antworten Zitat