Scroll und editierbares Textfeld in blitz 3d???
Übersicht

MosesBetreff: Scroll und editierbares Textfeld in blitz 3d??? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok brauch ich dafür jetzt zwingend ne komplette gui???
das dingens soll ungefähr so sein: Code: [AUSKLAPPEN] ;--------------------------------------------------- ; Textbox - macht aus einem string eine Textbox ; definierter Grösse ( x und y sind ; pixelangaben für die linke obere Ecke, ; w die breite in Zeichen und ; h anzahl der zeilen) ;--------------------------------------------------- Function textbox(x%,y%,w%,h%,boxtext$) . . . End Function ok das ist jetzt nur für nen font gut wo alle zeichen gleich breit sind ... besser währe natürlich mit w und h die box pixelgenau abstecken zu können meine idee für ein uneditierbares nicht scrollbares textfeld: man schreibe alle 'wörter' aus boxtext$, wobei wörter durch 1-n lehrzeichen oder "-" unterteilt werden, in eine liste und füge diese wörter zu h zeilen der breite w wieder zusammen... überlegungen: wenn ein wort länger als w ist ... abhacken und rest auf die nächste zeile verschieben wenn ein bestimmtes zeichen auftauch ... zeilenumbruch wenn ein wort mit einem oder meheren lehrzeicheb beginnt und den anfang einer zeile bilden soll ... 1. lehrzeichen weglassen in der ausgabe ist boxtext länger als es die anzeige durch w und h definiert zulässt ... letzten 3 zeichen der letzten zeile durch "..." ersetzen zum thema editieren und scrollen hab ich keinen plan wie ich das erstmal angehen und auch resurcen schonend machen könnte... ... vieleicht haben ja hier einige schon sowas in ihrer gui oder sonst irgenwie mal gemacht und ich brauch das rad nicht ein zweites mal erfinden oder können mal schreiben wie man es geschickt angehen könnte ![]() |
||
- Zuletzt bearbeitet von Moses am Do, Nov 25, 2004 20:10, insgesamt 2-mal bearbeitet
Moses |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
*nochmalhochrück* | ||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
mit der Funktion Mid$() kannst du jedes Zeichen eines Strings durchgehen. Mit Stringwidth() kannst du gucken, ob der String mit dem aktuellen Font länger ist als w. Wenn das der Fall ist, schneidest du alles beim letzten Leerzeichen (was du dir am besten merkst) ab. Falls kein Leerzeichen da ist (btw: Leerzeichen hat den ASCII Code 32) hackst du es einfach so ab. Mit Fontheight weißt du wie hoch dein Text ist. Wenn du also bemerkst, dass deine Position plus Fontheight (also nächste Zeile) größer ist als h, dann machst du die 3 punkte hinten ran. Es ist machbar. Habe auch Code hier. Kriegst du aber nicht *bätsch*. ![]() Ist aber wirklich nicht schwer. Viel Glück MfG D2006 |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ma zu dem thema:
ich hab mir ma für nen chat ne eigene text input box geschrieben, da ich bb 2d hab und nicht bb plus und keine lust hatte ne ganze fertige gui einzubinden. ich hab eigentlich alles hinbekommen: text eingabe, zeichen löschen, zeichen an beliebiger stelle einfügen, scrollen links rechts mit pfeiltasten, end, pos1 funktion ... nur mit dem cursur hab ich das nicht gescheit hinbekommen: ich hab halt mit fontwidth ermittelt umwie weit der cursor nach links oder rechts muss. es geht auch nur das der cursor bei manchen buchstaben halt dummerweise genau auf dem zeichen ist z.b bei I, aber einfach z.b immer 0.1 zum abstand dazu geht natürlich auch nicht, weil sich das dann nach der zeit addiert und dann gar nicht mehr passend ist. die einzige möglichkeit wäre halt, dass ich halt festlege für jeden buchstaben um wieviel ich den curso verschieben müsste, was aber ne ziemlich nervige arbeit wäre. ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group