Textausgabe in ein Image

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Textausgabe in ein Image

Beitrag von sharkpeter »

Hallo,

erst habe ich gedacht es liegt noch an der alten Version 3.94, musste mich
aber eines besseren belehren lassen. :freak:

Man erstelle ein Image und versuche über die Position 4096 einen Text zu
plazieren. Fehlanzeige :evil:

Hier ein Testprogramm dafür:

Code: Alles auswählen

; Testprogramm mit pb_4_00

#Window_0 = 0  
#ImageN_0 = 0
#Scro_0   = 0
#ImGad_0  = 1

; Dieses Programm soll zeigen, das es nicht möglich ist einen Text oberhalb
; der Position 4096 zu plazieren und auch anzuzeigen. Programm einfach starten
; und dann mal nach rechts srollen. Siehe da, leere Felder.
; Erst habe ich gedacht, das es an PB_3.94 liegt und habe den Test mit
; PB_4.00 wiederholt, aber da ist es genauso.

  If CreateImage(#ImageN_0,5000,300)
    StartDrawing(ImageOutput(#ImageN_0))
      For a = 0 To 4800 Step 100
        DrawText(a,50,"X-Position")
        DrawText(a,70,Str(a))
      Next a
    StopDrawing()
  Else
    End
  EndIf
    
  If OpenWindow(#Window_0,  0,  0,603,420,"Test Bildgröße")
    If CreateGadgetList(WindowID(#Window_0))
      ScrollAreaGadget(#Scro_0  ,  2,  2,600,284,5020,264, 20)
        ImageGadget   (#ImGad_0 ,  0,  0,180,180,ImageID(#ImageN_0))
      CloseGadgetList()
      Quit=#False   
      Repeat
        Select WaitWindowEvent()
          Case #PB_Event_CloseWindow
            Quit=#True
        EndSelect
      Until Quit
    Else
      End
    EndIf
  Else
    End
  EndIf
  End
Sollte dies ein Bug sein? Weil wenn ich ein Bild erstellen kann das größer
ist als 4096 Pixel, so sollte ich dort auch einen Text positionieren können.

Jetzt kann man fragen, warum denn ein Bild so groß sein muß ... Manchmal
muß es halt, ich wollte ein Diagramm zeichnen lassen und die Abszissen beschriften.

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Benutzeravatar
nco2k
Beiträge: 892
Registriert: 08.09.2004 23:13

Beitrag von nco2k »

bei mir klappts einwandfrei. :?

c ya,
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
Benutzeravatar
Jason
Beiträge: 123
Registriert: 06.01.2005 17:47

Re: Textausgabe in ein Image

Beitrag von Jason »

sharkpeter hat geschrieben:
Hier ein Testprogramm dafür:
Hier funktioniert es... Win98SE, PB4 beta 8...
Der Rest ist Schweigen!
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 »

4800 sagt der ganz Rechte :wink:
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
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

ts-soft hat geschrieben:4800 sagt der ganz Rechte :wink:
dito

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Code: Alles auswählen

; Testprogramm mit pb_4_00
#Window_0 = 0  
#ImageN_0 = 0
#Scro_0   = 0
#ImGad_0  = 1
; Dieses Programm soll zeigen, das es nicht möglich ist einen Text oberhalb
; der Position 4096 zu plazieren und auch anzuzeigen. Programm einfach starten
; und dann mal nach rechts srollen. Siehe da, leere Felder.
; Erst habe ich gedacht, das es an PB_3.94 liegt und habe den Test mit
; PB_4.00 wiederholt, aber da ist es genauso.
  If CreateImage(#ImageN_0,9000,300)
    StartDrawing(ImageOutput(#ImageN_0))
      For a = 0 To 9000 Step 100
        DrawText(a,50,"X-Position")
        DrawText(a,70,Str(a))
      Next a
    StopDrawing()
  Else
    End
  EndIf
    
  If OpenWindow(#Window_0,  0,  0,603,420,"Test Bildgröße")
    If CreateGadgetList(WindowID(#Window_0))
      ScrollAreaGadget(#Scro_0  ,  2,  2,600,284,9020,264, 20); hier eine Änderung von Falko
        ImageGadget   (#ImGad_0 ,  0,  0,180,180,ImageID(#ImageN_0))
      CloseGadgetList()
      Quit=#False   
      Repeat
        Select WaitWindowEvent()
          Case #PB_Event_CloseWindow
            Quit=#True
        EndSelect
      Until Quit
    Else
      End
    EndIf
  Else
    End
  EndIf
  End
:mrgreen:
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@Falko,
komisch, der Code von dir unterscheidet sich nur in der Größe des Bildes. Bei dir sind es 9000 Pixel und es funktioniert.

@Jason,
da bin ich aber froh, weil ich auch Win9x benutze, daran liegt es dann schon einmal nicht. :D

ABER:
Ich habe eben mal ein wenig experimentiert mit der Größe und siehe da es stellt sich folgendes heraus:

- ab 8065 geht es wieder, zwischen 4096 und 8065, Fehlanzeige. Da kommt dann das unten im Bild dargestellte heraus.

Code: Alles auswählen

; Testprogramm mit pb_4_00
  #Window_0 = 0 : #ImageN_0 = 0 : #Scro_0   = 0 : #ImGad_0  = 1

  #Size = 4200; 8065 ; ab 8065 geht es wieder

  If CreateImage(#ImageN_0,#Size,300)
    StartDrawing(ImageOutput(#ImageN_0))
      For a = 0 To #Size-100 Step 100
        DrawText(a,50,"X-Position"): DrawText(a,70,Str(a))
      Next a
    StopDrawing()
  EndIf
    
  If OpenWindow(#Window_0,  0,  0,603,420,"Test Bildgröße")
    If CreateGadgetList(WindowID(#Window_0))
      ScrollAreaGadget(#Scro_0  ,  2,  2,600,284,#Size+20,264, 20)
        ImageGadget   (#ImGad_0 ,  0,  0,  1,  1,ImageID(#ImageN_0))
      CloseGadgetList()
      Quit=#False   
      Repeat
        Select WaitWindowEvent()
          Case #PB_Event_CloseWindow
            Quit=#True
        EndSelect
      Until Quit
    EndIf
  EndIf
  End
Und hier das Bild:
Bild
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
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 »

tja, ja, ja, weiß nicht:
Bild
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
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Unter XP und unter VirtuellPC mittels Win98SE getestet.
Alles in Ordnung.

Windows Me macht da wohl was anderes. Ich müsste nur noch testen, wenn ich Purebasic auf win98SE installiere, ob dann beim Compilieren der Fehler entsteht.

[Edit]
Habe jetzt PB4B9 incl. Updates auf meinem VirtuellPC mit diesem Source
unter Win98SE kompiliert. Wird ohne Probleme einwandfrei gestartet und
zeigt keine leeren Textfelder wie im obigen Image an.
Daher gehe ich von aus, das es an Windows Me liegen muss. Entweder sind dort die aktuellen Treiber wie DirectX usw. nicht auf den neusten Stand, oder Me macht eh schon Probleme.

Man bin ich froh, das ich damals von Me weg war :mrgreen:
[/Edit]
Gruß Falko
Bild
Win11 Pro 64-Bit, PB_6.11b1
Benutzeravatar
sharkpeter
Beiträge: 474
Registriert: 29.08.2004 16:18
Wohnort: Dresden
Kontaktdaten:

Beitrag von sharkpeter »

@Falko,

Beta9 habe ich auch. Ist schon eigenartig. Ich für meinen Teil habe entschieden,
das ich das Image dann eben auf 4000 begrenze und fertig ist der Laden.

An DirektX kann es ja wohl auch nicht liegen, die werden doch bei 2D gar nicht
benötigt, oder irre ich da.

@TS
hast dir ja richtig Mühe gegeben mit der Grafik :D

Hier noch ein Bild (SSFK-Grafik) für den Grund der Sache:

[img]http://www.winbahn.de/BilderPureBoard/T ... 1[PNG].png[/img]

Gruß Jens
PB3.94 bis 6.xx / (Win98/98SE/ME/XPProSP3/WINVista-X32)/WIN7HP-X64/WIN8PRO-X32/WIN10-64

Nichts wissen macht nichts, sich dumm stellen aber schon.
Gesperrt