AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Checkboxen um funktionen zu bauen

Ein Thema von MondoShiva · begonnen am 27. Apr 2013 · letzter Beitrag vom 27. Apr 2013
Antwort Antwort
Seite 1 von 2  1 2      
MondoShiva

Registriert seit: 14. Aug 2007
Ort: Mönchengladbach
63 Beiträge
 
Delphi XE2 Professional
 
#1

Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 10:57
Hallo,

ich habe eine ziemlich große Anzahl an checkboxen (80x80) die alle untereinander zusammenhängen. Jetzt habe ich ziemlich wenig lust über 6000 abfragen zu machen ob checkbox-X gechecked ist.

Habe ich eine andere Möglichkeit die information in eine variable(boolean) zu bekommen als immer per if?

Leider will mir nichts in den Kopf kommen wie ich es anstellen könnte.

Derzeit sieht es leider so bei mir aus. Nur zum veranschaulichen das ich über 6000 Funktionen schreiben müsste mit mehreren 1000 .show / .hide für die Checkboxen.

Delphi-Quellcode:

   function func11 () : String;
begin
    form1.CheckBox1.Show;
    Form1.CheckBox2.Show;
    form1.CheckBox3.Show;
    Form1.CheckBox4.Show;
    Form1.CheckBox5.Show;
    Form1.CheckBox6.Show;
    Form1.CheckBox7.Show;
    Form1.CheckBox8.Show;
    form1.CheckBoxa1.Show;
    Form1.CheckBoxa2.Show;
    form1.CheckBoxa3.Show;
    Form1.CheckBoxa4.Show;
    Form1.CheckBoxa5.Show;
    Form1.CheckBoxa6.Show;
    Form1.CheckBoxa7.Show;
    Form1.CheckBoxa8.Show;
    form1.Label2.Caption := 'XXX';
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
    HidetheBoxes;

 if CheckBox1.Checked then begin
  func1;
  end;
    if CheckBox2.Checked then begin
    func2;
    end;
      if CheckBox3.Checked then begin
      func3;
      end;
        if CheckBox4.Checked then begin
        func4;
        end;
          if CheckBox5.Checked then begin
          func5;
          end;
            if CheckBox6.Checked then begin
            func6;
            end;
              if CheckBox7.Checked then begin
              func7;
              end;
                if CheckBox8.Checked then begin
                func8;
                end;
                  if CheckBox9.Checked then begin
                  func9;
                  end;
                    if CheckBox10.Checked then begin
                    func10;
                    end;
                      if CheckBox11.Checked then begin
                      func11;
                      end;
form2.hide;
form1.Button1.Enabled := true;

end;
Veritas et Aequitas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 11:08
Soll immer nur eine der zur Auswahl stehenden Funktionen ausgeführt werden? In dem Fall würde ich die Checkboxen in die Wüste schicken und eine geeignetere Komponente wählen wie z.B. eine Radiogroup oder eine Combobox.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#3

AW: Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 11:18
Du könntest die TAG Eigenschaft nutzen, um die Checkbox rauszukriegen, welche geklickt wurde.
Aber ich schließe mich auch meinem Vorgänger an, ein geeigneteres Objekt zu suchen, um dein Problem zu lösen. Vielleicht erklärst du dein Problem mal detaillierter.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
MondoShiva

Registriert seit: 14. Aug 2007
Ort: Mönchengladbach
63 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 11:54
Hi,

leider kann ich nicht nur eine auswählen sondern wirklich jede checkbox mit jeder anderen verbinden um dann die entsprechende functionen zu kombinieren.

wenn cbE1 und cbA1 checked
dann .....

wenn cbE1 und cbA1 und cbA2,cbA3,cbA4,5,6 etc....
dann .....

also es sind wirklich 6400 abfragen weil ich alle untereinander kombinieren kann um einen entsprechenden code nachher aus der kombination zu generieren.

Radio geht hier leider nicht.

hier mal als Bild erklärt
1233.jpg
Veritas et Aequitas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 12:09
So ganz habe ich es immer noch nicht begriffen. Du hast je Checkbox eine aufzurufende Routine, gehst dann die Checkboxen durch und rufst sofern Checked die zugewiesene Routine auf, stimmt das?

[edit] Oder sollen gewisse Routinen bei bestimmten Kombinationen der Checkboxen aufgerufen werden? [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (27. Apr 2013 um 12:12 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.618 Beiträge
 
Delphi 12 Athens
 
#6

AW: Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 12:09
Sind die Funktionen denn irgendwie auf Spalten bzw. Zeilen reproduzierbar, d.h. wenn in einer Zeile was geklickt wird, dann in derselben Zeile etwas machen oder?
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#7

AW: Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 12:20
Also handelt es sich hier um eine 80*80 Schaltmatrix.
Etwa so wie: http://www.sequencer.de/forumsynth/m...ti_matrix6.jpg

Delphi-Quellcode:
type
  TSchaltMatrix = array[1..80, 1..80] of Boolean;
Checkboxen sind dafür ziemlich ungeeignet weil bei 6400 Checkboxen ist Windows (32bit) resourcenmäßig schon recht Nahe an der Obergrenze von 10000 GDI-Handles.

Naheliegend wäre hier ein DrawGrid mit 80*80 Feldern.
Bei einem Click in ein Feld wird einfach das entsprechende Element in dem Schaltmatrix Array umgekippt.
Das hat enorme Vorteile:

* beliebig skalierbar; Die Zellen des Drawgrids können je nach Wunsch dimensioniert werden
* direkter Zugriff auf die Daten ohne endlose If-Abfragen
* Resourcensparend
* wenig Sourcecode
  Mit Zitat antworten Zitat
MondoShiva

Registriert seit: 14. Aug 2007
Ort: Mönchengladbach
63 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 12:26
Jede Checkbox kann einzeln eine Routine beinhalten aber auch mit anderen routinen interagieren. Das ganze ist ein routing von ein und ausgehenden Signalen.

Beispiel wenn ich (bild vom vorherigen Post): checkbox 1-1 klicke wird eingang 1 auf ausgang 1 geroutet aber gleichzeitig kann ich 1-2, 1-3 etc. mit routen. Um es noch besser zu machen geht auch multiples routen wie beispiel: 1-1 , 1-2, 1-3, 2-4, 2-5, 3-6, etc. Eingänge können mehrere Ausgänge simultan beinhalten, jedoch ein Ausgang immer nur einen Eingang.

@ Zeras: Man kann es reduzieren , das ich den Eingang 2 nicht mehr auf den Ausgang 2 Routen kann wenn dieser bereits von Eingang 1 benutzt wird. Gleiche gillt für alle anderen Eingänge, entsprechend würde ich diese disablen.

@ sx2008: so etwas in der Art ist es. Mein Problem ich hab 0,0 Ahnung von Drawgrids viel lesen wieder und euch im Forum mit dummen Fragen belästigen.
Werde mir mal einen kleinen Aufbau machen mit 8x8 und gucken wie ich es hinbekomme. Danke
Veritas et Aequitas
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#9

AW: Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 12:34
Mach doch einfach ein Grid und werte die Klicks aus:
Miniaturansicht angehängter Grafiken
grid-01.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#10

AW: Checkboxen um funktionen zu bauen

  Alt 27. Apr 2013, 12:41
Mein Problem ich hab 0,0 Ahnung von Drawgrids
Du kannst dir aus diesem Test-Projekt ( https://github.com/sx2008/Delphi-Tes...er/Schachbrett ) Anregungen holen.
Gezeigt wird ein 8*8 Schachbrett mit Beschriftung.
Bei jedem Doppelklick wird eine neue Figur gesetzt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 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