* Für 3.3 Nutzer *

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

so in der art:

Code: Alles auswählen

...ButtonImageGadget(f+e,e, 0, x, y,....
..oder auch so:

Code: Alles auswählen

For e = 2 To 7
  For f = 2 To 7
    If  ButtonImageGadget(f+e*100,e, 0, x, y,...
  ;...
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Machete @PB
Beiträge: 81
Registriert: 12.09.2006 03:12

Beitrag von Machete @PB »

Danke ja so gehts :allright:
Ich dachte mit der der For Schleife würde die Nummer automatisch um 1 weiterrücken...
Benutze Topos-PB-Version 3.3
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

deine variablen "rücken" ja auch eins weiter...

aber wenn du geschachtelte schleifen hast, läuft die innere logischerweise mehrfach komplett durch.
und für eine komplett fortlaufende nummer muss man dann ne multiplikation drin haben.

ich würde dir schon empfehlen, dich mal damit auseinanderzusetzen,
was schleifen sind, was variablen sind, und wie der kram funktioniert.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

So, ich habe mal versucht 3.3 etwas zu erweitern und ein paar Procedure gebaut die es in 4.0 schon gibt ^^:

Code: Alles auswählen

; Auflösung des Bildschirms/Screens ermitteln
Procedure DesktopWidth()
 ProcedureReturn GetSystemMetrics_(0)
EndProcedure
Procedure DesktopHeight()
 ProcedureReturn GetSystemMetrics_(1)
EndProcedure

; Gibt die Zeit zurück. String$ kann z.B. "HH':'mm':'ss" sein
Procedure.s Time(String$) 
 time$=Space(1000)
 GetTimeFormat_(#LOCALE_USER_DEFAULT,0,0,String$,@time$,1000) 
 ProcedureReturn time$ 
EndProcedure 
; Gibt das Datum zurück. String$ kann z.B. "dd'.'MM'.'yyyy" sein
Procedure.s Date(String$) 
 Date$=Space(1000) 
 GetDateFormat_(#LOCALE_USER_DEFAULT ,0 ,0,String$,@Date$,1000) 
 ProcedureReturn Date$ 
EndProcedure 

; Mist die Zeit in ms.
Global COUNTERTIME.l
Procedure StartCounter()
 COUNTERTIME = GetTickCount_()
EndProcedure
Procedure.l StopCounter()
 ProcedureReturn GetTickCount_()-COUNTERTIME
EndProcedure

; Füllt das Ende(L) oder den Anfang(R) eines Strings mit Zeichen auf
Procedure.s RSet(String$, Laenge, Zeichen$)
 RSet$ = Space(Laenge-Len(String$))
 ReplaceString(RSet$, " ", Zeichen$, 2)
 NewString$ = RSet$+Mid(String$,1,Laenge)
 ProcedureReturn NewString$
EndProcedure
Procedure.s LSet(String$, Laenge, Zeichen$)
 LSet$ = Space(Laenge-Len(String$))
 ReplaceString(LSet$, " ", Zeichen$, 2)
 NewString$ = Mid(String$,1,Laenge)+LSet$
 ProcedureReturn NewString$
EndProcedure

; Löscht alle LoeschStrings aus einem String
Procedure.s RemoveString(String$, LoeschString$, Modus)
 NewString$ = ReplaceString(String$, LoeschString$, "", Modus)
 ProcedureReturn NewString$
EndProcedure

; Gibt einen Stringabschnitt (getrennt durch 'TrennString') an der stelle 'Index' zurück 
Procedure.s StringField(String$, Index, TrennString$)
 Stelle = 1-Len(TrennString$)
 For n = 1 To Index
  x = Stelle+Len(TrennString$)
  Stelle = FindString(String$+TrennString$, TrennString$, x)
  If Stelle = 0 : n = Index : EndIf
 Next n
 If Stelle
  NewString$ = Mid(String$, x, Stelle-x)
 EndIf
 ProcedureReturn NewString$
EndProcedure

; Zählt die Anzahl der 'StringToCount' in einem String
Procedure CountString(String$, StringToCount$)
 x = FindString(String$, StringToCount$, 1)
 While x
  n + 1
  x = FindString(String$, StringToCount$, x+1)
 Wend
 ProcedureReturn n
EndProcedure
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
w.pieperhoff
Beiträge: 41
Registriert: 15.05.2007 07:47
Wohnort: Westfalen

Beitrag von w.pieperhoff »

Herzlichen Glückwunsch Stagate!
Deine Codesammlung ist wirklich Supergeil.
Erstklassig Spitze für die 3.3 Version Besitzer.

MfG
W.Pieperhoff
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

:o SizeOf in 3.3 :o

Es gibt immer wieder Wunder in 3.3 :

Ich hatte mal wieder das Prob das ich eine LL mit einer großen Structure in einer Datei Speichern wollte:

Code: Alles auswählen

Structure M
 ID.l
 M.f
 G.l
 TT.l
 x.f
 y.f
 w.f
 v.f
 ZK.f
 HK.f
 t.f
EndStructure
Variante bis vor Kurzem:

Code: Alles auswählen

 ResetList(M())
 While NextElement(M()) 
  WriteLong(M()\ID)
  WriteLong(M()\M)
  WriteLong(M()\TT)
  WriteLong(M()\x)
  WriteLong(M()\y)
  WriteLong(M()\w)
  WriteLong(M()\v)
  WriteLong(M()\ZK)
  WriteLong(M()\HK)
  WriteLong(M()\t)
 Wend
Dann habe ich einfach mal zum Test SizeOf() geschrieben und auf einmal gibt es den Befehl in 3.3 schon. :o :?

Laut 3.3 Hilfe :
Die Seite kann nicht angezeigt werden.
Und schon wieder konnte ich in 3.3 etwas neues entdecken:

Code: Alles auswählen

 ResetList(M())
 While NextElement(M()) 
  WriteData(*M(), SizeOf(M))
 Wend
Mal sehen was ich noch für Überraschungen finde ^^
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
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 »

26 Februar 2001 : Version 2.10 hat geschrieben:- Hinzugefügt new commands: ListViewGadget(), AddListViewItem(), GetGadgetText(), SetGadgetText(), PeekS(), SizeOf()
Es lohnt sich also in der Geschichte zu wühlen :mrgreen:
Früher war die Hilfe noch nicht so vollständig wie jetzt
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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

wo wir gerade dabei sind, was mache ich bei so einer structure :

Code: Alles auswählen

Structure O
 x.l
 y.l
 Text.s
 e.f
EndStructure
da ändert sich ja die länge des Text.s

und wenn ich speicher und später wieder lade kommt was falsches
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
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 »

STARGÅTE hat geschrieben:wo wir gerade dabei sind, was mache ich bei so einer structure :

Code: Alles auswählen

Structure O
 x.l
 y.l
 Text.s
 e.f
EndStructure
da ändert sich ja die länge des Text.s

und wenn ich speicher und später wieder lade kommt was falsches
In PB3.3 kannste höchstens ein BytaArray anlegen und den Text reinpoken und
rauspeeken. In PB4 gibts dafür Fixstrings.
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
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7031
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

nee habe ein Beitrag von NicTheQuick gefunden den ich zwar umschreiben musste aber der funzt :-)

An der Stelle : Danke NicTheQuick

Aber eigendlich auch schade ^^ denn jetzt brauche ich kein SizeOf mehr :lol:
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten