GetExtensionPart und kein tokenzähler?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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
a²+b²=mc²
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

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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
ToolBoy
Beiträge: 42
Registriert: 01.01.2010 16:19
Computerausstattung: Win 98ME, XP Home und Pro, Win2000 und WinVista32 Home Pre.
Wohnort: Duisburg

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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
Windows 7 U. Windows 10 pro.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
ToolBoy
Beiträge: 42
Registriert: 01.01.2010 16:19
Computerausstattung: Win 98ME, XP Home und Pro, Win2000 und WinVista32 Home Pre.
Wohnort: Duisburg

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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
Windows 7 U. Windows 10 pro.
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

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
ToolBoy
Beiträge: 42
Registriert: 01.01.2010 16:19
Computerausstattung: Win 98ME, XP Home und Pro, Win2000 und WinVista32 Home Pre.
Wohnort: Duisburg

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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
Windows 7 U. Windows 10 pro.
c4s
Beiträge: 1235
Registriert: 19.09.2007 22:18

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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 ;)
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
ToolBoy
Beiträge: 42
Registriert: 01.01.2010 16:19
Computerausstattung: Win 98ME, XP Home und Pro, Win2000 und WinVista32 Home Pre.
Wohnort: Duisburg

Re: GetExtensionPart und kein tokenzähler?

Beitrag 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
Windows 7 U. Windows 10 pro.
Antworten