Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi 7 - Jedi VCL (https://www.delphipraxis.net/213438-delphi-7-jedi-vcl.html)

paule32.jk 30. Jul 2023 10:08

Delphi 7 - Jedi VCL
 
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

paule32.jk 30. Jul 2023 14:30

AW: Delphi 7 - Jedi VCL
 
sodele, Problem ist gelöst !

ich hatte einfach das "Resize" der PaintBox Klassen-Objekts vergessen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz