Automatischer Zeilenumbruch bei Editor- oder StringGadget?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
Borstensohn
Beiträge: 10
Registriert: 07.11.2004 18:47
Wohnort: Remscheid, NRW

Automatischer Zeilenumbruch bei Editor- oder StringGadget?

Beitrag von Borstensohn »

Hallo erst mal,

ich bin total neu hier und auch ganz neu in PureBasic, und da ist auch schon gleich ein Problem aufgetaucht.

Wenn ich in anderen Programmiersprachen in Edit- oder Memofelder, oder wie sie auch immer sonst genannt werden, Text eingebe, bricht dieser an der Stelle, wo halt der rechte Rand des Feldes ist, automatisch um. Warum nicht bei PureBasic?

Wenn das nicht standardmäßig möglich ist, wie kann ich es selber programmieren? Also, der Benutzer tippt, sagen wir, 80 Zeichen ein, und danach wird auf den Anfang der nächsten Zeile gesprungen.

Ich hab wie verrückt in diesem und im englischen Forum gesucht, aber ich fand keine richtige Antwort. Falls ich was übersehen habe, bitte bedenkt, dass ich Neuling bin.

Bin gespannt auf Antworten, danke schon mal im Voraus.

Gruß
Borstensohn
ON ERROR GOTO BED
Christi
Beiträge: 154
Registriert: 31.08.2004 14:17
Kontaktdaten:

Beitrag von Christi »

Servus

Code: Alles auswählen

OpenWindow(0, 0, 0, 300, 300, #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test")

CreateGadgetList(WindowID())
x = EditorGadget(0, 0, 0, 300, 300)
SendMessage_(x, #EM_SETTARGETDEVICE, 0, 0)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
cu
Benutzeravatar
Borstensohn
Beiträge: 10
Registriert: 07.11.2004 18:47
Wohnort: Remscheid, NRW

Beitrag von Borstensohn »

Danke für die schnelle Antwort, Christi!
In meiner Demo-Version funktioniert es zwar nicht, aber die Vollversion ist schon bestellt. :allright:
ON ERROR GOTO BED
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

Man kann auch genauer festlegen, wann umgebrochen werden soll:

Code: Alles auswählen

Procedure.l Twip(mm.l)
  ProcedureReturn mm / (25.4/1440)
EndProcedure

OpenWindow(0, 0, 0, 300, 300, #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test")

CreateGadgetList(WindowID())
x = EditorGadget(0, 0, 0, 300, 300)
; Umbruch nach 80mm
SendMessage_(x, #EM_SETTARGETDEVICE, GetWindowDC_(x), Twip(80))

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

@Thorsten1867
Nutzt Du immer noch PB3.xx?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kai
Beiträge: 264
Registriert: 29.09.2005 20:58
Computerausstattung: iMac 2019
Wohnort: Hannover
Kontaktdaten:

Beitrag von Kai »

Was mich viel mehr interessieren würde,
ob es auch beim StringGadget möglich ist,
hab vergeblich inner MSDN gesucht und nix gefunden. :freak:
Meine Homepage - Aktuelle Projekte - Launcher
Letzte PB-Version - Window 7 x86
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Mit StringGadget gehts auf jeden fall nicht. (Bitte richtig interpretieren)
Bei Edit-Control mit MultiLine style bin ich mir nicht sicher, aber es geht wohl
nicht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Dark Skillu
Beiträge: 103
Registriert: 18.03.2007 15:03

Beitrag von Dark Skillu »

Ich benutze PureBasic 4.0.
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

ts-soft hat geschrieben:@Thorsten1867
Nutzt Du immer noch PB3.xx?
Sorry, habe den obigen Code kopiert und geändert. Hier in PB 4.10:

Code: Alles auswählen

Procedure.l Twip(mm.f)
  ProcedureReturn Int(mm * (1440/25.4))
EndProcedure

OpenWindow(0, 0, 0, 300, 300, "Test", #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)

CreateGadgetList(WindowID(0))
x = EditorGadget(0, 0, 0, 300, 300)
; Umbruch nach 80mm
SendMessage_(x, #EM_SETTARGETDEVICE, GetWindowDC_(x), Twip(80))

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Berti27
Beiträge: 52
Registriert: 22.03.2008 14:12
Wohnort: Mecklenburg Vorpommern

Zeilenumbruch im Editor-Gadget

Beitrag von Berti27 »

Hallo!
Dieses Problem interessiert mich auch sehr. Habe es mal wohl sehr umständlich gelöst mit Font int fester Breite (Schreibmaschinenschrift) und Abfrage der Zeilenlänge sowie Leerzeichen. Also eine nicht wirklich gute Lösung!
Die angegebenen Codes funktionieren bei mir nicht. Verwende PB 4.10 in Windows und Linux.Compiler kennt den "SendMessage"-Befehl nicht.
Mit freundlichen Grüßen
Berti27
Antworten