Wie kann ich ein Bild fest in das Prog einbinden

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
JBE
Beiträge: 7
Registriert: 31.05.2005 22:33
Wohnort: FFM

Wie kann ich ein Bild fest in das Prog einbinden

Beitrag von JBE »

Ich bin noch nicht so gut, also bitte keine Bemerkungen ob sauber oder nicht sauber Programmiert.

Code: Alles auswählen



b.f = 0.15
s.f = 3
If OpenWindow(0,100,100,500,460,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Gegentaktdurchflußwandler  J.B.Elektronik")
   If CreateGadgetList(WindowID())
 
    ListViewGadget(30,360,40,70,20)
    ListViewGadget(31,360,80,70,20)
    ListViewGadget(32,360,120,70,20)
    ListViewGadget(33,360,160,70,20)
    ListViewGadget(34,360,200,70,20)
    ListViewGadget(35,360,240,70,20)
    ListViewGadget(36,360,280,70,20)
    ListViewGadget(37,360,320,70,20)
    
    TextGadget(5,20,40,80,20,"U ein max [V]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(7,20,80,80,20,"U ein min [V]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(9,20,120,80,20,"U aus max [V]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(11,20,160,80,20,"I aus max [mA]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(13,20,200,80,20,"Frequenz [KHz]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(15,20,240,80,20,"Ae [mm²]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(17,20,280,80,20,"Al [nH] ",#PB_Text_Center|#PB_Text_Border)
    TextGadget(26,20,308,160,20,"Zum Berechnen Bild Anklicken",#PB_Text_Center|#PB_Text_Border)
    
    TextGadget(40,200,40,150,20,"Wdg Primär ",#PB_Text_Center|#PB_Text_Border)
    TextGadget(41,200,80,150,20,"Wdg Sekundär ",#PB_Text_Center|#PB_Text_Border)
    TextGadget(42,200,120,150,20,"Wdg Speicherdrossel",#PB_Text_Center|#PB_Text_Border)
    TextGadget(43,200,160,150,20,"Drosselinduktivität [mH] ",#PB_Text_Center|#PB_Text_Border)
    TextGadget(44,200,187,150,40,"Drahtdurchmesser Sekundär u. Speicherdrossel [mm] bei S 3A",#PB_Text_Center|#PB_Text_Border)
    TextGadget(45,200,235,150,30,"Leistung in Watt bei 85% Wirkungsgrad",#PB_Text_Center|#PB_Text_Border)
    TextGadget(46,200,275,150,30,"Eingangsstrom in [A] bei U ein min",#PB_Text_Center|#PB_Text_Border)
    TextGadget(47,200,315,150,30,"Drahtdurchmesser Primär [mm] bei S 3A",#PB_Text_Center|#PB_Text_Border)
    TextGadget(48,200,360,290,90,"Dieses Programm berechnet einen einfachen Gegentaktdurchflusswandler wobei ein Wirkungsgrad von 85% angenommen wird. Die schon eingetragenen Werte beziehen sich auf einen ETD34. Ausreichende Kenntnisse im Bau von Schaltnetzteilen insbesondere des Übertragers sind Vorraussetzung.",#PB_Text_Center|#PB_Text_Border )
    
    StringGadget(4,110,40,80,20,"14",#PB_String_Numeric)
    StringGadget(6,110,80,80,20,"10.6",#PB_String_Numeric)
    StringGadget(8,110,120,80,20,"300",#PB_String_Numeric)
    StringGadget(10,110,160,80,20,"100",#PB_String_Numeric)
    StringGadget(12,110,200,80,20,"50",#PB_String_Numeric)
    StringGadget(14,110,240,80,20,"91.6",#PB_String_Numeric)
    StringGadget(16,110,280,80,20,"240",#PB_String_Numeric)
    
    GadgetToolTip(4, "Maximale Eingangsspannung")
    GadgetToolTip(6, "Minimale Eingangsspannung")
    GadgetToolTip(8, "Maximale Ausgangsspannung")
    GadgetToolTip(10, "Maximaler Ausgangsstrom in mA")
    GadgetToolTip(12, "Arbeitsfrequenz in KHz")
    GadgetToolTip(14, "Kernquerschnitt Ae mm² [ETD34] Übertrager")
    GadgetToolTip(16, "Al-Wert in nH bei Luftspalt S [mm] [ETD34] Speicherdrossel S = 0,4 mm")
   
    
    ;LoadImage(0, "uart.bmp") 
    ;ButtonImageGadget(27,20,330,160,120,UseImage(0))
    ;GadgetToolTip(27, "Berechnung-Button")
EndIf
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow 
     Quit = 1
  EndIf
    If EventID = #PB_Event_Gadget
      If EventGadgetID()=27
        ueinmax$=GetGadgetText(4)
        ueinmax.f= ValF(ueinmax$) 
        
      EndIf
      If EventGadgetID()=27
        ueinmin$=GetGadgetText(6)
        ueinmin.f= ValF(ueinmin$)  
      EndIf
      If EventGadgetID()=27
        uausmax$=GetGadgetText(8)
        uausmax.f=ValF(uausmax$)
        Usec.f=uausmax.f*1.5
      EndIf
      If EventGadgetID()=27
        Iausmax$=GetGadgetText(10)
        Iausmax.f=ValF(Iausmax$)/1000
      EndIf
      If EventGadgetID()=27
        f$=GetGadgetText(12)
        f.f=ValF(f$)
        f.f=f.f*1000
      EndIf
      If EventGadgetID()=27
        Ae$=GetGadgetText(14)
        Ae.f=ValF(Ae$)
      EndIf
      If EventGadgetID()=27
        Al$=GetGadgetText(16)
        Al.f=ValF(Al$)
        Al.f=Al.f*0.00001
        
        Wprim.f= ueinmax.f/(2.2*Ae.f*b.f*f.f*0.000001)
        Wprim.f=Round(Wprim.f,0)
        Wprim$=StrF(Wprim)
       
        UE.f=ueinmin.f/Usec.f
       
        Wsec.f=Wprim.f/UE.f
        Wsec.f=Round(Wsec.f,0)
        
        Wsec$=StrF(Wsec.f)
        
        l.f=1/(2*f.f)*(1-(uausmax.f/Usec.f))*uausmax.f/(2*Iausmax.f)
        l$=StrF(l.f*1000)
        
        N.f=Sqr(l.f/Al.f)*100
        N.f=Round(N.f,0)
        N$=StrF(N.f)
        
        d.f=2*Sqr(Iausmax.f/(3.1415*s.f))
        d$=StrF(d.f)
        
        
        w.f=uausmax.f*Iausmax.f/0.85
        W$=StrF(w.f)
        
        Ieinmax.f= w.f/ueinmin.f
        Ieinmax$=StrF(Ieinmax.f)
        
        dp.f=2*Sqr(Ieinmax.f/(3.1415*s.f))
        dp$=StrF(dp.f)
        ClearGadgetItemList(30)
        AddGadgetItem (30,-1,""+Wprim$) 
        ClearGadgetItemList(31)
        AddGadgetItem (31,-1,""+Wsec$)
        ClearGadgetItemList(32)
        AddGadgetItem (32,-1,""+N$)
        ClearGadgetItemList(33)
        AddGadgetItem (33,-1,""+l$) 
        ClearGadgetItemList(34)
        AddGadgetItem (34,-1,""+d$) 
        ClearGadgetItemList(35)
        AddGadgetItem (35,-1,""+W$) 
        ClearGadgetItemList(36)
        AddGadgetItem (36,-1,""+Ieinmax$) 
        ClearGadgetItemList(37)
        AddGadgetItem (37,-1,""+dp$) 
       
      EndIf
    EndIf
   
  Until Quit=1
  
EndIf

End
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 »

Guck Dir in der Hilfe mal den Abschnitt zu DataSection und CatchImage an!
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
JBE
Beiträge: 7
Registriert: 31.05.2005 22:33
Wohnort: FFM

Das ist für mich zu hoch

Beitrag von JBE »

Ein Beispiel wäre nett.

Ich weis "Ist der Code zu schwer bist du zu schwach" :mrgreen:

Ich bin Hardwareentwickler kein Softie

Dafür erlaube ich das dieses Programm mit Quellennachweis weitergegeben
und oder benutzt werden darf.

Kaufe einen EDT und Bewickle den so, das ich 300V eingang und 12V ausgang habe. Würde ich jetzt als Neuling so eine Aufgabe bekommen,
könnte ich den EDT nicht bauen.



:mrgreen:
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 »

blub

Code: Alles auswählen

DataSection
  Bild:
  IncludeBinary "Bild.bmp"
EndDataSection

If OpenWindow(0, 0, 0, 391, 78, #PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_Invisible, "PureBasicLogo")
  If CreateGadgetList(WindowID(0))
    ImageGadget(0, 5, 5, 381, 68, ImageID(CatchImage(#PB_Any, ?Bild))
    HideWindow(0, 0)
  EndIf
  Repeat : Until WaitWindowEvent() = #PB_Event_Close_Window
EndIf
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
JBE
Beiträge: 7
Registriert: 31.05.2005 22:33
Wohnort: FFM

Beitrag von JBE »

blub

Code: Alles auswählen

b.f = 0.15
s.f = 3
If OpenWindow(0,100,100,500,460,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Gegentaktdurchflußwandler  J.B.Elektronik")
   If CreateGadgetList(WindowID())
 
    ListViewGadget(30,360,40,70,20)
    ListViewGadget(31,360,80,70,20)
    ListViewGadget(32,360,120,70,20)
    ListViewGadget(33,360,160,70,20)
    ListViewGadget(34,360,200,70,20)
    ListViewGadget(35,360,240,70,20)
    ListViewGadget(36,360,280,70,20)
    ListViewGadget(37,360,320,70,20)
    
    TextGadget(5,20,40,80,20,"U ein max [V]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(7,20,80,80,20,"U ein min [V]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(9,20,120,80,20,"U aus max [V]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(11,20,160,80,20,"I aus max [mA]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(13,20,200,80,20,"Frequenz [KHz]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(15,20,240,80,20,"Ae [mm²]",#PB_Text_Center|#PB_Text_Border)
    TextGadget(17,20,280,80,20,"Al [nH] ",#PB_Text_Center|#PB_Text_Border)
    TextGadget(26,20,308,160,20,"Zum Berechnen Bild Anklicken",#PB_Text_Center|#PB_Text_Border)
    
    TextGadget(40,200,40,150,20,"Wdg Primär ",#PB_Text_Center|#PB_Text_Border)
    TextGadget(41,200,80,150,20,"Wdg Sekundär ",#PB_Text_Center|#PB_Text_Border)
    TextGadget(42,200,120,150,20,"Wdg Speicherdrossel",#PB_Text_Center|#PB_Text_Border)
    TextGadget(43,200,160,150,20,"Drosselinduktivität [mH] ",#PB_Text_Center|#PB_Text_Border)
    TextGadget(44,200,187,150,40,"Drahtdurchmesser Sekundär u. Speicherdrossel [mm] bei S 3A",#PB_Text_Center|#PB_Text_Border)
    TextGadget(45,200,235,150,30,"Leistung in Watt bei 85% Wirkungsgrad",#PB_Text_Center|#PB_Text_Border)
    TextGadget(46,200,275,150,30,"Eingangsstrom in [A] bei U ein min",#PB_Text_Center|#PB_Text_Border)
    TextGadget(47,200,315,150,30,"Drahtdurchmesser Primär [mm] bei S 3A",#PB_Text_Center|#PB_Text_Border)
    TextGadget(48,200,360,290,90,"Dieses Programm berechnet einen einfachen Gegentaktdurchflusswandler wobei ein Wirkungsgrad von 85% angenommen wird. Die schon eingetragenen Werte beziehen sich auf einen ETD34. Ausreichende Kenntnisse im Bau von Schaltnetzteilen insbesondere des Übertragers sind Vorraussetzung.",#PB_Text_Center|#PB_Text_Border )
    
    StringGadget(4,110,40,80,20,"14",#PB_String_Numeric)
    StringGadget(6,110,80,80,20,"10.6",#PB_String_Numeric)
    StringGadget(8,110,120,80,20,"300",#PB_String_Numeric)
    StringGadget(10,110,160,80,20,"100",#PB_String_Numeric)
    StringGadget(12,110,200,80,20,"50",#PB_String_Numeric)
    StringGadget(14,110,240,80,20,"91.6",#PB_String_Numeric)
    StringGadget(16,110,280,80,20,"240",#PB_String_Numeric)
    
    GadgetToolTip(4, "Maximale Eingangsspannung")
    GadgetToolTip(6, "Minimale Eingangsspannung")
    GadgetToolTip(8, "Maximale Ausgangsspannung")
    GadgetToolTip(10, "Maximaler Ausgangsstrom in mA")
    GadgetToolTip(12, "Arbeitsfrequenz in KHz")
    GadgetToolTip(14, "Kernquerschnitt Ae mm² [ETD34] Übertrager")
    GadgetToolTip(16, "Al-Wert in nH bei Luftspalt S [mm] [ETD34] Speicherdrossel S = 0,4 mm")
   
    DataSection              
    Logo:
    IncludeBinary "logo.bmp"
    EndDataSection
    CatchImage(#PB_Any, ?Logo)
    ButtonImageGadget(27,20,330,160,120,ImageID())
    GadgetToolTip(27, "Berechnung-Button")
EndIf
  
  Repeat
    EventID = WaitWindowEvent()
    If EventID = #PB_Event_CloseWindow 
     Quit = 1
  EndIf
    If EventID = #PB_Event_Gadget
      If EventGadgetID()=27
        ueinmax$=GetGadgetText(4)
        ueinmax.f= ValF(ueinmax$) 
        
      EndIf
      If EventGadgetID()=27
        ueinmin$=GetGadgetText(6)
        ueinmin.f= ValF(ueinmin$)  
      EndIf
      If EventGadgetID()=27
        uausmax$=GetGadgetText(8)
        uausmax.f=ValF(uausmax$)
        Usec.f=uausmax.f*1.5
      EndIf
      If EventGadgetID()=27
        Iausmax$=GetGadgetText(10)
        Iausmax.f=ValF(Iausmax$)/1000
      EndIf
      If EventGadgetID()=27
        f$=GetGadgetText(12)
        f.f=ValF(f$)
        f.f=f.f*1000
      EndIf
      If EventGadgetID()=27
        Ae$=GetGadgetText(14)
        Ae.f=ValF(Ae$)
      EndIf
      If EventGadgetID()=27
        Al$=GetGadgetText(16)
        Al.f=ValF(Al$)
        Al.f=Al.f*0.00001
        
        Wprim.f= ueinmax.f/(2.2*Ae.f*b.f*f.f*0.000001)
        Wprim.f=Round(Wprim.f,0)
        Wprim$=StrF(Wprim)
       
        UE.f=ueinmin.f/Usec.f
       
        Wsec.f=Wprim.f/UE.f
        Wsec.f=Round(Wsec.f,0)
        
        Wsec$=StrF(Wsec.f)
        
        l.f=1/(2*f.f)*(1-(uausmax.f/Usec.f))*uausmax.f/(2*Iausmax.f)
        l$=StrF(l.f*1000)
        
        N.f=Sqr(l.f/Al.f)*100
        N.f=Round(N.f,0)
        N$=StrF(N.f)
        
        d.f=2*Sqr(Iausmax.f/(3.1415*s.f))
        d$=StrF(d.f)
        
        
        w.f=uausmax.f*Iausmax.f/0.85
        W$=StrF(w.f)
        
        Ieinmax.f= w.f/ueinmin.f
        Ieinmax$=StrF(Ieinmax.f)
        
        dp.f=2*Sqr(Ieinmax.f/(3.1415*s.f))
        dp$=StrF(dp.f)
        ClearGadgetItemList(30)
        AddGadgetItem (30,-1,""+Wprim$) 
        ClearGadgetItemList(31)
        AddGadgetItem (31,-1,""+Wsec$)
        ClearGadgetItemList(32)
        AddGadgetItem (32,-1,""+N$)
        ClearGadgetItemList(33)
        AddGadgetItem (33,-1,""+l$) 
        ClearGadgetItemList(34)
        AddGadgetItem (34,-1,""+d$) 
        ClearGadgetItemList(35)
        AddGadgetItem (35,-1,""+W$) 
        ClearGadgetItemList(36)
        AddGadgetItem (36,-1,""+Ieinmax$) 
        ClearGadgetItemList(37)
        AddGadgetItem (37,-1,""+dp$) 
       
      EndIf
    EndIf
   
  Until Quit=1
  
EndIf

End
Danke Dir funktioniert
Falls du mal ein Problem hast in der Elektronik findes du mich bei
http://www.elektronik-kompendium.de/forum/forum.php
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 »

JBE hat geschrieben: Falls du mal ein Problem hast in der Elektronik findes du mich bei
http://www.elektronik-kompendium.de/forum/forum.php
Okay, aber nur wenn Du die DataSection nach oben oder ans Ende bewegst,
ist ja schrecklich, mitten drinn :lol:
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
JBE
Beiträge: 7
Registriert: 31.05.2005 22:33
Wohnort: FFM

Beitrag von JBE »

Die Datasection habe ich an den Anfang gestellt wie du gesagt hast.

So wie ich eben behandelt wurde das ist gut, so macht Kommunikation Spaß.:allright:

Ich bin leider nicht mehr der jüngste , jenseits der 40 :D
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Beitrag von HeX0R »

JBE hat geschrieben: Ich bin leider nicht mehr der jüngste , jenseits der 40 :D
Na, dann passt ihr zwei ja bestens zusammen :mrgreen:
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 »

psssssssssssscht :mrgreen:
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
Antworten