AGB  ·  Datenschutz  ·  Impressum  







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

Mengenauswertung - Problem!

Offene Frage von "AlexanderBrade"
Ein Thema von AlexanderBrade · begonnen am 27. Dez 2008 · letzter Beitrag vom 27. Dez 2008
Antwort Antwort
Seite 1 von 2  1 2      
AlexanderBrade

Registriert seit: 14. Dez 2008
189 Beiträge
 
Delphi 2005 Personal
 
#1

Mengenauswertung - Problem!

  Alt 27. Dez 2008, 16:40
if (cb1 in iMenge) and (cb2 in iMenge) and (cb3 in iMenge) (cb4 not in iMenge) and (cb5 not in iMenge) and (cb6 not in iMenge) then showmessage{usw.} Diese Quelltextzeile habe ich geschriben, "not in" scheint aber nicht zu existieren! Wie kann man das korrigieren?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Mengenauswertung - Problem!

  Alt 27. Dez 2008, 16:42
if (cb1 in iMenge) and (cb2 in iMenge) and (cb3 in iMenge) and not ((cb4 in iMenge) or (cb5 in iMenge) or (cb6 in iMenge)) then showmessage...
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
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Mengenauswertung - Problem!

  Alt 27. Dez 2008, 16:43
Delphi-Quellcode:
if (cb1 in iMenge)
   and (cb2 in iMenge)
   and (cb3 in iMenge)
   and not (cb4 in iMenge)
   and not (cb5 in iMenge)
   and not (cb6 in iMenge) then
begin
  showmessage{usw.}
end;
  Mit Zitat antworten Zitat
AlexanderBrade

Registriert seit: 14. Dez 2008
189 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Mengenauswertung - Problem!

  Alt 27. Dez 2008, 16:54
Und wie sieht es damit aus?
if not ((cb1 in iMenge)and (cb2 in iMenge) and (cb3 in iMenge)) or not ((cb4 in iMenge) and (cb5 in iMenge) and (cb6 in iMenge)) Die Zeile soll bewirken, dass er nur "weiter geht", wenn weder cb1, cb2, cb3, noch wenn cb4, cb5, cb6 gemeinsam in der Menge vorhanden sind.
[P.S. Mit cb1, cb2, cb3 funktioniert es schon!]
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#5

Re: Mengenauswertung - Problem!

  Alt 27. Dez 2008, 17:00
Delphi-Quellcode:
if (iMenge * [cb1, cb2, cb3] = [cb1, cb2, cb3])
  and (iMenge * [cb5, cb6, cb7] = []) then
begin
  showmessage{usw.}
end;

// oder

if iMenge * [cb1, cb2, cb3, cb4, cb5, cb6] = [cb1, cb2, cb3] then
begin
  showmessage{usw.}
end;

// bzw. wenn die cb1 bis cb6 aufeinanderfolgend sind
// (wie man es aus dem Namen vermuten könnte)

if iMenge * [cb1..cb6] = [cb1..cb3] then
begin
  showmessage{usw.}
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
AlexanderBrade

Registriert seit: 14. Dez 2008
189 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Mengenauswertung - Problem!

  Alt 27. Dez 2008, 18:04
Das klappt aber nicht! Mal davon abgesehen, dass ich diese Routine nicht verstehe...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Mengenauswertung - Problem!

  Alt 27. Dez 2008, 18:11
Nochmal zum Verständnis: Du hast 6 Checkboxen, von denen nur eine der ersten drei und eine der letzten drei gewählt werden darf? Dann hast Du die falschen Komponenten gewählt, nimm einfach 2 RadioGroups und fertig.
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
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#8

Re: Mengenauswertung - Problem!

  Alt 27. Dez 2008, 18:17
wie klappt nicht?

und zum Verstehen ... siehe Delphi-Referenz durchsuchenMengenoperationen (oder so in etwa)
Delphi-Quellcode:
{Menge3 = alles was in Menge1 UND in Menge2 enhalten}
Menge1 * Menge2 = Menge3

{Menge3 = alles was in Menge1 ODER in Menge2 enhalten}
Menge1 + Menge2 = Menge3

{Menge3 = alles was in Menge1 UND NICHT in Menge2 enhalten}
Menge1 - Menge2 = Menge3

Delphi-Quellcode:
resultA := iMenge * [cb1, cb2, cb3]
// resultA enthält nur noch cb1, cb2 und/oder cb3 (soweit diese in iMenge enthalten waren)

resultB := resultA = [cb1, cb2, cb3]
// resultB ist true, wenn cb1, cb2 UND cb3 enthalten sind ... es also gleich ist

resultC := iMenge * [cb4, cb5, cb6]
// resultC = siehe ResultA

resultD := resultC = []
// resultD ist true, wenn cb4, cb5 UND cb6 NICHT enthalten sind ... es also ebenfalls gleich ist

die zweite und dritte variante aus dem vorherigen Post ist nur eine Kombination dieser Operationen/Vergleiche
und alles Varianten sollten diesem entsprechen
Delphi-Quellcode:
if (cb1 in iMenge)
   and (cb2 in iMenge)
   and (cb3 in iMenge)
   and not (cb4 in iMenge)
   and not (cb5 in iMenge)
   and not (cb6 in iMenge) then
begin
  showmessage{usw.}
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
AlexanderBrade

Registriert seit: 14. Dez 2008
189 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Mengenauswertung - Problem!

  Alt 27. Dez 2008, 18:34
ALso was soll die zeile bewirken?!?

Wenn cb1, cb2 und cb3 in der Menge enthalten sind soll nichts passieren!
Wenn cb4, cb5, und cb6 in der Menge enthalten sind soll auch nichts passieren![es soll nur weiter gehen wenn das eben nicht der Fall ist]

Für die erste Variante funktioniert folgende Lösung:
if FCntCBs = 3 then if not ((cb1 in iMenge)and (cb2 in iMenge) and (cb3 in iMenge))then begin form2.visible:=false;form6.visible:=true; end; Ich muss das ganze mit der zweiten Variante allerdings kombinieren, denn in zwei "if not" Prozeduren klappt es nicht!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: Mengenauswertung - Problem!

  Alt 27. Dez 2008, 18:39
Die Schnittmenge zweier Mengen erhältst Du durch Multiplikation, das hat himitsu schon richtig beschrieben. Aber ich habe immer noch nicht ganz verstanden, was Du eigentlich willst. Ist es nur dann ein Fehler, wenn entweder
- cb1 und cb2 und cb2 oder
- cb4 und cb5 und cb6
enthalten sind? Oder jede beliebige Kombination von der ersten oder zweiten o.a. Zeile?
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
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 07:00 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