PB Wishlist?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
FGK
Beiträge: 249
Registriert: 09.01.2005 14:02
Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit
Wohnort: Augsburg

PB Wishlist?

Beitrag von FGK »

Hallo Leute,

einen offizellen PB-Wishlist-Thread gibt es hier im Forum nicht, oder hab ich ihn nicht gleich gefunden?
Na egal ich würde mich über ein Kommando "With"
freuen daß wie in VB (da komm ich ursprünglich mal her *gg)
ein "tippfreundlicher" Umgang mit Struktur-Variablen möglich ist.

Beispiel:

Code: Alles auswählen


Structure Test 
 member.l
 name.s
 xpos.l
 ypos.l
EndStructure

Beispiel.Test

With Beispiel
 \member = 1
 \name = "Test"
 \ypos = 320
EndWith 

Wäre schön so was als "nice to have" in den nächsten Versionen zu finden. Ich weis aber auch daß es hier viel viel wichtigere Dinge gibt die implemnetiert oder verbessert werden müßten bevor man sich an "Nice to have" 's vergnügen sollte. Trotzdem ist das nicht ne Anregung?

Gruß FGK
mipooh
Beiträge: 226
Registriert: 12.12.2004 04:49
Kontaktdaten:

Beitrag von mipooh »

Meinst Du sowas?

Code: Alles auswählen

  Structure Person
    Name.s
    ForName.s 
    Age.w 
  EndStructure

  Dim MyFriends.Person(100)

  ; Here the position '0' of the array MyFriend()
  ; will contain one person and it's own informations

  MyFriends(0)\Name = "Andersson"
  MyFriends(0)\Forname = "Richard" 
  MyFriends(0)\Age = 32

Das war in der PB-Hilfe unter Structure...

Oder ich hab nicht kapiert, was Du meinst...

Gruss
Mipooh
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

ja, was bezweckt dieses "with"?
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

Das soll nur die Schreibweise etwas abkürzen.

Aus

Code: Alles auswählen

EineRichtigLangeVariable.MeineStruktur

EineRichtigLangeVariable\x = 100
EineRichtigLangeVariable\y = 50
EineRichtigLangeVariable\color = RGB(5,23,42)

Line(EineRichtigLangeVariable\x, EineRichtigLangeVariable\y, EineRichtigLangeVariable\color)
würde

Code: Alles auswählen

EineRichtigLangeVariable.MeineStruktur
With EineRichtigLangeVariable
  \x = 100
  \y = 50
  \color = RGB(5,23,42)

  Line(\x, \y, \color)
EndWith
Ganz einfach - obwohl ich's so auch nich wirklich schön finde, irgendwie fehlt mir jetzt was vor dem Backslash :(

So oder so ähnlich fänd ich OK

Code: Alles auswählen

EineRichtigLangeVariable.MeineStruktur
With EineRichtigLangeVariable
  *\x = 100
  *\y = 50
  *\color = RGB(5,23,42)

  Line(*\x, *\y, *\color)
EndWith
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Benutzeravatar
FGK
Beiträge: 249
Registriert: 09.01.2005 14:02
Computerausstattung: i5-4430 CPU / 8GB RAM
GeForce GT630
Windows 10 Home / 64-bit
Wohnort: Augsburg

Beitrag von FGK »

Hi ihr beiden,

Freedimension war schneller und hat das ganze auch sofort überrissen - :allright:

es geht mir darum, wenn man viel mit Strukturen arbeitet
und jedesemal um auf ne Variable in dieser Struktur
zugreifen will man den Variablennamen vor den \ schreiben muß. Das ist mir zu tippaufwändig. Deshalb so wie in VB das "With" Kommando
(in VB hat das noch den Vorteil daß z.B. Objekt-Referenzen nicht jedes mal neu aufgelöst werden müssen wenn ein Zugriff auf dieses Objekt gemacht wird. Was die Sache etwas beschleunigt - das ist aber hier nebensächlich! *g)

aus diesem Code

Code: Alles auswählen


  MyFriends(0)\Name = "Andersson" 
  MyFriends(0)\Forname = "Richard" 
  MyFriends(0)\Age = 32

würde dann

Code: Alles auswählen

  
   With MyFriends(0)
     \Name = "Andersson" 
     \Forname = "Richard" 
     \Age = 32
   EndWith

Sicherlich bei nur drei Zuweisungen ist das noch vertretbar aber stellt euch mal ne aufwändigere Structure vor! Und vor jedem Zugriff auf eine Variable da drin muß man den Namen vorher qualifizieren. Und "MyFriends() ist noch nicht mal so besonders lang.
Jetzt klarer?

Hier ein auszug aus der VB-Anleitung

Bemerkungen

Mit der With-Anweisung können Sie eine Reihe von Anweisungen für ein bestimmtes Objekt ausführen, ohne den Namen des Objekts mehrmals angeben zu müssen. Wenn Sie zum Beispiel mehrereEigenschaften eines bestimmten Objekts verändern möchten, sollten Sie die Zuweisungsanweisungen für die Eigenschaft in einer With-Kontrollstruktur unterbringen. Sie brauchen dann den Namen des Objekts nicht bei jeder einzelnen Zuweisung, sondern nur einmal zu Beginn der Kontrollstruktur anzugeben. Das folgende Beispiel veranschaulicht die Verwendung der With-Anweisung, um mehreren Eigenschaften desselben Objekts Werte zuzuweisen.

With Bezeichnungsfeld1
.Height = 2000
.Width = 2000
.Caption = "Schönen Tag noch"
End With

Müßt doch zugeben würde die Sache doch angenehmer gestalten?


Gruß FGK
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

Noch besser wär das hier:

Code: Alles auswählen

With Variable1 And Variable2
\Text = "Hallo"
\Wert = 4
MessageRequester(\Text,Str(\Wert)
EndWith
;Würde jetz für beide gemacht werden..
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

und wenn ein Element die gleichen variable namen hat? Außerdem finde ich diese Schreibweise grausam. Sie nimmt ein etwas schreibarbeit ab aber sieht auch nicht gerade schön aus. Kannst ja mit copy&past arbeiten, wenns zu viel zu schreiben ist /:->.

Was meiner meinung nach viell wichtiger ist dass deklarieren von Variablen zu erzwingen und das man Zeilen mit einem '_' oder was auch immer verknüpfen kann. Das wäre für Fred vielleicht 30-40 minuten arbeit aber warum macht er das nicht, hält er das für unwichtig oder was sind seine gründe?
Bild
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Beitrag von freedimension »

MVXA hat geschrieben:Das wäre für Fred vielleicht 30-40 minuten arbeit aber warum macht er das nicht, hält er das für unwichtig oder was sind seine gründe?
Die Antwort darauf lautet sicherlich "42" ;) Zumindest ist die Frage genauso tiefgründig wie die Frage aller Fragen.
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

Beitrag von Kekskiller »

Was ich wirklich am liebsten hätte, wären einheitlich Klassen und nicht die elend langen Umwege per com-Objekt oder irgendsowas anderen. Das habe ich bisher nie benutzt, da ich nie wirklich Zeit und Musse hatte, mir von irgendwoher brauchbare Infos dazu zusammenzuschustern. Da wäre ein simples und einfaches:

Code: Alles auswählen

Class Effect
  var.l
  Methode Set(v.l)
    var.l = v.l
  EndMethode
EndClass
doch viel angenehmer und einheitlicher. Aber es würde auch eine ganze Menge an dicker Arbeit und Umschreibereien bedeuten und PB wäre danach nicht mehr wirklich PB...

Und wie schon gesagt unbedingt den Unterstrich und die nächste Zeile miteinzubinden, das kann ja sogar meine Scriptsprache..
Benutzeravatar
125
Beiträge: 1322
Registriert: 19.09.2004 16:52
Wohnort: Neu Wulmstorf (Hamburg)
Kontaktdaten:

Beitrag von 125 »

Kekskiller was könnte man denn mit so einer erstellten Klasse machen?
Bild
BildDas ist Tux. Kopiere Tux in deine Signatur und hilf ihm so auf seinem Weg zur Weltherrschaft.
Antworten