Fragen zur GUI

Previous topic - Next topic

Kitty Hello

Mach den kurzen text, und wenn man reinklickt mach einen neuen Dialog, der in einem großen Textfeld den Text ändern lässt?

WPShadow

Das wird schon irgendwie hin hauen. Ich teste einfach und falls es nicht hinhauen sollte, stelle ich es einfach schnell online und dann tüfteln wir halt ein bißchen dran run. Irgendwie muß das blöde Ding doch zum Laufen zu bringen sein...

Und wenn ich eine Protierung für *.xls - Dateien selber schreiben muß...
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

WPShadow

HIIIIIIIIIIIIIIIIIIIIIILFE!

Das funktioniert irgendwie nicht:

Code (glbasic) Select
// --------------------------------- //
// Project: gldb Eingabe
// Start: Tuesday, October 30, 2007
// IDE Version: 5.062

GLOBAL field_x, field_y, field$[]

field_x = 1
field_y = 1

DIM field$[field_x + 1][field_y + 1]


DDgui_Init()


DDgui_pushdialog(0,0,1023,767)

FOR y_tmp = 1 TO field_y

FOR x_tmp = 1 TO field_x

DDgui_list(field$[y_tmp][x_tmp], "Testlauf lang", 400, 30)

NEXT

NEXT


DDgui_spacer(10000, 30)

DDgui_button("bt_complex", "Bearb.", 0,0)

WHILE TRUE


FOR y_tmp = 1 TO field_y

FOR x_tmp = 1 TO field_x

  IF DDgui_get(field$[y_tmp][x_tmp] + "CLICKED") THEN END

NEXT

NEXT


IF DDgui_get("bt_complexCLICKED") THEN END

DDgui_show(FALSE)


SHOWSCREEN
WEND
Was mach ich falsch? Oder denke ich hier gar falsch?

GLG

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

Ich glaub du bist ein noob ^^

Code (glbasic) Select
GLOBAL field_x, field_y, field$[]

field_x = 1
field_y = 1

DIM field$[field_x + 1][field_y + 1]
Was zur hölle soll das den ?
dan in den For von von 1 bis 1?
HÖÖÖÖÖÖÖÖÖ
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Quentin

Hi WP,
denke, was fehlt, ist die ID der Listfelder, also der Name dieser Objekte

Probiers mal so:

Code (glbasic) Select
...

DDgui_pushdialog(0,0,1023,767)

FOR y_tmp = 1 TO field_y

    FOR x_tmp = 1 TO field_x
       
        field$[y_tmp][x_tmp] = "ls_" + x_tmp + y_tmp
        DDgui_list(field$[y_tmp][x_tmp], "Testlauf lang", 400, 30)

    NEXT
   
NEXT
...
Also die Zeile
Code (glbasic) Select
field$[y_tmp][x_tmp] = "ls_" + x_tmp + y_tmpist hinzugekommen. Damit geben wir jedem List-Eintrag eine eindeutige ID. Bei deinem Beispiel oben fehlt die Benamung der Objekte, deswegen heißen alle gleich, nämlich "" und es wird auch nur einer dargestellt.

WPShadow

Gut, dann hab ich da noch eine Frage! Das mit der ID hab ich inzwischen gesehen... =/ (wie blöd von mir)

Wieso kann ich hier den X-Zähler nicht weiter erhöhen als 1? Irgendwie stimmt was mit DIM nicht, vermute ich mal...

Code (glbasic) Select
// --------------------------------- //
// Project: gldb Eingabe
// Start: Tuesday, October 30, 2007
// IDE Version: 5.062

GLOBAL field_x, field_y, field$[]

field_x = 1
field_y = 1

DIM field$[field_x + 1][field_y + 1]


DDgui_Init()


DDgui_pushdialog(0,0,1023,767)

FOR y_tmp = 1 TO field_y

FOR x_tmp = 1 TO field_x

y_tmp$ = y_tmp
x_tmp$ = x_tmp
field$[y_tmp][x_tmp] = y_tmp$ + x_tmp$

DDgui_list(field$[y_tmp][x_tmp], "Testlauf lang", INTEGER(1000 / field_x), 30)

NEXT

NEXT


DDgui_spacer(10000, 30)

DDgui_button("bt_complex", "Bearb.", 0,0)

WHILE TRUE


FOR y_tmp = 1 TO field_y

FOR x_tmp = 1 TO field_x

  field$[y_tmp][x_tmp] = y_tmp$ + x_tmp$

  IF DDgui_get(field$[y_tmp][x_tmp] + "CLICKED") THEN END

NEXT

NEXT


IF DDgui_get("bt_complexCLICKED") THEN END

DDgui_show(FALSE)


SHOWSCREEN
WEND
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Schranz0r

der steigt dann aus was :D

Weil du kein Redim machst ?!? ^^

So bleibt dein Dim auch immer auf 2 feldern

PS komm ins ICQ du Hund ^^
I <3 DGArray's :D

PC:
AMD Ryzen 7 3800X 16@4.5GHz, 16GB Corsair Vengeance LPX DDR4-3200 RAM, ASUS Dual GeForce RTX™ 3060 OC Edition 12GB GDDR6, Windows 11 Pro 64Bit, MSi Tomahawk B350 Mainboard

Quentin

*ggg*
yep, Schranzor Recht geb!
Entweder die DIM'st gleich auf die gewünschte Größe oder passt dein Array mit REDIM an

WPShadow

Jetzt läuft's... =)

Binde noch ein paar funktionen ein, mal sehen wie's dann läuft!


Code (glbasic) Select
// --------------------------------- //
// Project: gldb Eingabe
// Start: Tuesday, October 30, 2007
// IDE Version: 5.062

GLOBAL field_x, field_y, field$[]

field_x = 4
field_y = 1

DIM field$[field_x + 1][field_y + 1]


DDgui_Init()


DDgui_pushdialog(0,0,1023,767)

FOR y_tmp = 1 TO field_y

FOR x_tmp = 1 TO field_x

REDIM field$[x_tmp + 1][y_tmp + 1]

y_tmp$ = y_tmp
x_tmp$ = x_tmp
field$[x_tmp][y_tmp] = x_tmp$ + y_tmp$

DDgui_list(field$[x_tmp][y_tmp], "Testlauf lang", INTEGER(1000 / field_x), 30)

NEXT

NEXT


DDgui_spacer(10000, 30)

DDgui_button("bt_complex", "Bearb.", 0,0)

WHILE TRUE


FOR y_tmp = 1 TO field_y

FOR x_tmp = 1 TO field_x

y_tmp$ = y_tmp
x_tmp$ = x_tmp

  field$[x_tmp][y_tmp] = x_tmp$ + y_tmp$

  IF DDgui_get(field$[x_tmp][y_tmp] + "CLICKED") THEN END

NEXT

NEXT


IF DDgui_get("bt_complexCLICKED") THEN END

DDgui_show(FALSE)


SHOWSCREEN
WEND
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Wenn Du 1 mehr DIMst, dann solltest Du acuh:
FOR x = 0 (in Worten: Null) TO field_x
machen...

WPShadow

Ich habe da noch eine Frage:

Ich habe versucht den Wert test in ein Textmodul einzugeben. Normalerweise sollte das der Inhalt davon in text$ stehen, oder? Wenn ich aber nun abfrage, steht da irgendwie gar nichts drin. Wie kommt das? Muß ich zusätzlich was einfügen, damit ich einen Wert erhalte?

Hier ein kleiner Teil der Eingabe:

Code (glbasic) Select
FUNCTION eingabe:
Local text$

DDgui_text("tx_text", text$, 210, 0)
DDgui_button("bt_complex_main", "OK", 0,0)

WHILE TRUE



IF DDgui_get("bt_complex_mainCLICKED")
IF text$ = "test" THEN END
ENDIF

DDgui_show(FALSE)

SHOWSCREEN

WEND



ENDFUNCTION
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Quentin

Häh?

Ich glaube du schmeist da ein wenig was durcheinander. Du fragst innerhalb der Schleife doch nur ab, ob der Button geklickt wurde. Den Text aus dem Eingabefeld müsstest du aber auch noch auslesen.

Glaube das ging in etwa so:

Code (glbasic) Select
text$ = DDgui_get$("tx_textTEXT")In deinem Beispie müsste text$ immer leer sein.

WPShadow

Achso... Das gehört extra rausgelesen? Gut zu wissen, danke! Irgendwie hab ich das durch die Beschreibung der GUI nicht ganz rausbekommen...

PS.: Danke für den Tip! Jetzt funktioniert es super! =)
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

WPShadow

Eine Frage zu DDGUI_LIST:

Wenn ich etwas mit List ausgewählt habe, ist das Feld immer aktiv geschalten. Wenn ich nun irgendwo drauf klicke, dann deaktiviert sich erst die blaue Markierung. Ist es möglich die Markierung von Anfang an zu deaktivieren und erst dann zu aktivieren, wenn man zum ersten Mal drauf klickt? Und falls ja, wie funktioniert das?

GLG

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Ja. Setz' den Selected auf -1:
Code (glbasic) Select
//! ### list ###
//! idTEXT    token1|token2|token3...
//! idCOUNT   number of items
//! idSELECT  -1(none) 0...n
//! idCLICKED inform about SELECT change
Also: DDGuiSet("ls_listeSELECT", -1)