Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Positionierung von Objekten / Grid? (https://www.delphipraxis.net/129148-positionierung-von-objekten-grid.html)

Cosamia 13. Feb 2009 12:27


Positionierung von Objekten / Grid?
 
Hallo,

ich bin gerade am Planen meines neuen Projekts, welches eine dynamische Anzahl von Edit Feldern und SpinButtons benötigt, welche auf dem Formular in strukturierter Form dargestellt werden sollen. Gewisse Edits müssen aber unabhängig von der Anzahl der gesamten Edit Feldern immer untereinänder oder nebeneinander stehen.

Jemand ein Tip wie soetwas zu lösen sein mag?


Alles in einem Grid positionieren?

Danke

uligerhardt 13. Feb 2009 13:25

Re: Positionierung von Objekten / Grid?
 
Du hast dein Anliegen etwas vage formuliert, so dass man nichts Genaues dazu sagen kann. Aber beim Stichwort "dynamische Anzahl" kommt mir der Gedanke, die Controls nicht per Formdesigner, sondern im Quellcode zu erzeugen. Oder zumindest das Layout im Quellcode zu erledigen.

Uli.

Cosamia 13. Feb 2009 13:27

Re: Positionierung von Objekten / Grid?
 
Sorry, für die ungenauen Angaben.

Die Edit´s und Button´s werden über eine ObjectList per Laufzeit erzeugt.

Mit fehlt die Idee, wie ich die erzeugten Objekte in einer strukturierten Form anzeigen lassen kann.

himitsu 13. Feb 2009 13:28

Re: Positionierung von Objekten / Grid?
 
Also du meinst dieses in diesen GidPanles oder so, automatisch ausrichten lassen?

Wenn etwas zusammengehört, könntest du diese je in einem TPanel (ohne Ramen) zusammenfassen.

Cosamia 13. Feb 2009 13:29

Re: Positionierung von Objekten / Grid?
 
Zitat:

Zitat von himitsu
Also du meinst dieses in diesen GidPanles oder so, automatisch ausrichten lassen?

Wenn etwas zusammengehört, könntest du diese je in einem TPanel (ohne Ramen) zusammenfassen.

Ich denke eher darüber nach es in Row´s und Col´s zu definieren.

uligerhardt 13. Feb 2009 13:38

Re: Positionierung von Objekten / Grid?
 
Zitat:

Zitat von Cosamia
Ich denke eher darüber nach es in Row´s und Col´s zu definieren.

Sowas?
Delphi-Quellcode:
unit EditRaster;

interface

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls;

const
  cEditCount = 13;
  cRowCount = 3;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    FEdits: array[0..Pred(cEditCount)] of TEdit;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
  x, y: Integer;
  ed: TEdit;
begin
  x := 8;
  y := 8;
  for i := 0 to Pred(cEditCount) do
  begin
    ed := TEdit.Create(Self);
    ed.Name := 'Edit' + IntToStr(i);
    ed.Parent := Self;
    ed.SetBounds(x, y, ed.Width, ed.Height);
    if Succ(i) mod cRowCount = 0 then
    begin
      x := 8;
      Inc(y, ed.Height + 8);
    end
    else
      Inc(x, ed.Width + 8);
    FEdits[i] := ed;
  end;
end;

end.

Cosamia 13. Feb 2009 13:49

Re: Positionierung von Objekten / Grid?
 
Zitat:

Zitat von uligerhardt
Zitat:

Zitat von Cosamia
Ich denke eher darüber nach es in Row´s und Col´s zu definieren.

Sowas?
Delphi-Quellcode:
unit EditRaster;

interface

uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Forms,
  Dialogs,
  StdCtrls;

const
  cEditCount = 13;
  cRowCount = 3;
type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    FEdits: array[0..Pred(cEditCount)] of TEdit;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
  x, y: Integer;
  ed: TEdit;
begin
  x := 8;
  y := 8;
  for i := 0 to Pred(cEditCount) do
  begin
    ed := TEdit.Create(Self);
    ed.Name := 'Edit' + IntToStr(i);
    ed.Parent := Self;
    ed.SetBounds(x, y, ed.Width, ed.Height);
    if Succ(i) mod cRowCount = 0 then
    begin
      x := 8;
      Inc(y, ed.Height + 8);
    end
    else
      Inc(x, ed.Width + 8);
    FEdits[i] := ed;
  end;
end;

end.

So ähnlich, nur das ich z.B. sicher Stellen muss, dass egal wieviel Row´s ich habe, EDIT2 und EDIT7 untereinander stehen.

Cosamia 13. Feb 2009 15:01

Re: Positionierung von Objekten / Grid?
 
ich habe es jetzt wie folgt gelöst:

Delphi-Quellcode:
NewPanel := TJvPanel.Create(BOT_BEST_PANEL);
      with NewPanel do begin
        BoundsRect := StringGrid1.CellRect(mydata[n].row,mydata[n].col);
DANKE. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:13 Uhr.

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