TreeviewGadget Icons

Anfängerfragen zum Programmieren mit PureBasic.
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

TreeviewGadget Icons

Beitrag von stevie1401 »

Ich habe einem Treegadget Icons hinzugefügt.
Unter Linux haben diese Bilder die Origonalgröße im Treegadget (64x64), unter Windows musste ich verblüfft feststellen, dass die Icons nur 16x16 gross sind und nicht wirklich erkennbar sind.
Kann ich das irgendwie ändern?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: TreeviewGadget Icons

Beitrag von RSBasic »

Nein kann man nicht. Mit WinAPI schon und da die Icons unter Linux anscheinend in einer 64x64-Größe angezeigt werden, musst du nur eine Abfrage miteinbauen. Falls Windows verwendet wird, dann den folgenden WinAPI-Code ausführen: http://www.rsbasic.de/aktualisierung/wi ... A4ndern.pb
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: TreeviewGadget Icons

Beitrag von stevie1401 »

Nur zum Verstehen:
Ich erstelle eine PseudoImageList, da ich nur über diese die Größe der Icons einstellen kann?
Dann setze ich irgendein Bild in das TreeGadget, damit das Gadget die Größe des Bildes erkennt und übernimmt.
Danach kann ich dann das Bild wieder löschen. Ja?
Ich füge dem Treegadget die Icons NICHT über eine ImageList ein, deshalb meine Frage.
Ich kann das zwar bein Windows pseudomäßig gerne 1x machen, danach muss es aber möglich sein Icons und Text ohne irgendwelche Listen dem TreeGadget hinzufügen zu können.

Wie sieht es eigentlich unter OsX aus? Kann ich dort Icons beliebiger Größe hinzufügen oder benötige ich dort auch API-Code?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: TreeviewGadget Icons

Beitrag von mk-soft »

Schau dir mal mal "SetGadgetItemData()" an. Ich glaube das kannst du gebrauchen :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: TreeviewGadget Icons

Beitrag von stevie1401 »

Wie kann ich denn damit die Größe der Icons in einem Treeviewgadget ändern??
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: TreeviewGadget Icons

Beitrag von stevie1401 »

RSBasic, dein Beispiel funktioniert bei mir nicht unter Windows (PB 5.23 Vollversion).
Das Programm hängt sich auf und es kommt der Hinweis, dass der Debugger unerwartet endete.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: TreeviewGadget Icons

Beitrag von RSBasic »

Beende einmal testweise deine Antivirensoftware und probiers erneut.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: TreeviewGadget Icons

Beitrag von stevie1401 »

Ja, nun geht es.
Bedeutet das, man kann unter Windows nur ohne Virenscanner Programme laufen lassen? ^^
Oder hat das was mit der IDE zu tun?

Ich denke mal DAS ist der Befehl, um dem Treegadget zu sagen, es soll grössere Icons machen.
NewImageList = ImageList_Create_(32, 32, #ILC_COLOR32 | #ILC_MASK, 0, 10)

Kann ich, nachdem ich den Befehl ausgeführt habe, nun beliebige Icons mit folgendem Befehl dem TreeGadget hinzufügen?
For a=1 To 5
AddGadgetItem(1,-1,"Test-Item",IrgendeinAndesGeladenesBild,0)
Next

Oder muss ich der NewImageList Icons hinzufügen? Wenn ja, wie?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: TreeviewGadget Icons

Beitrag von RSBasic »

stevie1401 hat geschrieben:Bedeutet das, man kann unter Windows nur ohne Virenscanner Programme laufen lassen? ^^
Natürlich nicht :D , aber du kannst Ausnahmen in deiner Antivirensoftware hinzufügen. Füge einfach das komplette PureBasic-Verzeichnis und die kompilierten Executable-Dateien (PureBasic_Compilation0.exe, PureBasic_Compilation1.exe, ...) als Ausnahme-Regel hinzu, damit diese ignoriert werden.
Das musst du nur bei dir machen. Nicht der User, der deine Anwendung benutzen möchte.
stevie1401 hat geschrieben:Oder hat das was mit der IDE zu tun?
Es hat was mit der Kompilierung zu tun. Eine Antivirensoftware ist bei einer Kompilierung sehr empfindlich und aufgrund des Kompilierungsvorgangs (und natürlich weil die erstellte Executable-Datei neu ist) versucht deine Antivirensoftware, die Anwendung (einschließlich Debugger) auf Viren und Verhaltensmuster zu überprüfen. Manchmal oder oft braucht das Antivirenprogramm etwas länger, als die in PB festgelegte Timeout-Zeit. Diese Zeit kannst du jederzeit erhöhen (Datei > Einstellungen > Debugger > Zeitlimit für den Start des Debuggers (Millisekunden)) oder du fügst Ausnahmeregelungen hinzu.
Da deine Anwendung während der Überprüfung einfach von der Antivirensoftware pausiert wird, bekommt der Debugger keine Rückmeldung und du bekommst nach Ablauf der Timeout-Zeit die von dir genannte Meldung.

Bezüglich des Codes schaue ich später an.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: TreeviewGadget Icons

Beitrag von stevie1401 »

Sehr schön erklärt, vielen Dank!
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Antworten