JA!COMMANDER 1.25

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von Thorsten1867 »

ts-soft hat geschrieben:@Thorsten1867
bekommste den zweiten rund? rot und rund, wie die rauf und runter buttons?
Das würde passen :wink:
Sollte kein Problem sein. Entwurf mit Durchmesser 16px unterwegs.
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

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

:allright: passt
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
HeX0R
Beiträge: 3040
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 »

Das Haupticon sieht ziemlich pixelig aus, wenn man die Symbole aufm Desktop groß anzeigen lässt.
Bild
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 »

HeX0R hat geschrieben:Das Haupticon sieht ziemlich pixelig aus, wenn man die Symbole aufm Desktop groß anzeigen lässt.
Man hast Du gute Augen, mir fällt das garnicht auf :mrgreen:

32x32 ist nur drinnen, aber vielleicht Zauber ich noch ein Multiples Vista
Kompatibles Icon.

Ich sollte mir nen Grafiker anstellen :wink:

Danke für den Hinweis, mal sehen ob ich da was machen kann.
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
HeX0R
Beiträge: 3040
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 »

ts-soft hat geschrieben: 32x32 ist nur drinnen, aber vielleicht Zauber ich noch ein Multiples Vista
Kompatibles Icon.
Ich hab nicht mal Vista.
Nur haben mir die etwas größeren Symbole von Vista ganz gut aufm Desktop gefallen (der bei mir ziemlich leer ist).
Deswegen habe ich den Desktop irgendwann auf große Symbole umgestellt, und siehe da.....
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 »

@HeX0R
Hab mal ein Mehrfachicon reingepackt, weichgezeichnet, evtl. mußte den
Desktopcache löschen, damit Du es sehen kannst.


Der Lister hat jetzt einen HexViewer erhalten, basierend auf dem Source,
den al90 auch im PureFileMaster nutzt, danke nochmal dafür :allright:

Hier mal ein DemoPlugin in PB, so wie es später im PFM, JA!COMMANDER
und hoffentlich auch im TC funktioniert. Es sind nur die beiden wichtigsten
Funktionen, autom. Konfiguration im TC ist so nicht möglich :wink:

ListLoad(ParentWin, File.s, Flags)
ParentWin ist das Control, welches das Plugin darstellt.
Für den PluginEntwickler nur wichtig, weil dieses Handle für SetParent be-
nötigt wird. Wenn dieser Parameter 0 ist, sollte das Plugin sein eigenes
Fenster darstellen, ansonsten bleibt das versteckt.

File.s ist die für das Plugin bestimmte Datei.

Die Flags werden zur Zeit nicht unterstützt.

Zurückgeben sollte die DLL das Handle des Containers, in dem das Plugin sitzt.

ListCloseWindow(ListWin)
Diese Funktion ist zum aufräumen des Plugins.

Code: Alles auswählen

UseJPEGImageDecoder()

Global win, img, btn, con

Procedure Win_CB(hWnd, uMsg, wParam, lParam)
  Protected File.s, pic, Result = #PB_ProcessPureBasicEvents
  
  Select uMsg
       
    Case #WM_SIZE
      ResizeGadget(img, #PB_Ignore, #PB_Ignore, GadgetWidth(con), GadgetHeight(con) - 50)
      ResizeGadget(btn, GadgetWidth(con) / 2 - 30, GadgetHeight(con) - 40, #PB_Ignore, #PB_Ignore)
    
    Case #WM_COMMAND
      If wParam & $FFFF
        Select GetDlgCtrlID_(lParam)
          Case btn
            File = OpenFileRequester("","","",0)
            If File
              pic = LoadImage(#PB_Any, File)
              ResizeImage(pic, GadgetWidth(img), GadgetHeight(img))
              SetGadgetState(img, ImageID(pic))
            EndIf
        EndSelect
      EndIf

  EndSelect
  
  ProcedureReturn Result
EndProcedure

ProcedureDLL ListLoad(ParentWin, File.s, Flags)
  
  win = OpenWindow(#PB_Any, 0, 0, 322, 150, "PluginDemo", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_Invisible)
  If win
    
    con = ContainerGadget(#PB_Any, 0, 0, WindowWidth(win), WindowHeight(win), #PB_Container_BorderLess)
    img = ImageGadget(#PB_Any, 0, 0, 0, 0, ImageID(LoadImage(#PB_Any, File)))
    btn = ButtonGadget(#PB_Any, 0, 0, 60, 30, "...")
    
    CloseGadgetList()
    SetWindowCallback(@Win_CB())
    If ParentWin
      SetParent_(GadgetID(con), ParentWin)
      
      ProcedureReturn GadgetID(con)
    Else
      HideWindow(win, #False)
    EndIf
  EndIf 
  
EndProcedure

ProcedureDLL ListCloseWindow(ListWin)
  FreeGadget(con)
  CloseWindow(win)
EndProcedure
Wenn Ihr Fragen habt oder Vorschläge habt, einfach los :wink:


// geändert
Syntax korrigiert
Zuletzt geändert von ts-soft am 11.05.2009 16:25, insgesamt 1-mal geändert.
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
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 »

hier ein testcode, damit man sieht das es funktioniert:

Code: Alles auswählen

EnableExplicit

OpenWindow(0, 0, 0, 640, 480, "test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget)

ContainerGadget(0, 0, 0, 0, 0)

Define ListWin
If OpenLibrary(0, "plugin.dll")
  ListWin = CallFunction(0, "ListLoad", GadgetID(0),#PB_Compiler_Home + "Examples\Sources\Data\PureBasic.bmp", 0)
  If ListWin
    MoveWindow_(ListWin, 0, 0, GadgetWidth(0), GadgetHeight(0), 1)
  EndIf
EndIf

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      CallFunction(0, "ListCloseWindow", ListWin)
      CloseLibrary(0)
      Break
    
    Case #PB_Event_SizeWindow
      ResizeGadget(0, 0, 0, WindowWidth(0), WindowHeight(0))
      If ListWin
        MoveWindow_(ListWin, 0, 0, GadgetWidth(0), GadgetHeight(0), 1)
      EndIf
  EndSelect
ForEver
//geändert
Testcode angepaßt
Zuletzt geändert von ts-soft am 11.05.2009 16:26, insgesamt 1-mal geändert.
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
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

ts-soft hat geschrieben:Der Lister hat jetzt einen HexViewer erhalten, basierend auf dem Source,
den al90 auch im PureFileMaster nutzt, danke nochmal dafür :allright:
Gerne geschehen. :allright:
Hier mal ein DemoPlugin in PB, so wie es später im PFM, JA!COMMANDER
und hoffentlich auch im TC funktioniert. Es sind nur die beiden wichtigsten
Funktionen, autom. Konfiguration im TC ist so nicht möglich :wink:
Werde mich mal langsam darin einarbeiten. :wink:

BTW:
Ich wollte mir gerade mal das listplugin.hlp durchlesen und musste
feststellen das ich die WinHlp32.exe für Vista erst extra vom MS Server
laden muss. Und dann auch noch vorher mit der dämlichen Gültigkeitsprüfung. :freak:
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 »

al90 hat geschrieben: Werde mich mal langsam darin einarbeiten. :wink:

BTW:
Ich wollte mir gerade mal das listplugin.hlp durchlesen und musste
feststellen das ich die WinHlp32.exe für Vista erst extra vom MS Server
laden muss. Und dann auch noch vorher mit der dämlichen Gültigkeitsprüfung. :freak:
Erstmal genügen ja die beiden Funktionen, das was noch fehlt läßt sich
sowieso im moment nicht umsetzen, Druck-Routinen usw. hab ich nicht,
und die Dateitypen, für die das Plugin dann zuständig ist, kann man auch in
seinen Prefs festlegen. Wichtig ist, das die Plugins verschiebbar sind, weil
anhand der Reihenfolge wird die Zuordnung ausgeführt. Also das erste
Plugin, das für *.bmp eingestellt ist, wird genutzt, bei einem nachfolgendem
Plugin kommt die Datei daher nicht an.

// Nachtrag:
Ist hoffentlich jedem klargeworden, das für Events nur das Callback zur
Verfügung steht! Anhand des Beispiels sollte man das normalle Eventloop
ins Callback übertragen können :wink:

Das ist aber auch schon der einzige Unterschied zur normalen
PB-Programmierung. Im allgemeinen hat so ein Plugin ja auch nicht soviel
Gadgets.
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
al90
Beiträge: 1101
Registriert: 06.01.2005 23:15
Kontaktdaten:

Beitrag von al90 »

ts-soft hat geschrieben:Das ist aber auch schon der einzige Unterschied zur normalen
PB-Programmierung. Im allgemeinen hat so ein Plugin ja auch nicht soviel
Gadgets.
Ok ich werde mich die nächsten Tage mal damit befassen. Hast ja ein
schönes beispiel gemacht wo ich mit klar kommen müsste. Ansonsten
frage ich nochmal nach. :allright:
Antworten