Y=10 I Locate(10,Y+10) , trotzdem wird alles überschrieben

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Y=10 I Locate(10,Y+10) , trotzdem wird alles überschrieben

Beitrag von captain third »

moin,

sorry wegn dem komüschen titel,mir fiel nix ein,also mein problem
ich hab versucht mit ExamineDirectory() im openscreen() die ordner und dateien anzuzeigen,mein problem ist aber,das sich alles überschreibt...hier ist mein code

Code: Alles auswählen

Enumeration
 #Maus
EndEnumeration
InitSprite()
InitMouse()
InitKeyboard()
OpenScreen(800,600,16,"Test")
LoadSprite(#Maus,"C:\Eigene Dateien\Eigene Bilder\Maus.bmp")
Verzeichnis$=("C:\")
Y=10
Menu=1
Repeat
ExamineMouse()
ExamineKeyboard()
ClearScreen(0,0,0)
Select Menu
 Case 1
  ExamineDirectory(#PB_Any,Verzeichnis$,"*.*")
  DisplaySprite(#Maus,MouseX(),MouseY())
   FileType = NextDirectoryEntry()
   If FileType
    FileName$ = DirectoryEntryName()
     If FileType = 2 ; Directory type
      FileName$ = "(Ordner) "+FileName$  
     EndIf
   EndIf
   Repeat
    FileType = NextDirectoryEntry()
    If FileType
     FileName$ = DirectoryEntryName()
     If FileType = 2 ; Directory type
      FileName$ = "(DIR) "+FileName$  
     EndIf
     StartDrawing(ScreenOutput())
      FrontColor(128,128,128)
      DrawingMode(1)
      Locate(10,Y+10)
      DrawText(FileName$)
     StopDrawing()
    EndIf
   Until FileType = 0 
   
  EndSelect
  
  If MouseButton(2)
   quit=1
  EndIf
 FlipBuffers()
Until quit=1
End 
könnt ihr mir helfen?
natoll,jetzt muss ich noch einen Rechner zusammenbaun der 24 stunden am Tag online ist und meinen Server für mein Projekt Order of Blance laufen lässt
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Verzeichniss

Beitrag von Hroudtwolf »

Da ich weiß was du vorhast kann ich dir diesen Tip geben.

Lese das Directory aus und schreibe die Dateinamen in ein Aray.
z.B. a$(x)

Code: Alles auswählen

a$(x)=Filename$
x=x+1
x ist dann dein Grössenwert für das Verzeichniss.
Du mußt dann einen Font z.B. mit der Grösse von 10 laden.
Erstelle nun einen Sprite mit der Größe ->Anzahl der A$-Einträge mal 10.
Mit:


Code: Alles auswählen

repeat
Locate (5,z)
z=z+1
text$=a$(z)
Drawtext (text$)
until z>x
natürlich mit Drawingmode(1) füllst du nun dein Sprite mit dem Verzeichnissinhalt.

Kopiere nun dein Sprite in dein Fenstersprite.

Fertig !!!
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Beitrag von captain third »

äääh,danke....nach ungefähr 3 mal lesn habschs kapiert... :mrgreen:
natoll,jetzt muss ich noch einen Rechner zusammenbaun der 24 stunden am Tag online ist und meinen Server für mein Projekt Order of Blance laufen lässt
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Sorry

Beitrag von Hroudtwolf »

tschuldigung... :mrgreen:
Kann nicht so gut Erklären .
[Ich arbeite aber dran]
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

So gehts:

Code: Alles auswählen

...
Locate(10,Y) 
Y+10
...
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Leo
Beiträge: 420
Registriert: 26.10.2004 18:26

Beitrag von Leo »

Y bleibt immer 10 und als Parameter wird immer 20 übergeben.
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

@IceSoft & @Leo

Interessante Theorien. Für die jenigen die eure Erklärungen verstehen.
Nur schade , daß mein Intelekt nicht ausreichend dafür ist.
Das wichtigste ist aber ,daß der Verfasser seine Nachricht
versteht.
:lol:
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Beitrag von captain third »

danke euch

[Edit]
ok es funktioniert,aber jetzt kommt der große aber :mrgreen:
jetzt wird des zwar angezeigt,aber :

A: es flackert
B: kommt gleich

ich wollte nachdem des funktioniert(also jetzt) des mit sprites darstellen,das ist zwar kein problem aber,des sollte so angezeigt werden(schwierig zu formulieren) wenn die repeatschleife aufhört,dann wird das auch nicht mehr angezeigt....also wenn man das in einem komplexeren programm macht,würden die sprites auch ständig flackern,und die sprites werden jedesmal übermalt,es soll nur einmal draufgemalt werden und denn auch gleich da bleiben ohne das es sich nochmal übermalt...wie kann man des machen? ps.:des war jetzt B...irgendwo :mrgreen:
natoll,jetzt muss ich noch einen Rechner zusammenbaun der 24 stunden am Tag online ist und meinen Server für mein Projekt Order of Blance laufen lässt
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

Dann musst du eine Änderungsprüfung einbauen.

Das heisst, erst wenn sich dein Inhalte ändern sollte neu gezeichnet werden.
Benutzeravatar
captain third
Beiträge: 194
Registriert: 12.12.2004 13:14
Kontaktdaten:

Beitrag von captain third »

klingt intressant,und wie geht das???ich hab keine vorstellung davon wie sowas funzen soll,ich habs irgendwie versucht,rausgekommen ist aber dasda :bluescreen: und dasda :lamer: naja danach gabs erstmal :coderselixir: und jetzt frag ich hier =)
natoll,jetzt muss ich noch einen Rechner zusammenbaun der 24 stunden am Tag online ist und meinen Server für mein Projekt Order of Blance laufen lässt
Antworten