Autor Beitrag
Halunkel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Fr 02.06.06 19:08 
Hallo!

Ich hätte folgendes Problem: Und zwar würde ich gerne verschiedene Checkboxen, Labels und Comboboxen ausblenden, sobald eine gewisse Punktzahl erreicht ist.

Also kurze Erklärung:
Es gibt mehrere Checkboxen und Comboboxen, deren Auswahl eine gewisse Punktzahl kostet. Nun ist die zur Verfügung stehende Punktzahl beschränkt und es sollten alle noch nicht angeklickten Checkboxen und Comboboxen ausgeblendet werden. Nun ist das Problem, dass es über 1000 Möglcihkeiten gibt bei welcher Kombination von angeklickten Boxen, was ausgeblendet werden soll. Also würde ich gerne wissen, ob es eine Möglichkeit gibt direkt die noch nicht angeklickten Boxen zu erkennen und dann auszublenden.

Es sollte auch so sein, dass wenn z.B. die max Punktzahl 100 ist und die erreichte Punktzahl momentan 75 ist und eine Box kostet mehr als 25 (z.B. 40) dann sollten all diese Boxen auch bereits ausgeblendet werden!

Könnt ihr mir dabi irgendwie helfen...
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 02.06.06 19:32 
Die Steuerelemente (Checkbox, Edit usw.) haben alle eine Eigenschaft 'Visible', die Du auf False setzen kannst, so:
ausblenden Delphi-Quelltext
1:
MyControl.Visible := False;					

Dann sieht man MyControl nicht mehr.

_________________
Na denn, dann. Bis dann, denn.
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Fr 02.06.06 19:41 
Sollte nich so schwer sein

Die CheckBox bekommt einen Namen, z.B. 'Drueckmich_1'

If DeineBedingung then TCheckbox(FindComponent('Drueckmich_1')).Visible:=False;
oder auch :=true wenn's denn beliebt.....


hat den Vorteil, das indiziert zugegriffen werden kann über eine Stringvariable:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
MyObjectName    : String;
.......
MyObjectName:='Drueckmich_'+IntToStr(x);
If DeineBedingung then TCheckbox(FindComponent(MyObjectName)).Visible:=False;
......


vielleicht wird's mal gebraucht....
Gruß oldmax

_________________
Zier dich nich so, ich krieg dich schon....
Halunkel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Fr 02.06.06 20:52 
Wie man die einzelnen Objekte ein- oder ausblendet weiß ich, aber das Problem ist ja, dass ich keine direkte Bedingung aufstellen kann, da ja versch. Möglichkeiten dazu führen können, dass die nicht angeklickten Objekte ausgeblendet werden sollen.

Ein Bsp.

Checkbox 1: 40Punkte
Checkbox 2: 30Punkte
Checkbox 3: 70Punkte
Checkbox 4: 50Punkte
Checkbox 5: 80Punkte

Es seien 100 Punkte erlaubt.

So wenn nun Box 2 und 3 angeklickt sind, sollen alle anderen ausgeblendet werden;
wenn Box 1 und 3 '' '' , '' '' '' '' '' , da keine Box mehr angeklickt werden kann ohne die 100Punkte nicht zu überschreiten;

Ich hoffe das Bsp. zeigt etwas was ich möchte! Es gibt bei mir eben sehr viel mehr Checkboxen, und so gäbe es über 1000 Möglichkeiten, welche Boxen angeklickt sind, und so die anderen ausgeblendet werden sollen, das wäre ja ziemlich aufwendig.
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Sa 03.06.06 09:31 
ok,ich hab's ja verstanden, nur du möglicherweise nicht.
:mahn: Also ich erlär's dann nochmal:

das Ereignis zur Statusabfrage einer Checkbox ist bekannt, ok?
Die Eigenschaft Name einer Checkbox auch ?

Wie man ein Object in der Anwendung über den Namen findet, hab ich erklärt.
Was also spricht dagegen, einer Checkbox den Namen z.B. Cb_MyPointsx30 oder Cb_MyPointsx70 zu geben? :wink:

Funktionen wie Pos, Copy und StrToInt sollten auch nicht unbekannt sein, oder? Was dir nun noch fehlt, ist die Überlegung, wie frage ich in meinem unendlich großen Programm alle Checkboxen ab, um mein Ergebnis zu erreichen. Wenn du da gar nicht drauf kommst, laß es mich wissen...

ansonsten sollte die Info genügen.
Man will ja schließlich in diesen nasskalten Wintertagen etwas zu tun haben.... :)

Gruß oldmax

_________________
Zier dich nich so, ich krieg dich schon....
Halunkel Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 34



BeitragVerfasst: Sa 03.06.06 12:37 
Hey Oldmax!

Danke für deine Antwort und Hilfe. Leider binich erst am Anfang meiner Delphi-Erfahrung, da ich erst seit etwa 4-5 Wochen wirklich versuche zu programmieren und so noch nicht allzu viel mit versch. Funktionalitäten zu tun hatte.

Was genau meinst du denn mit POS und Copy? Unter copy kann ich mir zwar was vorstellen :D , aber wie genau kann ich das hier in dem Problem verwenden?

Leider habe ich auch nach deiner Mail und den vielen Hinweisen keinen blassen Schimmer wie ich das hinkriegen soll. :oops:

Ich hab mal ein kleines Programm vorbereitet, an dem du es evtl. (wenn du Zeit und Lust dazu hast) mir kurz zeigen könntest, was du meinst und wie das funktionieren soll. Denn leider weiß ich weder welche Funktion ich hier irgendwie einbauen soll um diese Abfrage zu machen, noch würde ich wissen wo ich diese Abfrage denn hinschreibe? Bei eine der Checkboxen? Bei jede Checkbox? In das Formular unter OnActivate? ... sorry, aber dafür fehlt mir einfach noch die Erfahrung... nochmal :oops: **Schäm** :oops:

Es wär echt super, wenn du es mir kurz an dem Programm unten zeigen könntest. Aber wie gesagt nur wenn du kurz Zeit dazu hast...

Danke schon im Voraus für deine Hilfe! :!:
Einloggen, um Attachments anzusehen!