Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Individuelle Positionen für Frames. (https://www.delphipraxis.net/154218-individuelle-positionen-fuer-frames.html)

Metallicwar 1. Sep 2010 14:47

Individuelle Positionen für Frames.
 
Neue Frage, neues Thema :)
Und zwar....
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  i:Integer;
  zaehler: Integer;
begin
    zaehler:= 0;
    TestForm:=TForm.Create(Self);
    TestForm.ClientHeight:=1200;
    TestForm.ClientWidth:=700;
for i := 0 to CheckListBox1.Items.Count-1 do
if CheckListBox1.Checked[i] then
  if zaehler <= 10 then
    begin
      TestFrame:=TFrame4.Create(Self);
      TestFrame.Name:=''+(CheckListBox1.Items[i]);
      TestFrame.Top:= Random(1200);
      TestFrame.Parent:=TestForm;
      zaehler:= zaehler + 1;
      TestFrame.Show;
    end
    else
    begin
      ShowMessage('Zähler ist 10');
    end;
    TestForm.Show;
end;
end.
Meine Frage:
Wie kriege ich es hin, dass die Frames individuelle Werte erhalten? Momentan hab ich einfach Zufallswerte zugewiesen.
Ziel: Die ersten 5 Frames sollen untereinander angeordnet werden(da mehr nicht auf ein DIN A4 Seite passen) die nächsten 5 daneben und wieder 5 untereinander.
Wie könnte ich das umsetzen, dass die Frames nicht kreuz und quer (Random) auf dem Formular verteilt sind? :)

stahli 1. Sep 2010 14:52

AW: Individuelle Positionen für Frames.
 
Benutze globale Variablen. Die kannst Du dort deklarieren, wo Dein Formular deklariert ist, oder Du definierst sie einfach IN Deinem Formular im public-Abschnitt.

Anzahl, X, Y: Integer;

Dann kannst Du Deine Werte immer anpassen, wenn Du einen neuen Frame definierst....

mkinzler 1. Sep 2010 14:56

AW: Individuelle Positionen für Frames.
 
Zitat:

Benutze globale Variablen.
Einspruch.

Besser im Formular

BTW: @Metallicwar: Bitte verwende für Delphi Quellcode, Delphi-Tags

Metallicwar 1. Sep 2010 15:06

AW: Individuelle Positionen für Frames.
 
Zitat:

Besser im Formular
Delphi-Quellcode:
  var
  Form1: TForm1;
  TestForm: TForm;
  TestFrame: TFrame4;
  Anzahl,x,y: Integer;
Die Variablen in diesem Abschnitt deklarieren?

Zitat:

Anzahl, X, Y: Integer;

Dann kannst Du Deine Werte immer anpassen, wenn Du einen neuen Frame definierst....
da muss ich mal schaun, da werden bestimmt Schwierigkeiten auftreten.
Am Besten gleich mal mit Beispiel.. :)
mfg

stahli 1. Sep 2010 15:28

AW: Individuelle Positionen für Frames.
 
Dein Beispiel "unter Form1" ist eine globale Variablendefinition.
Du kannst sie dann überall in der Unit verwenden. Aber im Sinne eine sinnvollen Daten-Struktur ist das nicht immer der beste Weg.

Du kannst die Variablen auch "im Formular" deklarieren:
Delphi-Quellcode:
TForm1 = class(TForm)
  private
    ...
  public
    Anzahl, X, Y: Integer;
    ...
  end;
Dann sind die Daten nur innerhalb der Formularmethoden verwendbar oder von außen über Form1.Anzahl... usw

Kleiner Tipp noch: Auchte von Anfang an auf eine übersichtliche Formatierung und Struktur Deines Qelltextes. Dies erleichtert es, den Überblick zu behalten und mögliche Fehler zu finden...

Metallicwar 1. Sep 2010 15:57

AW: Individuelle Positionen für Frames.
 
nach langem grübeln, muss ich mich leider geschlagen geben :pale:
Liegt warscheinlich an der nachlassenden Konzentration.
Was muss ich den deklarierten Variablen zuweisen, etc?
mfg

Metallicwar 1. Sep 2010 23:01

AW: Individuelle Positionen für Frames.
 
sooo, nach Feierabend, nachdem guten Essen hab ich`s noch selber hinbekommen.
TFrame.ClientWidht
Delphi-Quellcode:
x:=0;
y:=0;
TestFrame.ClientWidth:=200;
TestFrame.Top:= y + TestFrame.ClientWidth
y:=TestFrame.Top

Falls ich morgen nicht weiterkommen sollte, meld ich mich :)

stahli 1. Sep 2010 23:06

AW: Individuelle Positionen für Frames.
 
Ja klar, kein Problem!
Man muss sich immer Zeit und Ruhe nehmen und nix überstürzen. :wink:


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