| |
|
|
- Seite 1 - |
|
| Hier werden Wünsche geäußert.
[box:174b705055]Ich wünsche mir für XProfan10:[/box:174b705055] isset(a&) zum Prüfen ob a& declariert ist unset(a&) zum undeklarieren von a& sort(array[&|$]) / Sortierbefehle für Arrays Startpaint -1 benötigt kein %hwnd mehr, und/oder %hwnd (Hauptfenster) kann erzeugt werden ohne in der Taskbar zu erscheinen hiword und loword im Sprachschatz clearlist mit Handle als Parameter löscht Listboxinhalt .
Salve. |
|
|
| |
|
|
| |
|
- Seite 8 - |
|
|
RGH | Hallo iF, das artet dann ja schon fast in einen Stringlisten-Ersatz aus. Was Stringlisten betrifft, bin ich mit mir noch nich einig, wie ich diese realisiere. Geplant ist es schon! Eine Variante wäre in der Tat, Strings als Stringlisten zu behandeln. Die andere Variante wäre, mit hStrList& = Create(List) Stringlisten zu erzeugen und diese dann mit den bekannten Listenfunktionen (Addlist, InsertList, DeleteList, etc.) zu bearbeiten. Deine Funktion könnte dann z.B. noch als SetList(hStrList&, N&, neuStr$) hinzugefügt werden.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 21.04.2006 ▲ |
|
|
|
|
Ragnar Rehbein | hallo roland!
stringlisten wären im moment die nr. 1 auf meiner wunschliste. gerade innerhalb von klassen würde das für die datenhaltung ungemein helfen (z.b. für die zwischenspeicherung von sql select -abfragen) bisher habe ich überwiegend listboxen eingesetzt, die aber etliche nachteile haben (setzen ein hauptfenster voraus und erzeugen unter bestimmten SP von windows schutzverletzungen)
in diesem zusammenhang wäre ein moven der profan listboxliste in die stringliste gut, oder noch besser ein neuer sqlexec parameter der das ergebnis der abfrage direkt in eine stringliste schiebt. (sqlexec select * from tabelle,4,hStrList&)
noch mal eine andere frage. denkst du, das es mal möglich sein wird in XProfan echte threadmöglichkeiten einzubauen ? bisher bleibt leider nur eine externe DLL. auch mit Profan2CPP ist es schwierig und erzeugt teilweise merkwürdige fehler.
r.r. |
|
|
| |
|
|
|
| @Roland: Wow - meinst Du sowas hier ( [...] ) nur nativ und damit schneller?
@Ragnar: Ich glaube Roland müsste dann viele Funktionen kapseln - ich glaub das würde dann leider doch sehr zu Lasten der Abarbeitung gehen. Ich würde gerne in einem anderen Thread über Probleme von echten XProfanthreads mehr darüber erfahren falls Du schon Tests gemacht hast.
|
|
|
| |
|
|
|
Clemens Meier | Einen Vorschlag hätte ich noch und ich glaube, er könnte sich auch realisieren lassen. Unter XProfan ist es nicht möglich, hinter einem if, while oder until eine Wertzuweisung vorzunehmen, so wie es in so manch anderer Programmiersprache gibt. Also so etwas wie in PHP:
while (file$ = readmyfile()) do something wend
XProfan würde in dem Fall prüfen, ob der Inhalt von file$ dem Rückgabewert der Funktion/Prozedur readmyfile identisch ist. XProfan hätte auch ein Problem, den Unterschied zwischen Zuweisung und Vergleich zu erkennen. Aber vielleicht könnte man einen speziellen Konstrukt verwenden, damit es XProfan doch möglich ist, denn eine Zuweisung in der obigen Form erleichtert einem doch sehr das leben:
Möglicher Konstrukt für XProfan: while (file$) = readmyfile() do something wend
Also, die Variable steht in einer eigenen Klammer, der Rest ist offen. Das While bezieht sich auf die Klammer, das = wird dann als Zuweisungsoperator erkannt.
Oder man führt die geschweifte Klammer ein: while {file$ = readmyfile()} ...
XProfan könnte den Inhalt der geschweiften Klammer als Zuweisung erkennen, war die Zuweisung <> 0 bzw. <> false, bzw. <> NULL etc, wäre der Ausdruck wahr.
|
|
|
| |
|
|
|
Frank Abbing | Ersparniss: Eine Zeile... |
|
|
| |
|
|
|
RGH | [quote:228e80a12c=Clemens Meier]Also von wegen eine Zeile, das war wohl ein wenig zuvoreilig geschrieben.[/quote:228e80a12c] Völlig unabhängig von der Zeilenzahl kann dieses Konstrukt (Zuweisung innerhalb eines Ausdruckes) in XProfan schon deshalb nicht funktionieren, weil die Zuweisung ein Befehl ist (auch wenn das Befehlswort LET in Anlehnung an BASIC weggelassen werden kann). Ein Befehl kann immer nur am Anfang einer Zeile stehen und eben nicht in einem Ausdruck. Um Deinen Wunsch zu realisieren, wäre also ein ziemlich großer Eingriff in die innere Struktur von XProfan notwendig.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 22.04.2006 ▲ |
|
|
|
|
RGH | [quote:691298bdc0=Clemens Meier] while (file$ = readmyfile()) do something wend[/quote:691298bdc0] Das würde ich in XProfan so schreiben: KompilierenMarkierenSeparieren Ich denke, es geht auch ohne Zuweisung im Ausdruck hinter WHILE bzw. WHILENOT. Und in manchen Fällen vermeidet auch die fußgesteuerte Schleife (REPEAT ... UNTIL Bedingung) überflüssige Programmzeilen. Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 22.04.2006 ▲ |
|
|
|
|
Clemens Meier | [quote:3cf0fae77c=RGH]Um Deinen Wunsch zu realisieren, wäre also ein ziemlich großer Eingriff in die innere Struktur von XProfan notwendig.[/quote:3cf0fae77c] Tja, in dem Fall: Schade |
|
|
| |
|
|
|
RGH | NACHTRAG: Grid wurde um den Parameter Typ% erweitert, so dass auch hier nun eine Sortierung und die Wahl zwischen Ein- und Mehrfachauswahl möglich ist! Auch Listbox und GridBox wurden entsprechend erweiter. (Siehe oben!)
[quote:67b0b14ced=Ragnar Rehbein]hallo roland! stringlisten wären im moment die nr. 1 auf meiner wunschliste. r.r.[/quote:67b0b14ced] Hallo Ragnar, ab der nächsten Subscriptionslieferung sind sie vorhanden: Mit create(List, Typ%) wird eine stringliste erzeugt, die mit den gleichen Funktionen bearbeitet werden kann, wie die mit create(ListBox,...) erzeugten Listboxen. Beim Typ% steht 1 für sortiert und 2 für Mehrfachauswahl. Diese Eigenschaften können kombiniert werden. (Ja, in XProfan können Elemente einer Stringliste markiert werden, genau wie in einer Listbox!) Ein Beispielcode; KompilierenMarkierenSeparieren! Programm listtest.prf
Declare hSL&
Cls
1. Stringliste erstellen
Typ 3 = Sortiert und Mehrfachauswahl
hSL& = Create("List", 3)
2. hier werden der String-Liste Zeilen hinzugefügt
AddString(hSL&, "AB")
AddString(hSL&, "GHI")
AddString(hSL&, "|")
AddString(hSL&, "STUV")
AddString(hSL&, "ABCD12STUVW")
AddString(hSL&, "ABCD34stuvw")
AddString(hSL&, "Abcd45STUVW")
AddString(hSL&, "Abcd56StUVW")
AddString(hSL&, "Abcd56AbxVW")
AddString(hSL&, "Abcd67STUVW")
InsertString(hSL&, 5, "Hugo was here")
3. Stringliste ausgeben
WhileLoop 0, GetCount(hSL&)-1
Print GetString$(hSL&, &loop)
EndWhile
Print "--------------"
4. Strings auswählen
Print SelectString(hSL&, -1, "Hugo")
Print SelectString(hSL&, -1, "GHI")
5. Jetzt auswerten
Print Str$(GetSelCount(hSL&)) + "/" + Str$(GetCount(hSL&))
WhileLoop 0, GetCount(hSL&)-1
If GetState(hSL&, &loop) > 0
Print GetString$(hSL&, &loop)
EndIf
EndWhile
WaitInput
End
Aber das ist noch nicht alles! Es gibt nun auch Stringgrids, die mehrere Spalten haben können. Erzeugt werden sie mit create(Grid, Spalten%, Typ%). Der Typ% hat die gleiche Funktion wie bei List. (Das Gridcontrol der letzten Lieferung wurde dafür in GridBox umgetauft, was eh besser zu ListBox, ChoiceBox und EditBox paßt.). Auch hier funktionieren alle Funktionen, die auch bei einer GridBox funktionieren. Ein Beispiel: KompilierenMarkierenSeparieren! Programm gridtest.prf
Declare X%, Feld$
Declare hGrid&
Cls
1. String-Grid erstellen
Typ 2 = Mehrfachauswahl
hGrid& = Create("Grid", 3, 2)
2. hier werden die String-Grid-Zeilen hinzugefügt
AddString(hGrid&, "AB|DEF|0123")
AddString(hGrid&, "GHI|J23KL|012345")
AddString(hGrid&, "|MNOP|PQR|")
AddString(hGrid&, "STU||V")
AddString(hGrid&, "ABCD12|STUVW|XYZ0")
AddString(hGrid&, "ABCD34|stuvw|999,00")
AddString(hGrid&, "Abcd45|STUVW|-111,11")
AddString(hGrid&, "Abcd56|StUVW|2.111,11")
AddString(hGrid&, "Abcd56|AbxVW|-15.234,56")
AddString(hGrid&, "Abcd67|STUVW|0,00")
X% = InsertString(hGrid&, 5, "")
SetText hGrid&, X%, 0, "Hugo"
SetText hGrid&, X%, 1, "war"
SetText hGrid&, X%, 2, "hier"
3. Gridbox-Inhalt ausgeben
WhileLoop 0, GetCount(hGrid&)-1
Print GetString$(hGrid&, &loop)
EndWhile
Print "--------------"
4. Strings selektieren
Print SelectString(hGrid&, -1, "Hugo")
Print SelectString(hGrid&, -1, "GHI")
Print SelectString(hGrid&, 6, "Hugo")
5. Jetzt auswerten
Print Str$(GetSelCount(hGrid&)) + "/" + Str$(GetCount(hGrid&))
Jetzt werden die selektierten Zeilen ausgegeben
WhileLoop 0, GetCount(hGrid&)-1
X% = &Loop
If GetState(hGrid&, X%) > 0
Print GetString$(hGrid&, X%)
Feld$ = ""
WhileLoop 0, 2 3 Spalten
Feld$ = Feld$ + GetText$(hGrid&, X%, &Loop) + " / "
EndWhile
Print Feld$
EndIf
EndWhile
WaitInput
End
Ach ja: Hinter diesen neuen Controls verbergen sich natürlich die Windowscontrols Listbox und SysListView32, allerdings ohne jede Beziehung zu einem Elternfenster oder Größe oder Anzeigeoptionen, eben als pure Datenspeicher!
Ich hoffe, daß die 6. Subscriptionslieferung mit den neuen Möglichkeiten noch heute rausgeht.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 22.04.2006 ▲ |
|
|
|
|
Jac de Lad | Hallo Roland!
Kannst du es vielleicht einrichten, dass Funktionen in Klassen, die keine Parameter haben, kein () benötigen? Oder dies vielleicht allgemein auf alle Funktionen ohne Parameter ausweiten? Fänd ich jedenfalls gut.
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 23.04.2006 ▲ |
|
|
|
|
Andreas Gaida | Hi! Echte Threads das wäre eine Super Sache wenn man sie unter XProfan 10 realisieren könnte
MfG Andreas |
|
|
| Athlon X2 4800 , 2GB Ram , GeForce 7800GT Windows XP Pro , XProfan 10 und 11 , Profan2Cpp 1.6b | 25.04.2006 ▲ |
|
|
|
|
RGH | [quote:39eb735042=Jacob Liebeck]Hallo Roland!
Kannst du es vielleicht einrichten, dass Funktionen in Klassen, die keine Parameter haben, kein () benötigen? Oder dies vielleicht allgemein auf alle Funktionen ohne Parameter ausweiten? Fänd ich jedenfalls gut.
Jac [/quote:39eb735042] Das wird leider nicht gehen, da in XProfan eine Funktion ja gerade daran erkannt wird, daß ein Klammerausdruck folgt!
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 25.04.2006 ▲ |
|
|
|