Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Button nebeneinander und untereinander addieren (https://www.delphipraxis.net/203502-button-nebeneinander-und-untereinander-addieren.html)

venice2 24. Feb 2020 20:57

Button nebeneinander und untereinander addieren
 
Ich möchte Button nebeneinander und untereinander zur Laufzeit addieren

Mein Array 0..19 (20 Button)
Die Berechnung
Delphi-Quellcode:
   
    if (A < 5) then // weniger wie 5 = 5 Button
    begin
      inc(x, 125) // x Position um 125 inkrementieren
    end else
    begin
      if A mod 5 = 0 then // 5 Button erreicht
      begin
        inc(y, 125); // y Position verändern
        x := 15; // Reset x
      end else
      inc(x, 125); // x um 125 inkrementieren
    end;
Leider bekomme ich in der ersten Reihe immer 6 anstelle von 5 Button.
Und in der letzen 4.
Wo ist mein Denkfehler?

Luckie 24. Feb 2020 21:15

AW: Button nebeneinander und untereinander addieren
 
Zeig mal den ganzen Code und nicht nur ein Bruchstück. Da gehört doch bestimmt noch eine Schleife zu. Welche Werte kann A annehmen?

venice2 24. Feb 2020 21:18

AW: Button nebeneinander und untereinander addieren
 
Zitat:

Zitat von Luckie (Beitrag 1458233)
Zeig mal den ganzen Code und nicht nur ein Bruchstück. Da gehört doch bestimmt noch eine Schleife zu. Welche Werte kann A annehmen?

Ich dachte das wäre ersichtlich :)
Delphi-Quellcode:
  For A = 0 to 19 do

DieDolly 24. Feb 2020 21:23

AW: Button nebeneinander und untereinander addieren
 
Wenn man es ganz genau nimmt, dann ist dein Code mit diesem Schleifenkopf nicht kompilierbar.
Abgesehen davon, habe ich das Problem nicht verstanden.

venice2 24. Feb 2020 21:26

AW: Button nebeneinander und untereinander addieren
 
Zitat:

Zitat von DieDolly (Beitrag 1458235)
Wenn man es ganz genau nimmt, dann ist dein Code mit diesem Schleifenkopf nicht kompilierbar.
Abgesehen davon, habe ich das Problem nicht verstanden.

Möchtest du dich jetzt wegen meinem Schreibfehler bezüglich den Doppelpunkt aufregen?

Zitat:

Abgesehen davon, habe ich das Problem nicht verstanden.
Bitte was ist da unverständlich?

Luckie 24. Feb 2020 21:31

AW: Button nebeneinander und untereinander addieren
 
Ersichtlich vielleicht. Aber vielleicht steckt der Fehler ja genau in dem Teil des Codes, den du nicht zeigst? Also für die Zukunft immer den ganzen Code posten.

hoika 24. Feb 2020 21:38

AW: Button nebeneinander und untereinander addieren
 
Hallo,
Zitat:

Möchtest du dich jetzt wegen meinem Schreibfehler bezüglich den Doppelpunkt aufregen?
Möchtest Du Hilfe?
Das hier ist ein kostenloses Forum von Delphi-Enthusiasten,
die anderen in Ihrer Freizeit helfen ...

Zitat:

Abgesehen davon, habe ich das Problem nicht verstanden.
Ich habe das auch nicht verstanden.
Buttons kann man nicht addieren...

Debug das doch mal durch (F5,F7,F8).

venice2 24. Feb 2020 22:31

AW: Button nebeneinander und untereinander addieren
 
Zitat:

Buttons kann man nicht addieren...
Ich kann.

Ich addiere ihn indem ich ihn hinzufüge.
1 + 1 Buttons = 2 Buttons also habe ich eine Addition ausgeführt und keine Subtraktion.
Aber jetzt wird es langsam albern.

Hat sich erledigt!

Dalai 24. Feb 2020 22:50

AW: Button nebeneinander und untereinander addieren
 
Zitat:

Zitat von hoika (Beitrag 1458238)
Debug das doch mal durch (F5,F7,F8).

In der Tat. Meine Vermutung: y muss genau wie x zur richtigen Zeit zurückgesetzt werden.

Übrigens ist das zweimalige Auftauchen des
Delphi-Quellcode:
Inc(x, 125);
in der if-Bedingung ziemlich sinnfrei.

Grüße
Dalai

Luckie 24. Feb 2020 23:15

AW: Button nebeneinander und untereinander addieren
 
Es ist richtig, dass eine Schaltfläche und noch eine Schaltfläche, zwei Schaltflächen ergeben. Nur was soll das auf der Programmoberfläche sein? Ist es nicht eher so, dass du die 20 Schaltflächen in 5 Spalten a 4 Reihen anordnen willst? Zumindest impliziert das dein Code.

himitsu 25. Feb 2020 00:15

AW: Button nebeneinander und untereinander addieren
 
Nur mal so, wieso denkt niemand daran TGridPanel (VCL), bzw. TGridLayout (FMX) zu verwenden?

https://www.youtube.com/watch?v=w2HIsIpjcjE
https://www.youtube.com/watch?v=0j4vcyhv7Oo

Ansonsten darf man das Problem auch gern mathematisch lösen.
Delphi-Quellcode:
X := OffsetX + AbstandX * (Index0 mod Spalten);
Y := OffsetY + AbstandX * (Index0 div Spalten);

// also
X := 15 + 125 * (A mod 5);
Y := DerGeheimeInitialwertVonY + 125 * (A div 5);

Rollo62 25. Feb 2020 08:59

AW: Button nebeneinander und untereinander addieren
 
@himitsu
Vielleicht weil die auch nicht 100% zu Ende gedacht sind :stupid:

Luckie 25. Feb 2020 09:04

AW: Button nebeneinander und untereinander addieren
 
Ich denke, das Thema ist durch. Er hat wohl eine Lösung gefunden und ist wohl nicht mehr an Alternativen interessiert.

venice2 25. Feb 2020 10:05

AW: Button nebeneinander und untereinander addieren
 
Zitat:

Zitat von Luckie (Beitrag 1458269)
Ich denke, das Thema ist durch. Er hat wohl eine Lösung gefunden und ist wohl nicht mehr an Alternativen interessiert.

Richtig! Möchte aber noch darauf Antworten.

Zitat:

Nur mal so, wieso denkt niemand daran TGridPanel (VCL), bzw. TGridLayout (FMX) zu verwenden?
Ist mir klar das ich es mit einem TDrawGrid genauso realisieren kann aber ich möchte Buttons verwenden.

Die Lösung war das ich die Zuweisung der Buttons vor meiner Schleife gesetzt habe deshalb funktionierte das mit den Y Koordinaten nicht richtig.
Wie schon bemerkt hat sich also erledigt.

himitsu 25. Feb 2020 10:53

AW: Button nebeneinander und untereinander addieren
 
OK, es gibt viele Wege, die funktionieren, wenn man keine Fehler einbaut. :lol:

Zitat:

Ist mir klar das ich es mit einem TDrawGrid genauso realisieren kann aber ich möchte Buttons verwenden.
TDrawGrid ist das TStringGrid zum selbermalen, also sowas wie ein TGridPanel mit vielen TPaintBox drauf.
Delphi-Referenz durchsuchenTGridPanel und Delphi-Referenz durchsuchenTFlowPanel sind etwas "neuere" Komponenten, die mehrere andere Komponenten, wie z.B. Buttons, automatisch auf der Form ausrichten können. (siehe Videos)
(im FMX heißen die Panel zum Ausrichten aber Layout)

PS: in https://www.delphipraxis.net/profile.php?do=editprofile kann man auch angeben was für ein Programm man (hauptsächlich) verwendet, falls z.B. ein uraltes Delphi oder Lazarus,
und falls abweichend, dann lässt sich in vielen Unterforen das auch nochmal angeben, siehe Präfix, das erste Edit im Themaerstellen.


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