AddGadgetItem
AddGadgetItem
Hallo,
gibt es eine einfache Methode, bei AddGadgetItem zu prüfen, das der Eintrag nur einmal vorhanden ist?
Danke für Tips
gibt es eine einfache Methode, bei AddGadgetItem zu prüfen, das der Eintrag nur einmal vorhanden ist?
Danke für Tips
Re: AddGadgetItem
Hallo Kiffi,Kiffi hat geschrieben:mehr Infos bitte! Für welches Gadget beispielsweise...
Grüße ... Kiffi
es handelt sich um eine ComboBox in der IP Adressen eingetragen werden und ich möchte gerne Dubletten vermeiden.
Die IPs werden danach direkte aus dem Gadget in eine Prefs geschrieben. In AutoIt gab es die Möglichkeit dies per Array zu lösen, indem ich aus dem Array alle Einträge in ein andere Kopiere, dies aber keine Dubletten enthält.
Ich denke das ich wohl eine Funktion für die Prefs brauche, oder gibt es eine andere Lösung?
Gruß Lars
- 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
Re: AddGadgetItem
Mal unabhängig von Deiner Frage, wäre die Kombination von IPAddressGadget und ListView
nicht sinnvoller? Benötigt zwar mehr Platz, vermeidet aber ungültige Eingaben, was Du
sonst auch noch selber händeln müsstest.
nicht sinnvoller? Benötigt zwar mehr Platz, vermeidet aber ungültige Eingaben, was Du
sonst auch noch selber händeln müsstest.
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

AddGadgetItem
Weil eben auch ein DNS-Name möglich ist, so ist es entstanden. Sollte die Ip nicht vorhanden sein, wird dieser Fehler später abgefangen.ts-soft hat geschrieben:Mal unabhängig von Deiner Frage, wäre die Kombination von IPAddressGadget und ListView
nicht sinnvoller? Benötigt zwar mehr Platz, vermeidet aber ungültige Eingaben, was Du
sonst auch noch selber händeln müsstest.
- NicTheQuick
- Ein Admin
- Beiträge: 8838
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: AddGadgetItem
Ich hab hier mal eine Funktion gebastelt, die dir ein String-Array alphabetisch sortiert und gleichzeitig Dubletten entfernt. Ohne alphabetische Sortierung ist es komplizierter zu programmieren. Deswegen habe ich jetzt die einfachere Version gewählt.
Code: Alles auswählen
Dim values.s(20)
Procedure.i makeUnique(Array values.s(1))
Protected i.i, n.i = ArraySize(values())
Protected offset.i
SortArray(values(), #PB_Sort_Ascending)
For i = 1 To n
If values(i) = values(i - 1 - offset)
offset + 1
Else
values(i - offset) = values(i)
EndIf
Next
ReDim values(n - offset)
ProcedureReturn offset
EndProcedure
For i = 0 To ArraySize(values())
values(i) = RSet(Str(Random(4) * 2), 3, "0")
Debug values(i)
Next
makeUnique(values())
Debug "FERTIG"
For i = 0 To ArraySize(values())
Debug values(i)
NextAddGadgetItem
@NicTheQuick
Das mit dem Array schaut Super aus, ich danke die sehr für deine Hilfe. Die Kunst ist eben doch die Logik und da tue ich mich doch manchmal schwer. Ich verstehe aber, was du gemacht hast, ich habe also noch Hoffnung.... Danke
Das mit dem Array schaut Super aus, ich danke die sehr für deine Hilfe. Die Kunst ist eben doch die Logik und da tue ich mich doch manchmal schwer. Ich verstehe aber, was du gemacht hast, ich habe also noch Hoffnung.... Danke
Re: AddGadgetItem
ansonsten hätte ich hier noch eine Windows-only Lösung:
Grüße ... Kiffi
Code: Alles auswählen
Procedure AddComboBoxItem(ComboBoxGadget, Text.s)
If SendMessage_(GadgetID(ComboBoxGadget), #CB_FINDSTRING, -1, @Text) = -1
AddGadgetItem(ComboBoxGadget, -1, Text)
Else
Debug Text + " schon vorhanden"
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 270, 180, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ComboBoxGadget(0, 10, 40, 250, -1)
AddComboBoxItem(0, "hallo1")
AddComboBoxItem(0, "hallo2")
AddComboBoxItem(0, "hallo3")
AddComboBoxItem(0, "hallo1") ; der hier ist schon vorhanden und wird nicht eingetragen
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIfa²+b²=mc²
Re: AddGadgetItem
Danke Kiffi, das ist supereinfach und schnell eingebaut
Gruß Lars
Gruß Lars