Seite 2 von 5

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 14:55
von Kiffi
ToolBoy hat geschrieben:

Code: Alles auswählen

SetCurrentDirectory(GetPathPart(ProgramFilename()))
am Programmanfang setze kommt immer ein Struktur oder ein not variable Error, egal was ich bei (ProgramFilename) einsetze.
einfach die Zeile genauso wie sie oben steht
ohne Änderungen in Deinen Code kopieren.
Dann klappts auch.

Grüße ... Kiffi

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 15:14
von ts-soft
ToolBoy hat geschrieben:

Code: Alles auswählen

LoadImage(20, "RBF\ORD.bmp")                    
ImageGadget(21,  595, 14, 32, 32, ImageID(20)) 
ImageGadget(22,  595, 14, 32, 32, ImageID(20))  
Wenn ImageGadget(21, 595, 14, 32, 32, ImageID(20)) fehlt
oder ImageGadget(22, 595, 14, 32, 32, ImageID(20)) fehlt
wird das bmp Bild nicht im Fenster angezeigt.

L.G. ToolBoy
Beim Debuggen in der IDE befindet sich die Exe nicht automatisch im selben Verzeichnis, wie der Source,
(sondern im Tempdir) deshalb findet er das Bild nicht.
Um dies zu Umgehen kannste z.B. in den "Compiler-Optionen"/"Kompilieren/Starten" einen Haken bei:
"Temporäres Executable im Quellcode-Verzeichnis erstellen" setzen!

Gruß
Thomas

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 15:28
von ToolBoy
Da her erklärt sich auch das ich oben bei (ProgramFilename() was einsetzen wollte, da im Test immer nur C:\window\tmp kam aber als exe dann der richtige Pfad ausgegeben wurde.

Vielen Dank an alle für die schnelle und gute Hilfe hier im Bord.

MFG ToolBoy

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 16:12
von Kaeru Gaman
wenn du fehlermeldungen berichtest, ist es sinnvoll, diese auch zu berichten. ;)
notfalls kannst du strg-c drücken wenn du grad die Error-Box siehst, und das dann hier reinkopieren.

mit dem zweiten Teil kann ich garnichts anfangen.
wieso legst du zwei Gadgets mit dem selben Image genau übernander?
da muss irgendwo anders ein Fehler sein, denn dass man ein Gadget zweimal erzeugen muss damit es erscheint, gibt es nicht.

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 17:32
von ToolBoy
Hallo Kaeru Gaman,

Demo Auszug aus PureTest.pb

Der Debugger meldet Fehler, wegen der SetGadgetColor zum HyperLinkGadget. ??????

Der Compiler erstellt ohne Fehlermeldung eine EXE die auch funst.
Im EXIT Button erscheint links ein Ordner Symbol. Oder eine andere 32x32 bmp.
Ich habe hier nur mal ein Button eingesetzt um das doppelte ImageGadget zu demonstrieren.

Code: Alles auswählen

If OpenWindow(0,162,40,702,80,"TEST DATEI", #PB_Window_BorderLess) 
SetWindowColor(0,RGB(0,0,0))
StickyWindow(0, 1) 

BUT= 1110 : BX=0 : BY=0 : BL=700 : BH=78: BS=3 : Gosub BUT
#F1 = 255 : #F2 = 0 : #F3 = 0 : Gosub FAR
; BUTTON 1-6
; BUTTON 7 FÜR ROLLOVER MENU ERSTELLEN 
BUT= 990 : BX=590 : BY=10 : BL=80 : BH=15: BS=1 : FULL = 1 
#R = 184 : #G = 188 : #B = 208 : Gosub BUTTON

  HyperLinkGadget(1, 615, 11, 50,15, "   EXIT", RGB(0,128,0))
  SetGadgetFont(1, LoadFont(0, "Arial", 10))
  SetGadgetColor(1, #PB_Gadget_BackColor,  RGB(#R,#G,#B))
  SetGadgetColor(1, #PB_Gadget_FrontColor,  RGB(0,0,0))
    LoadImage(20, "RBF\ORD.bmp")                
    ImageGadget(20,  595, 12, 32, 32, ImageID(20)) 
    ImageGadget(21,  595, 12, 32, 32, ImageID(20)) 
; ENDE BUTTON 7 
 
Repeat
  
EventID=WaitWindowEvent() ;Fensteraktion ermitteln   
Select EventID ;wir überprüfen welches Gadget betätigt wurde.
        Case #PB_Event_Gadget
        Select EventGadget()      
        Case 1 
        CloseWindow(0)
           EndSelect        
EndSelect
    Until EventID=#PB_Event_CloseWindow ;Schleife bis der Anwender das Fenster schließt   
EndIf

End

BUTTON:    
TextGadget(BUT+1, BX,BY,BL,BS,"")
TextGadget(BUT+2, BX-1,BY+1,BL+2,BS,"")
TextGadget(BUT+3, BX-2,BY+2,BL+4,BS,"")
TextGadget(BUT+4, BX,BY+BH,BL,BS,"")
TextGadget(BUT+5, BX-1,BY-1+BH,BL+2,BS,"")
TextGadget(BUT+6, BX-2,BY-2+BH,BL+4,BS,"")
TextGadget(BUT+7, BX-2,BY+2,BS,BH-3,"")
TextGadget(BUT+8, BX-1,BY+2,BS+1,BH-3,"")
TextGadget(BUT+9, BX-1+BL,BY+2,BS+1,BH-3,"")
TextGadget(BUT+10, BX+BL,BY+2,BS+1,BH-3,"")
If FULL =1
TextGadget(BUT+10+20, BX+1,BY+3,BL-2,BH-5,"")
SetGadgetColor(BUT+10+20, #PB_Gadget_BackColor,  RGB(#R,#G,#B))
EndIf
SetGadgetColor(BUT+1, #PB_Gadget_BackColor,  RGB(255,255,255))
SetGadgetColor(BUT+7, #PB_Gadget_BackColor,  RGB(255,255,255))
Return
BUT:
TextGadget(BUT+1, BX,BY,BL,BS,"")
TextGadget(BUT+2, BX,BY+BH-2,BL,BS,"")
TextGadget(BUT+3, BX,BY,BS,BH,"")
TextGadget(BUT+4, BX+BL-2,BY,BS,BH,"")

Return
FAR:
SetGadgetColor(BUT+1, #PB_Gadget_BackColor,  RGB(#F1,#F2,#F3))
SetGadgetColor(BUT+2, #PB_Gadget_BackColor,  RGB(#F1,#F2,#F3))
SetGadgetColor(BUT+3, #PB_Gadget_BackColor,  RGB(#F1,#F2,#F3))
SetGadgetColor(BUT+4, #PB_Gadget_BackColor,  RGB(#F1,#F2,#F3))
 
Return   
    
Vergesst nicht, dass ich Anfänger bin.

L.G. ToolBoy

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 17:48
von ts-soft
ToolBoy hat geschrieben:Vergesst nicht, dass ich Anfänger bin.
Vergess Du nicht, Du nutzt jetzt PureBasic :wink:
1. Sprechende Variablennamen erleichtern Dir bei größeren Sourcen das Zurechtfinden.
PB erstellt eine native Exe, da ergeben sich keine Vorteile durch zu kurze, nichtssagende
Variablennamen.

2. Du solltest Dich mit den Gültigkeitsbereichen von Variablen, mit Proceduren und Parameter
beschäftigen, dieses Gosub : Return gedöns ist seit 40 Jahren verpönnt, und das
nicht ohne Grund.

Und wenn Du schon dabei bist, gewöhn Dir gleich das EnableExplicit als erste Zeile an,
auch wenn Dir das zunächst nervig vorkommt :wink:

Du kommst zwar im moment besser zurecht, wenn Du versuchst den RB Code 1:1 zu
übersetzen, das ist aber ein Trugschluß. Besser ist es, wenn Du die Funktion aus dem
RB Programm durch neuen Code, der dasselbe erreicht, aber besser den Möglichkeiten von
PB, bzw. auch anderen aktuellen Basic-Compilern entspricht, nutzt.

Im ersten moment etwas mehr lernaufwand aber im enderfolg der bessere Weg.

Gruß
Thomas

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 17:59
von Kaeru Gaman
ToolBoy hat geschrieben:Der Debugger meldet Fehler, wegen der SetGadgetColor zum HyperLinkGadget. ??????
Help / HyperLinkGadget() hat geschrieben:...
Dieses Gadget unterstützt die SetGadgetColor() und GetGadgetColor() Befehle mit dem #PB_Gadget_FrontColor Typ, um die Textfarbe zu ändern. Die Hintergrundfarbe ist immer die Farbe des Fensters.
...
und ansonsten, ja ganz wichtig, wie ts sagte, lerne PureBasic zu programmieren, und portiere nicht irgendwas so direkt wie möglich,
verbreche bitte nicht solche variablensetzer-gosub-schießmichtot, sogar aufm C64 war sowas schon unschön.


in Dirty Harry würde jetzt jemand sagen: Von dem Anblick schießen mir ja die Hämmorhoiden durchs Magengeschwür und erwürgen meine Sehnerven damit mir das Kleinhirn nicht explodiert.

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 18:49
von ToolBoy
Hallo,

bevor ich was Kaufe will ich doch erst mal wissen was ich bekomme.
Das ein HyperLinkGadget nicht mit BackColor funst ist ein großer Nachteil. Und was RB5.2 kann, müsste PureBasic doch auch können.
Musste leider auf Gosub zurückgreifen, wie in den PB Demo Programmen auch, da mein Gehirn in 5 Tagen nicht in der Lage ist die ganze Demo Help zu lesen noch zu beherrschen.
Prozeduren und Funktionen gibt es in RB auch.

MFG ToolBoy

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 19:02
von c4s
Sonst einfach mal hier vorbei schauen:
purearea.net
Hier gibt es massig Code-Beispiele, die ab und an weiter helfen und gut zeigen was alles möglich ist.

...und nicht von der unglaublichen Vielfalt erdrücken lassen sondern einfach nur staunen was PureBasic noch soviel mehr kann ;)

Re: GetExtensionPart und kein tokenzähler?

Verfasst: 08.01.2010 19:21
von ToolBoy
Hallo danke für den Tipp,

die Seite habe ich, aber in der Demo ist ja alles gesperrt so, dass von dort so gut wie keine Beispiele funzen und ich kaufe keine Katze im Sack. Wegen den gesperrten Funktionen in der Demo musste ich auf Gosub zurückgreifen und dann ist das auch nicht richtig, da beist sich der Hund in den Schwanz.
Wenn es eine Scala von 1 bis 10 geben würde, würde dieses Bord eine 10 für die Hilfe Bekommen, aber nur eine 5 für die Umgangsformen.

L.G. ToolBoy