Fragen zur IDE Personalisierung

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Fragen zur IDE Personalisierung

Beitrag von Bisonte »

Hallo

Ich hab da ein paar Fragen bezüglich der PB - IDE :

1.) Ist es möglich, die Toolbar Leiste zu vergrössern ? (von den 16x16px z.b. auf 32x32px)
2.) Kann man selbst ein Menu hinzufügen ? (Bisher wandert ja alles in das Werzeugmenu)
3.) Ist es möglich eigene Dinge in das SidebarPanel zu bringen ? Das mit der Hilfe find ich klasse :)
4.) Wo bekomme ich eine genauere Infos zur IDE Werkzeug-Erstellung als aus der PB Hilfe ?

Wenn ja, dann bitte erklären wie...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fragen zur IDE Personalisierung

Beitrag von RSBasic »

Sind das Wünsche für Fred/Freak oder möchtest du ein Werkzeug bauen, um sowas umzusetzen?
Wenn das Wünsche sind: http://www.purebasic.fr/english/viewforum.php?f=3
Wenn du selber machen möchtest...
Bisonte hat geschrieben:1.) Ist es möglich, die Toolbar Leiste zu vergrössern ? (von den 16x16px z.b. auf 32x32px)
Ja, das ist möglich:

Code: Alles auswählen

EnableExplicit

Define EventID
Global Handle1
Global Handle2
Global TBID

Procedure ListWindows(hwnd,Param)
  Protected String$
  
  If GetWindowLongPtr_(hwnd,#GWL_EXSTYLE) ! #WS_EX_TOOLWINDOW And GetWindowLongPtr_(hwnd,#GWL_STYLE) & #WS_VISIBLE
    String$ = Space(250)
    GetWindowText_(hwnd,String$,250)
    If Not String$=""
      If Mid(String$,1,9)="PureBasic"
        Handle1 = hwnd
      EndIf
      
    EndIf
  EndIf
  
  ProcedureReturn #True
EndProcedure

EnumChildWindows_(FindWindow_("ToolbarWindow32",#Null),@ListWindows(),0)
If Handle1=0
  MessageRequester("Fehler","Handle1 = 0",#MB_ICONERROR)
  End
EndIf

Handle2 = FindWindowEx_(Handle1,0,"ToolbarWindow32",0)
If Handle2=0
  MessageRequester("Fehler","Handle2 = 0",#MB_ICONERROR)
  End
EndIf

TBID = SendMessage_(Handle2,#TB_GETIMAGELIST,0,0)
ImageList_SetIconSize_(TBID,32,32)
SendMessage_(Handle2,#TB_SETIMAGELIST,0,TBID)
SendMessage_(Handle2,#TB_AUTOSIZE,0,0)
Das funktioniert aber nur dann, wenn du die Icons aus dem Archiv "SilkTheme.zip" manuell vergrößerst. Die vorhandenen Icons sind derzeit im 16x16-Format. Diese müssen aber im 32x32-Format sein, um diese auch im Programm in dieser Größe anzeigen zu können.
Bisonte hat geschrieben:2.) Kann man selbst ein Menu hinzufügen ? (Bisher wandert ja alles in das Werzeugmenu)
Schau mal unter: http://msdn.microsoft.com/en-us/library/ms646977.aspx
Da findest du alles, was du brauchst bezüglich der Erstellung und Bearbeitung von Menü-Items.
Bisonte hat geschrieben:3.) Ist es möglich eigene Dinge in das SidebarPanel zu bringen ? Das mit der Hilfe find ich klasse :)
Ja, auch das geht. Such mal nach #TCM_INSERTITEM (mit SendMessage_()). Du musst aber später drauf achten, dass du deine eigenen Gadgets, die du dort hinzufügen möchtest, nicht direkt paren (SetParent_()) darfst. Sonst stürzt PB IDE ab. Du musst deine Gadgets auf ein eigenes Fenster erstellen und anschließend das Fenster ins PanelGadget von PB paren. Das geht ohne Absturz. Und natürlich vorher die Größe des Innenbereichs (GetWindowRect_() von "Static" eines PanelGadgetItems) des PanelGadgets ermitteln, um an die gewünschte Größe anzupassen. (MoveWindow_())

Du brauchst nur die einzelnen Handle-Nummern, die du mit FindWindowEx_() (SysTabControl32) ermitteln kannst.
Hilfreiche Anwendungen:
http://www.rsbasic.de/temp/ShoWin.exe
http://www.rsbasic.de/temp/WinSpy.exe
Bisonte hat geschrieben:4.) Wo bekomme ich eine genauere Infos zur IDE Werkzeug-Erstellung als aus der PB Hilfe ?
F1 drücken und nach "Verwenden externer Werkzeuge" suchen. Da ist alles ausführlich beschrieben. Eine bessere Hilfe gibt es nicht. :mrgreen:
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Fragen zur IDE Personalisierung

Beitrag von Bisonte »

hoy... das nenn ich mal ausführlich :allright:

Eigentlich geht es mir darum selber Sachen mit der IDE anzustellen (Werkzeugbau)...
obwohl es bestimmt auch für Fred/Freak von Interesse wäre wenn mehr Interesse am personalisieren der IDE
vorhanden sein sollte.
Z.B. kann ich mir vorstellen, das es mehr Leute gibt, die auf einem grossen Monitor nicht
die klitzewinzigen 16x16px "Kästchen" anvisieren wollen, weil von "Bildern" kann man da nicht mehr sprechen... :freak:

Ich werd mich da mal ein bisschen austoben...

P.S.: Die FatCow Iconsammlung verfügt über 32x32px,
und die sehen beinahe gleich aus wie Silk (Ich denke mal das war bei denen die Vorlage...)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
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: Fragen zur IDE Personalisierung

Beitrag von ts-soft »

Bisonte hat geschrieben: Z.B. kann ich mir vorstellen, das es mehr Leute gibt, die auf einem grossen Monitor nicht
die klitzewinzigen 16x16px "Kästchen" anvisieren wollen, weil von "Bildern" kann man da nicht mehr sprechen... :freak:
Wenn man seine IDE dann auf den "grossen" Monitor maximiert und grosse Icons, sowie grosse Schrift nutzt, warum
hat man dann einen "grossen" Monitor :mrgreen:
Aber Du wirst recht haben, es gibt so Leute :wink: , ich jedoch nutze die IDE nicht maximiert und nutze die freie Fläche
für weitere offene Programme, weil dafür ist IMHO der grosse Monitor von Vorteil und macht sich bezahlt.

Mit dem Einbauen in Werkzeugleiste usw. wäre ich sehr vorsichtig, eine stabile IDE ist wichtiger als irgendwelchen
unnützer Schicke-Micki da einzubauen.

Gruß
Thomas
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
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Fragen zur IDE Personalisierung

Beitrag von Bisonte »

ts-soft hat geschrieben:Mit dem Einbauen in Werkzeugleiste usw. wäre ich sehr vorsichtig, eine stabile IDE ist wichtiger
als irgendwelchen unnützer Schicke-Micki da einzubauen.
Das ist mir bewusst, da man grosse Umwege mit API und durch die Brust ins Auge hatte ich das sofort wieder
verworfen, nachdem ich das las /:->

Wäre ja möglich gewesen, das so etwas vorgesehen ist, und ich die Beschreibungen bloss nicht gefunden habe...

Im Grunde schwebt mir "erstmal" nur ein Autosave alle x minuten und halt die Grösse der Toolbar vor...

Achja ... Grosser Monitor... die Sidebar ist recht nützlich, und auf so nem Widescreen ist die auch flink breiter gemacht.
Da jetzt dort auch die Hilfe drin gezeigt werden kann ist das mal so ein Maximierungsgrund ;)
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fragen zur IDE Personalisierung

Beitrag von RSBasic »

Naja, wenn man natürlich unsauber programmiert, kann die Stabilität der PB-Anwendung nicht gewährleistet werden, aber wenn man sein Tool mehrfach testet und dafür sorgt, dass es nicht abstürzt, in dem man richtig programmiert, dann kann da nicht viel passieren.
Ich habe bereits ein Werkzeug entwickelt "Multicolor Procedure List" und hatte bis jetzt überhaupt keine Abstürze oder sonstiges. (Screenshot: http://www.rsbasic.de/screenshots/67984602089849.png )
Bisonte hat geschrieben:Im Grunde schwebt mir "erstmal" nur ein Autosave alle x minuten
Du könntest einen Menü-Event auslösen:

Code: Alles auswählen

PostMessage_(Handle1, #WM_COMMAND, 2, 0);"Speichern"
PostMessage_(Handle1, #WM_COMMAND, 4, 0);"Alles speichern"
Du musst nur vorher überprüfen, ob die offenen Dateien bereits auf der Festplatte gespeichert wurden:
%FILE : Dateiname und Pfad des aktuellen Quellcodes. Leer, wenn dieser noch nicht gespeichert wurde.
Aber das gilt nur für die aktuelle Datei. Du musst mal schauen, wie du das am besten machen möchtest.

Wegen "großer Monitor": Bei mir jedenfalls wird PB immer maximiert (ist doch klar :mrgreen: ), weil ich möchte nämlich viele Zeilen auf einmal sehen und nicht extra viel scrollen. Und da ich sowieso mehrere Monitore besitze, kann ich so oder so mehrere Fenster parallel anzeigen.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
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

Re: Fragen zur IDE Personalisierung

Beitrag von ts-soft »

Controlling the IDE - What features would you like to see?
Da dies noch nicht für PB4.60 umgesetzt wurde, kannste dort noch Deine Wünsche äussern :wink:

@RSBasic
Bei mir wird nichts maximiert, außer Video oder Fernsehen. Und dauernd den Kopf bewegen um auf einem weiteren
Monitor zu gucken tue ich mir nicht an, solange alles auf einem passt (außerdem hat mein Zweit-Monitor die Grätsche
gemacht :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
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Fragen zur IDE Personalisierung

Beitrag von Bisonte »

@RSBasic:

Also ich hab den Code zum vergrössern der Toolbar mal probiert, aber ich krieg es einfach nicht hin...

Die Icons sind alle ausnahmslos im 32x32 format, vorsichtshalber hab ich die darstellung innerhalb der Menues ausgeschaltet
aber es wird nix.

Ungeändert ist das Handle2 immer 0.
wenn ich bei der ListWindows() Prozedure ein ProcedureReturn 0 einfüge (so hab ich das mit EnumChildWindows_ in Erinnerung) damit er bei fund auch endet, dann hat er zwar handles aber ich seh keine veränderung.

was mach ich da verkehrt ?
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Fragen zur IDE Personalisierung

Beitrag von RSBasic »

@Bisonte
Das Ändern der ToolBarIcon-Größe geht doch nicht bzw. es wäre nicht sinnvoll.
Mal angenommen, es würde funktionieren mit dem Ändern der ToolBarIcon-Größe, aber dann hätte man das Problem, dass sich zwei Bereiche überschneiden. (ToolbarWindow32 (ToolBar-Leiste) und PureCanvas (Tableiste))
Da müsstest du das PureCanvas-Gadget nach unten verschieben. Zusätzlich musst du noch das Scintilla-Gadget ebenfalls nach unten verschieben und die Größe anpassen. Selbst wenn diese Gadgets geändert bzw. verschoben werden, werden die Gadgets nach einem Resize- oder Redraw-Event wieder zurückgesetzt, da PB IDE diese Gadgets automatisch an die Fenstergröße anpasst. Also müsstest du andauernd die Größen und Positionen ändern, aber das wäre sinnfrei.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Fragen zur IDE Personalisierung

Beitrag von Bisonte »

Schade eigentlicht... Trotzdem danke.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten