"alles Außer" operator?

Anfängerfragen zum Programmieren mit PureBasic.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

"alles Außer" operator?

Beitrag von D4uS1 »

Ich habe eine Liste auf der man einzelne Segmente auswählen kann. Diese Segmente sind Arrays. Wenn ich aber nun ein Segment auswähle, kann ich immer noch die andren hinzufügen, ich hätte es aber gerne so das immer nur eine Auswahl möglich ist. Gibt es einen "alles Ausser" operator für solche zwecke?

Code: Alles auswählen

initSprite()
initKeyboard()

OpenScreen(1024, 768, 16, "Liste")

Structure Liste
  x.w
y.w
Auswahl.w
endStructure

dim ListenAbschnitt.Liste(30)

for x = 0 to 30 
 Liste(x)\x = 10
 Liste(x)\y = x*20
next

repeat
examineMouse()
examineKeyboard()

for x = 0 to 30
 If mouseX() > Liste(x) and mouseX() < Liste(x) + Listenabschnittbreite and MouseY() > Liste(x)\y and MouseY() < Liste(x)\y + listenabschnitthöhe

If mousebutton(1) = #True and   ;Jetzt die Zeile die ich Brauche, übersetzt: Wenn noch keine Auswahl getroffen wurde... 
  Liste(x)\Auswahl = 1
elseif  ... Wenn eine Andre auswahl getroffen wurd und die eine schon existiert, so entferne die eine und erstelle die neue
endif
endif
next

Until Keyboardpushed(1)
EDIT: Warum hat der das hier so verwurschtelt? Nicht drauf achten bitte.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Hä ?
Meinst du:

Code: Alles auswählen

If mousebutton(1) = #True and Liste(x)\Auswahl <> 1
?
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag von D4uS1 »

nicht ganz,

Ich möchte sozusagen eine Exel Tabelle haben bei der nur ein Abschnitt auf einmal gewählt werden kann.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

Auch auf die Gefahr hin mich jetzt völlig zum Affen zu machen (weil ichs immernoch nicht blicke)

So ?

Code: Alles auswählen

InitSprite()
InitKeyboard()

OpenScreen(1024, 768, 16, "Liste")

Structure Liste
	x.w
	y.w
	Auswahl.w
EndStructure

Dim ListenAbschnitt.Liste(30)

For x = 0 To 30
	Liste(x)\x = 10
	Liste(x)\y = x*20
Next

Auswahl.l = -1
Repeat
	ExamineMouse()
	ExamineKeyboard()

	For x = 0 To 30
		If MouseX() > Liste(x)\x And MouseX() < Liste(x)\x + Listenabschnittbreite And MouseY() > Liste(x)\y And MouseY() < Liste(x)\y + listenabschnitthöhe

			If MouseButton(1) = #True
				If Auswahl = -1
					Liste(x)\Auswahl = 1
					Auswahl          = x
				Else
					Liste(Auswahl)\Auswahl = 0
					Auswahl                = -1
				EndIf
			EndIf
		EndIf
	Next

Until KeyboardPushed(1)
Zuletzt geändert von HeX0R am 29.03.2007 20:48, insgesamt 1-mal geändert.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

keiner macht sich hier zum affen (auch ich nich, obwohl ich über 2°% poste)

der punkt is... sowas proggt man selber.

also sorry, aufrecht stehender inflatio, WO ist dein problem?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag von D4uS1 »

danke @ Hexor!!!!!

@Kaeru Gaman: Aufrecht stehender Inflatio, das muss ich mir merken^^
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

Mmmm, komisch komisch.

Sucht du wirklich einen Operator wie AND, OR, XOR ... NOT

oder suchst du einfach sowas wie

#PB_ListView_Multiselect | #PB_ListView_ClickSelect

nur davon das Gegenteil?


Oder doch lieber AUSWAHL UMKEHREN ...

Ne, ich versteh es nicht. :roll: :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

Macro AllesAusser
  <>
EndMacro
Funktioniert :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> @Kaeru Gaman: Aufrecht stehender Inflatio, das muss ich mir merken^^

...war auch nicht böse gemeint, nur eine spontane lyrische umsetzung deines nicknames...

(meine güte, dass ich gestern noch gepostet hab... hoffentlich hab ich nicht wo anders richtig scheiße geschrieben...)
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
D4uS1
Beiträge: 268
Registriert: 02.09.2006 12:16

Beitrag von D4uS1 »

ich weiß das das nicht böse gemeint war, aber <> hat auch nicht funktioniert, ich hab eine zweite for dingens da eingefügt und hab sozusagen beide gegeneinander ausgespielt, jetzt hats funktioniert, ich kann nur noch teile wählen wenn keine anderen gewählt sind, trotzdem thx an alle die mir helfen wollten!
Antworten