Gamestudio Links
Zorro Links
Newest Posts
Accounts
by AndrewAMD. 06/19/25 20:11
Online Gamestudio manual is down
by Aku_Aku. 06/18/25 14:10
SGT_FW
by Aku_Aku. 06/17/25 15:37
ADX values
by Yogpot. 06/15/25 17:42
IBKR datasave problem
by BrainSailor. 06/13/25 09:42
Marking Exit trades
by jcl. 06/11/25 14:02
AUM Magazine
Latest Screens
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Zeal-X2
Who's Online Now
4 registered members (henrybane, AndrewAMD, Quad, TipmyPip), 208 guests, and 3 spiders.
Key: Admin, Global Mod, Mod
Newest Members
aaaddasaaaadaaa, WardyJoubertIII, NewbieZorro, Squarei, tian
19140 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
Eingabefeld für Texte & Zahlen #351307
12/23/10 14:49
12/23/10 14:49
Joined: Nov 2008
Posts: 46
D
DrBong Offline OP
Newbie
DrBong  Offline OP
Newbie
D

Joined: Nov 2008
Posts: 46
Hallo leute, ich hab ein kleines Programm geschrieben, es ist sogut wie fertig aber ich habe ein kleines problem mit dem Eingabefeld....
und zwar, es soll möglich sein in dem eingabefeld 400 zeichen rein zu schreiben die in einem dem entsprechen großen string gespeichert werden.. ABER das eingabefeld ist für 400 zeichen eindeutig zu klein deswegen wird es einfach aus dem eingabefeld weiter raus geschrieben... wie kann ich das ändern, das sich der text nachhinten verschiebt und nur das was im eingabefeld steht sichtbar ist ?

Php Code:

STRING* Text_1 = "#400";

PANEL* pW3_1 = 
{
  pos_x = 33;
  pos_y = 32;
  layer = 2;
  bmap = Window3;
  flags = OVERLAY | SHOW;
  on_click = eText_1;
}

TEXT* tText_1 =
{
	pos_x = 53;
	pos_y = 35;
	layer = 3;
	font = fArial_2;
	string = Text_1;
	flags = SHOW;
}

function eText_1()
{
	sys_message("[Enter]");
	wait(1);
	inkey(Text_1);
}
 




So ungefehr sieht mein code aus, ich komm wirklich nicht mehr weiter... ihr habt mir schon öffters geholfen und ich hoffe ihr werdet es auch dieses mal, ich bedank mich schon im vorraus

Mfg,
DrBong

Re: Eingabefeld für Texte & Zahlen [Re: DrBong] #351309
12/23/10 15:12
12/23/10 15:12
Joined: Jul 2010
Posts: 283
Germany
J
jenGs Offline
Member
jenGs  Offline
Member
J

Joined: Jul 2010
Posts: 283
Germany
Also ein Textfeld mit Zeilenumbruch zu schreiben ist ziemlich einfach. Aber soweit ich dich verstehe, willst du das Verhalten eines standart Editfields aus Windows nachahmen.
Das ist leider sehr schwierig, weil gs in sachen Texteingabe nur grundlegende funktionen bereitstellt.
Du kannst z.B den Text, der den String darstellt mit
text.size_x
horizontal begrenzen.
Das Problem: Der String wird einfach nur in der Darstellung eingekürzt, man kann ihn jedoch nicht Horizontal skrollen.
Problem 2: Das Ganze funktioniert nur mit Truetype fonts.

Möglichkeit 2 (die aber nicht funktioniert laugh
Man könnte seinen Text auf einer Targetmap rendern und diese dann als ein Panel->window element darstellen und dementsprechend skrollen.
Leider folgendes Problem:
Die targetmap wird nicht geupdated, das heißt, Eingaben werden nicht richtig dargestellt, da der Hintergrund (der alte Text) nicht geleert wird.
Weiteres Problem:
Texte auf Targetmaps sehen zum kotzen aus.

Ich hoffe ich hab dich jetzt nicht mutlos gemacht.

LIBGUI, ein von einem user erstelltes Gui system enthält eine leichte annäherung an ein Editfield. Leider kann man dort z.B. nicht mit dem Cursor herumwandern, sondern nur hinzufügen und löschen. Ich glaube er hat sogar das Skrollen implementieren können, bin mir aber nicht sicher.

Re: Eingabefeld für Texte & Zahlen [Re: jenGs] #351313
12/23/10 15:35
12/23/10 15:35
Joined: Nov 2008
Posts: 46
D
DrBong Offline OP
Newbie
DrBong  Offline OP
Newbie
D

Joined: Nov 2008
Posts: 46
Originally Posted By: jenGs

LIBGUI, ein von einem user erstelltes Gui system enthält eine leichte annäherung an ein Editfield. Leider kann man dort z.B. nicht mit dem Cursor herumwandern, sondern nur hinzufügen und löschen. Ich glaube er hat sogar das Skrollen implementieren können, bin mir aber nicht sicher.


Ja ich kenne die LIBGUI aber der Code ist mir da zu verwirrend grin

Naja das mit der maus wär mir eigendlich egal, aber das mit dem scrollen muss ich irgendwie hinktriegen smirk

EDIT: Danke das mit size_x hat super geklappt, hätt eigendlich auch selber drauf kommen können blush

Last edited by DrBong; 12/23/10 15:47.
Re: Eingabefeld für Texte & Zahlen [Re: DrBong] #351315
12/23/10 15:54
12/23/10 15:54
Joined: May 2007
Posts: 2,043
Germany
Lukas Offline

Programmer
Lukas  Offline

Programmer

Joined: May 2007
Posts: 2,043
Germany
Erstmal lol, dass hier ein Tippfehler nochmal kopiert wurde ("LIBGUI"). grin

Aber so schwer ist es doch nicht, mit LBGUI eine Textbox zu erstellen, die genau das macht, was du willst. Es selbst zu programmieren wäre wohl schwieriger. wink

Code:
#include <acknex.h>
#include <default.c>
#include "lbgui.h"

...

void main ()
{
	...
	
	wait(1);
	
	...
	
	LBGUI_open();
	on_exit = LBGUI_close;
	LBG_flags |= LBGUI_PROTECTMOUSE;
	
	...
	
	LBG_EDITBOX* editbox1 = LBG_create_editbox (0, 64, 320, 256, 16, 4, "Editbox", LBG_ebmaps(editbox_left_tga,editbox_middle_tga,editbox_right_tga), EF_SHOW);
	// Du musst hier natürlich deine eigenen Bitmaps einsetzen ;)
	editbox1.max_length = 400; // Auf 400 Zeichen beschränken



Mit diesem Code kannst du eine Textbox erstellen, die auf 400 Zeichen beschränkt ist und automatisch mitscrollt. wink

Wirf doch mal einen Blick ins LBGUI-Manual und in smalldemo.c wink

Re: Eingabefeld für Texte & Zahlen [Re: Lukas] #351334
12/23/10 19:25
12/23/10 19:25
Joined: Nov 2008
Posts: 46
D
DrBong Offline OP
Newbie
DrBong  Offline OP
Newbie
D

Joined: Nov 2008
Posts: 46
ja hab vergessen wie genau die GUI heißt und habs oben abgeguckt ^^

gibt es auch eine möglichkeit die textgröße einzustellen bei deiner GUI ? hab nix dazu gefunden smirk

Re: Eingabefeld für Texte & Zahlen [Re: DrBong] #351356
12/23/10 21:31
12/23/10 21:31
Joined: May 2007
Posts: 2,043
Germany
Lukas Offline

Programmer
Lukas  Offline

Programmer

Joined: May 2007
Posts: 2,043
Germany
Klar, änder einfach den font. Entweder, indem du editbox->text->font änderst nachdem du die Editbox erstellt hast, oder indem du folgendes machst, bevor du sie erstellst:
Code:
ptr_remove(LBG_editbox_font);
LBG_editbox_font = font_create("Arial#20bi");



Re: Eingabefeld für Texte & Zahlen [Re: Lukas] #351382
12/24/10 01:27
12/24/10 01:27
Joined: Nov 2008
Posts: 46
D
DrBong Offline OP
Newbie
DrBong  Offline OP
Newbie
D

Joined: Nov 2008
Posts: 46
Wirklich Tolle GUI.. hab bisel rumprobiert aber in meinem fall ist die leider sehr unpassend.. ich müsste fast den ganzen code neu schreiben und es werden viel zu viele objekte für "ein kleines" programm geladen..

DANKE dir für deine Hilfe aber das mit screllen werd ich wohl vergessen müssen....

Eine frage hab ich aber noch... strings kann man ja mit inkey() ändern... geht es auch bei variablen ?
oder muss ich da variablen in strings conventieren und umgekehrt ? smirk

Re: Eingabefeld für Texte & Zahlen [Re: DrBong] #351384
12/24/10 02:05
12/24/10 02:05
Joined: Jul 2010
Posts: 283
Germany
J
jenGs Offline
Member
jenGs  Offline
Member
J

Joined: Jul 2010
Posts: 283
Germany
Inkey funktioniert nur mit strings. Es ist aber ziemlich einfach einen String in eine Zahl zu konvertieren. str_to_num /_int /_float

Wegen dem skrollen.
Du kannst mit str_width die länge eines Strings messen. Wenn er eine bestimmte länge erreicht hat, dann schneide den Teil des Strings aus der sichtbar sein soll. Sozusagen als Kopie.
Hab ich mal versucht, hat auch ziemlich gut funktioniert.
Hatte aber ein paar probleme mit Leerzeichen, da die von str_width nicht erkannt werden.
Wenn du font maps benutzt sind deine Buchstaben alle gleich groß (und sehen ziemlich häßlich aus). Dann weißst du wie viele Zeichen in ein Editfeld passen und kannst den string dementsprechend beschneiden. Dass Problem wird die Cursorposition sein.
LBGUI (keine ahnung wie ich auf LIB kam) ist ziemlich solide. Hat aber eine markante schwäche: Geschwindigkeit. Versteh mich nicht falsch Lukas, dein Programm hat nicht umsonst den Contest gewonnen, jedoch erstellt es mit jedem updatecyklus neue bitmaps (und für Fenster werden sie sogar jedes mal neu geblittet).
Und da 3dgamestudio den Garbage nich collected, hat man eine menge toter bitmaps im hintergrund (oder wird eine erstellte Bitmap in einem BMAP* pointer komplett überschrieben, wenn man dem Pointer eine andere Bitmap zuweißt?)
Das raubt dem ganzen etwas speed, besonders, wenn man aufwändige 3d berechnungen im Hintergrund durchführt.

Re: Eingabefeld für Texte & Zahlen [Re: jenGs] #351390
12/24/10 04:38
12/24/10 04:38
Joined: May 2007
Posts: 2,043
Germany
Lukas Offline

Programmer
Lukas  Offline

Programmer

Joined: May 2007
Posts: 2,043
Germany
Code:
LBGUI (keine ahnung wie ich auf LIB kam) ist ziemlich solide. Hat aber eine markante schwäche: Geschwindigkeit. Versteh mich nicht falsch Lukas, dein Programm hat nicht umsonst den Contest gewonnen, jedoch erstellt es mit jedem updatecyklus neue bitmaps (und für Fenster werden sie sogar jedes mal neu geblittet).
Und da 3dgamestudio den Garbage nich collected, hat man eine menge toter bitmaps im hintergrund (oder wird eine erstellte Bitmap in einem BMAP* pointer komplett überschrieben, wenn man dem Pointer eine andere Bitmap zuweißt?)
Das raubt dem ganzen etwas speed, besonders, wenn man aufwändige 3d berechnungen im Hintergrund durchführt.


Die Bitmaps werden nur neu geblittet, wenn du die Größe eines Fensters änderst. Die alten werden vorher mit ptr_remove entfernt. Die einzige Alternative dazu wäre panel-windows zu verwenden, und du hast ja selbst LBGUI auf diese Weise verändert. wink
Wenn du mit einem "Udpatezyklus" jeden Frame meinst, liegst du falsch. Wenn du die update-Funkionen meinst, dann ist das behaviour-by-design, denn die update-Funktionen sind dazu da, um ein Objekt auf alle möglichen Änderungen anzupassen, und falls die Bitmaps oder die Größe verändert wurde, muss halt nochmal geblittet werden. Die update-Funktionen sind auch nicht dafür da, jeden Frame aufgerufen zu werden. wink

Solange du nicht alles mit Fenstern zuhaust, sollte LBGUI sich kaum auf die Performance auswirken. Die einzige Schwäche ist das Ändern der Größe von Fenstern. wink

Re: Eingabefeld für Texte & Zahlen [Re: Lukas] #351402
12/24/10 11:31
12/24/10 11:31
Joined: Jul 2010
Posts: 283
Germany
J
jenGs Offline
Member
jenGs  Offline
Member
J

Joined: Jul 2010
Posts: 283
Germany
Oh, sorry. Das ptr_remove hab ich übersehen. laugh

Last edited by jenGs; 12/24/10 11:31.
Page 1 of 2 1 2

Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1