CraeteWindow Wegmachen
Übersicht

![]() |
ToeBBetreff: CraeteWindow Wegmachen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab mir in BB3D die Function "CreateWindow" ( aus B+ ) selber geschrieben, also fast ...
Code: [AUSKLAPPEN] Function CreateWindow$(title$,x,y,width,height) ;TaskLeiste : For i = 20 To 1 Step -1 Color 0,0,((i*10)) Rect x,y+i,width,1 Next If MouseY() > y And MouseY() < y+20 Then If MouseX() > x+width-20 And MouseX() < x+width-20+15 Then DrawImage XK(2),x+width-20,y+5 If MouseDown(1) Then X_Ende = True Else DrawImage XK(1),x+width-20,y+5 EndIf If MouseX() > x And MouseX() < x+width Then If MouseDown(1) Then Schieben = True EndIf Else DrawImage XK(1),x+width-20,y+5 EndIf If X_Ende = True Then DrawImage XK(3),x+width-20,y+5 If Not MouseDown(1) Then X_Ende = False EndIf Color 255,255,255 If Len(title$) > width/6 Then title$ = Mid(title$,1,Len(title$)) Text x+20,y+4,title$ ;Fenster : Color 100,100,100 Rect x,y+20,width,height,1 Color 0,0,200 Rect x,y+20,width,height,0 Return x+"."+y+"."+width+"."+height+"."+title$ End Function Wie kann ich das machen, wenn man auf das "X" drückt ( In dem falle das Array "XK(1oder2)" ) Das dann das fenster wech geht ? Und Noch was : Wie mach ich das, wenn der Title größer als die Fenstergröße ist, das man dann die buchstaben, die zuviel sind, löscht ? Danke schonmal ! mfg und thx Crack |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
- Mach dein Fenster als Type, wenn Du es schliesst lösch es mit ql:delete.
- ql:viewport |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, das ViewPort ist ja schön und gut, aber wenn ich das da hinschreibe, dann malt der nur noch die "TaskLeite" uns sonst nichts !
Code: [AUSKLAPPEN] Function CreateWindow$(title$,x,y,width,height) w.w = New w w\x = x w\y = y w\width = width w\height = height w\title$ = title$ End Function Function Window() For w.w = Each w ;TaskLeiste : If w.w <> Null For i = 20 To 1 Step -1 Color 0,0,((i*10)) Rect w\x,w\y+i,w\width,1 Next If MouseY() > w\y And MouseY() < w\y+20 Then If MouseX() > w\x+w\width-20 And MouseX() < w\x+w\width-20+15 Then DrawImage XK(2),w\x+w\width-20,w\y+5 If MouseDown(1) Then w\ende = True Else DrawImage XK(1),w\x+w\width-20,w\y+5 EndIf If MouseX() > w\x And MouseX() < w\x+w\width Then If MouseDown(1) Then w\schieben = True EndIf Else DrawImage XK(1),w\x+w\width-20,w\y+5 EndIf If w\ende = True Then DrawImage XK(3),w\x+w\width-20,w\y+5 If Not MouseDown(1) Then Delete w.w EndIf ;Fenster : Color 100,100,100 Rect w\x,w\y+20,w\width,w\height,1 Color 0,0,200 Rect w\x,w\y+20,w\width,w\height,0 Color 255,255,255 w\mox = MouseX() w\moy = MouseY() EndIf Color 255,255,255 Viewport w\x,w\y,w\width,20 Text w\x+20,w\y+4,w\title$ Next End Function |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Yogu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Crack93 hat folgendes geschrieben:
Zitat: Und Noch was : Wie mach ich das, wenn der Title größer als die Fenstergröße ist, das man dann die buchstaben, die zuviel sind, löscht ?
Setze die passende Font, speicher den Text in einer Variable (z.B. Titel$) und frage dann die Länge über StringWidth ab (Laenge = StringWidth(Titel$), vergleiche das mit der maximalen Länge und wenn es zu lang ist, gehe in einer For-Schleife immer abwärts ein Buchstaben weniger (Left(Titel$, i)). Beachte auch die Länge der ... am Schluss, füge sie einfach dem abgeschnittenen Titel hinzu. Also, zusammengefasst: Code: [AUSKLAPPEN] ;Grafikmodus auf kleine Auflösung, Fenstermodus
Graphics 200,50,16,2 ;Titel setzen Titel$ = "Viel zu langer Titeltext, der durch drei Punkte abgekürzt werden muss" ;Schriftart laden Font = LoadFont("MS Sans Serif", 14,True) SetFont Font ;Hauptschleife Repeat ;Text berechnen Txt$ = GetTitel(Titel) ;Titel anzeigen Text 4,4,Txt$ Flip ;Mit Tastatur skalieren If KeyDown(203) Then Graphics GraphicsWidth()-2, GraphicsHeight(), 16,2 If KeyDown(205) Then Graphics GraphicsWidth()+2, GraphicsHeight(), 16,2 ;Per Mausdruck beenden If MouseDown(1) Then End If KeyDown(1) Then End Forever Function GetTitel$(Titel$) Local Laenge, i ;Wenn Titel zu lang (-10 wegen Rand) If StringWidth(Titel$) > GraphicsWidth()-10 Then ;Länge speichern Laenge = Len(Titel) ;In einer Schleife den Titel immer mehr kürzen For i = Laenge To 0 Step -1 ;Neuen Titel speichern Titel = Left(Titel,i) ;Wenn Titellänge ok If StringWidth(Titel+"...") <= GraphicsWidth()-8 Then ;Punkte hinzufügen, Schleife verlassen Titel = Titel + "..." : Exit End If Next End If Return Titel$ End Function |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Selbstredend musst du Viewport nach der Textausgabe wieder auf den gesamten Bildschirm setzen.... ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
oh.... ![]() Jetzt hab ich das gemacht mit dem "Delete w.w". Aber da kommt imma nur Zitat: Illigal Memory Adress ???
Code: [AUSKLAPPEN] Function CreateWindow$(title$,x,y,width,height)
w.w = New w w\x = x w\y = y w\width = width w\height = height w\title$ = title$ End Function Function Window() For w.w = Each w ;TaskLeiste : If w.w <> Null For i = 20 To 1 Step -1 Color 0,0,((i*10)) Rect w\x,w\y+i,w\width,1 Next If MouseY() > w\y And MouseY() < w\y+20 Then If MouseX() > w\x+w\width-20 And MouseX() < w\x+w\width-20+15 Then DrawImage XK(2),w\x+w\width-20,w\y+5 If MouseDown(1) Then w\ende = True Else DrawImage XK(1),w\x+w\width-20,w\y+5 EndIf If MouseX() > w\x And MouseX() < w\x+w\width Then If MouseDown(1) Then w\schieben = True EndIf Else DrawImage XK(1),w\x+w\width-20,w\y+5 EndIf If w\ende = True Then If Not MouseDown(1) Then Delete w.w DrawImage XK(3),w\x+w\width-20,w\y+5 EndIf Color 255,255,255 Viewport w\x,w\y,w\width-25,20 Text w\x+20,w\y+4,w\title$ Viewport 0,0,800,600 ;Fenster : Color 100,100,100 Rect w\x,w\y+20,w\width,w\height,1 Color 0,0,200 Rect w\x,w\y+20,w\width,w\height,0 Color 255,255,255 w\mox = MouseX() w\moy = MouseY() EndIf Next End Function |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: If w\ende = True Then
If Not MouseDown(1) Then Delete w.w DrawImage XK(3),w\x+w\width-20,w\y+5 EndIf Wie soll er das w\x denn finden, wenn "w" kurz vorher gelöscht wurde^^ |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja aba wenn ich es geändert hab, dann meckert der imma noch !
~Edit~ Okay, funzt ! |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group