Ist die Ausgabelänge in einer Statuszeile beschränkt?

Anfängerfragen zum Programmieren mit PureBasic.
pebo
Beiträge: 66
Registriert: 01.12.2006 21:08
Wohnort: 66450 Bexbach

Ist die Ausgabelänge in einer Statuszeile beschränkt?

Beitrag von pebo »

Hallo PB-Gemeinde,

da ich neu in der PureBasic-Gemeinde und insbesondere hier im Forum bin, möchte ich mich zuerst mal kurz vorstellen:
man ruft mich Peter, bin Baujahr 59 (aber noch gut erhalten) und lebe im schönen Saarland. Meine Hobbies sind neben dem Computer noch Drachen steigen lassen, bzw. Lenkdrachen fliegen.

Ich mache gerade meine ersten Gehversuche in PB und habe auch schon die erste Frage :wink:
Damit ihr besser versteht was ich meine, hier mal ein kurzer Beispielcode, wenn ihr den laufen lässt seht ihr was ich meine:

Code: Alles auswählen

Enumeration
  #Window_0
  #StatusBar_0
EndEnumeration

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 176, 34, 750, 300, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateStatusBar(#StatusBar_0, WindowID(#Window_0))
    	StatusBarText(#StatusBar_0, #Window_0, " abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz")
    EndIf
  EndIf
EndProcedure

Open_Window_0()

Repeat ; Start of the event loop
  
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  GadgetID = EventGadget() ; Is it a gadget event?
  EventType = EventType() ; The event type
  ;You can place code here, and use the result as parameters for the procedures
  If Event = #PB_Event_Gadget
  EndIf
  
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
Es dreht sich um die Statuszeile. Wenn das Fenster so ca. 690 breit ist, wird mir der Text den ich in die Statuszeile eingefügt habe, bis zum Ende angezeigt. Mache ich das Fenster breiter als 690, wird der Text nicht mehr bis zum Ende ausgegeben. In meinem Beispiel ist das Fenster 750 breit und ich habe genügend Text eingefügt der bis zum Ende der Statuszeile gehen müsste.
Meine Frage: Ist die Ausgabelänge in einer Statuszeile irgendwie eingeschränkt, hängt das mit der Bildschirmauflösung zusammen oder gibt es sonst einen Grund warum der Text einfach abgeschnitten wird?

Bin für jeden Tipp dankbar!

Viele Grüsse
Peter
Zuletzt geändert von pebo am 27.12.2006 21:14, insgesamt 1-mal geändert.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Ist die Ausgabelänge in einer Statuszeile beschränkt?

Beitrag von Kiffi »

Hallo pebo,

willkommen im und an Board :-)

> Meine Frage: Ist die Ausgabelänge in einer Statuszeile irgendwie
> eingeschränkt, hängt das mit der Bildschirmauflösung zusammen
> oder gibt es sonst einen Grund warum der Text einfach abgeschnitten
> wird?

Das scheint eine Beschränkung von Windows zu sein. Im englischen Forum
hat Fred so etwas erwähnt: http://www.purebasic.fr/english/viewtopic.php?t=22711

Bei mir (Windows XP) macht er bei 128 Zeichen Schluss (kann aber bei
anderen Windows-Versionen auch anders sein).

Grüße ... Kiffi
a²+b²=mc²
pebo
Beiträge: 66
Registriert: 01.12.2006 21:08
Wohnort: 66450 Bexbach

Re: Ist die Ausgabelänge in einer Statuszeile beschränkt?

Beitrag von pebo »

Hallo Kiffi,
....schnipp
Das scheint eine Beschränkung von Windows zu sein. Im englischen Forum
hat Fred so etwas erwähnt: http://www.purebasic.fr/english/viewtopic.php?t=22711

Bei mir (Windows XP) macht er bei 128 Zeichen Schluss (kann aber bei
anderen Windows-Versionen auch anders sein).

Grüße ... Kiffi
vielen Dank für die Info!
Schade, wenn ich den Beitrag im englischen Forum richtig übersetzt habe, sind einfach nicht mehr Zeichen möglich /:->

Gruss
Peter
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Hallo pebo,

auch von mir willkommen im Forum.

Vielleicht mit "AddStatusBarField(Breite)" die Statusbar aufteilen.

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Andreas
ToolbarKönig
Beiträge: 142
Registriert: 08.09.2004 08:33

Re: Ist die Ausgabelänge in einer Statuszeile beschränkt?

Beitrag von Andreas »

pebo hat geschrieben:Hallo Kiffi,
Schade, wenn ich den Beitrag im englischen Forum richtig übersetzt habe, sind einfach nicht mehr Zeichen möglich /:->
Gruss
Peter
Das sollte Dich aber nicht daran hindern mehr Text anzuzeigen.

Code: Alles auswählen

Enumeration
  #Window_0
  #StatusBar_0
  #Text_0
EndEnumeration

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 10,10,900,400, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
  If CreateGadgetList(WindowID(0))
  Text$ = "abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz" 
  Text$ + " abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz" 
  Text$ + " abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz" 
  Text$ + " abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz" 
  Text$ + " abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz 0123456789  abcdefghijklmnopqrstuvwxyz" 
  TextGadget(#Text_0, 3, 3,880,70, Text$)
    If CreateStatusBar(#StatusBar_0, WindowID(#Window_0))
       SendMessage_(StatusBarID(#StatusBar_0),#SB_SETMINHEIGHT,80,0);minimale Hoehe (80pixel)setzen
       SendMessage_(StatusBarID(#StatusBar_0),#WM_SIZE,0,0);neuzeichnen
       SetParent_(GadgetID(#Text_0),StatusBarID(#StatusBar_0));Textgadget in Statusbar
    EndIf
  EndIf
  EndIf
EndProcedure

Open_Window_0()

Repeat ; Start of the event loop
 
  Event = WaitWindowEvent() ; This line waits until an event is received from Windows
  WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
  GadgetID = EventGadget() ; Is it a gadget event?
  EventType = EventType() ; The event type
  ;You can place code here, and use the result as parameters for the procedures
  If Event = #PB_Event_Gadget
  EndIf
 
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
Gruss Andreas
pebo
Beiträge: 66
Registriert: 01.12.2006 21:08
Wohnort: 66450 Bexbach

Beitrag von pebo »

Hallo Andreas,

danke für dein Beispiel!
So ganz blick ich da noch nicht durch, zurzeit seh ich nur das Du mit API-Aufrufen gearbeitet hast. Aber ich bin ja noch Anfänger und kann nur lernen von solchen Beispielen :allright:

Gruss
Peter
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> So ganz blick ich da noch nicht durch

Andreas nimmt ein TextGadget (welches die Zeichenbegrenzung ja nicht hat)
und pflanzt es mit SetParent_() in die Statusbar ein.

Falls noch weitere Unklarheiten sind: Frag ruhig!

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
H.Brill
Beiträge: 497
Registriert: 15.10.2004 17:42
Wohnort: 66557 Neunkirchen

Beitrag von H.Brill »

pebo hat geschrieben:Hallo PB-Gemeinde,

da ich neu in der PureBasic-Gemeinde und insbesondere hier im Forum bin, möchte ich mich zuerst mal kurz vorstellen:
man ruft mich Peter, bin Baujahr 59 (aber noch gut erhalten) und lebe im schönen Saarland. Meine Hobbies sind neben dem Computer noch Drachen steigen lassen, bzw. Lenkdrachen fliegen.

Peter
Hallo Peter und willkommen.
Schön, daß wir noch nen Saarländer bei uns haben. Bin auch einer
(Baujahr 1958 ) und wohne in Illlingen bei Neunkirchen /Saar.
Wo kommst du denn genau her ?
PB 6.10
Antworten