Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Objekte in Spalten und Reihen anordnen (https://www.delphipraxis.net/82941-objekte-spalten-und-reihen-anordnen.html)

Luckie 22. Dez 2006 14:16


Objekte in Spalten und Reihen anordnen
 
In der letzten Arbeitsstunde vor Weihnachten habe ich irgendwie einen Blackout.

Ich will sechs Objekte in drei Reihen mit zwei Objekten in einer Spalte anordnen:

Delphi-Quellcode:
procedure TForm2.tbbTemplateClick(Sender: TObject);
var
  i: Integer;
begin
  for i := 0 to 5 do
  begin
    ImageEnVect1.LayersAdd;
    ImageEnVect1.Layers[i].VisibleBox := True;
    ImageEnVect1.Layers[ImageEnVect1.LayersCurrent].Width := Trunc(DEFAULTWIDTH * 0.80);
    ImageEnVect1.Layers[ImageEnVect1.LayersCurrent].Height := Trunc(DEFAULTHEIGHT * 0.80);
    ImageEnVect1.Layers[ImageEnVect1.LayersCurrent].PosX := DEFAULTWIDTH * i + 50;
    if i mod 2 = 0 then
      ImageEnVect1.Layers[ImageEnVect1.LayersCurrent].PosY := DEFAULTHEIGHT * i + 25
    else
      ImageEnVect1.Layers[ImageEnVect1.LayersCurrent].PosY := 80;
    ImageEnVect1.IO.LoadFromFileJpeg(ExtractFilePath(ParamStr(0)) + 'empty.jpg');
    ImageEnVect1.Update;
  end;
end;
Das bringt allerdings nicht das gewünschte Ergebnis. :gruebel:

Wie gesagt, ich habe einen absoluten Blackout. :?

ste_ett 22. Dez 2006 14:30

Re: Objekte in Spalten und Reihen anordnen
 
PosX wird unabhänig vom "mod" immer gleich gesetzt, du passt nur die Y-Koordinate an. :)

Luckie 22. Dez 2006 14:33

Re: Objekte in Spalten und Reihen anordnen
 
Ich stehe gerade ziemlich auf dem Schlauch. :oops:

ste_ett 22. Dez 2006 14:44

Re: Objekte in Spalten und Reihen anordnen
 
Wie willst du die Elemente ausrichten?
Die ersten drei nebeneinander und die letzten drei darunter, oder immer zwei untereinander?

marabu 22. Dez 2006 14:45

Re: Objekte in Spalten und Reihen anordnen
 
Hallo Michael,

bei mir würde es so oder ähnlich aussehen:

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
const
  HORZ_DIST = 50;
  VERT_DIST = 25;
  HORZ_OFFS = 0;
  VERT_OFFS = 0;
var
  i, iLayer: Integer;
  fn: TFileName;
begin
  fn := ExtractFilePath(ParamStr(0)) + 'empty.jpg';
  with ieVect do
    for i := 0 to 5 do
    begin
      iLayer := LayersAdd;
      CurrentLayer.VisibleBox := True;
      CurrentLayer.Width := Trunc(DEFAULTWIDTH * 0.80);
      CurrentLayer.Height := Trunc(DEFAULTHEIGHT * 0.80);
      CurrentLayer.PosX := (DEFAULTWIDTH + HORZ_DIST) * (i div 3) + HORZ_OFFS;
      CurrentLayer.PosY := (DEFAULTHEIGHT + VERT_DIST) * (i mod 3) + VERT_OFFS;
      IO.LoadFromFileJpeg(fn);
      Update;
    end;
end;
Konstanten müsstest du anpassen.

Freundliche Grüße

Luckie 22. Dez 2006 14:56

Re: Objekte in Spalten und Reihen anordnen
 
Ja, genau das war es. So, jetzt ist aber Feierabend. :P


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:30 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