Einfaches Projekt zum Runterladen?
Re: Einfaches Projekt zum Runterladen?
Eine kleine Frage noch: es scheint keinen Befehl zu geben, mit der man ein Image verkleinert/vergrößert auf einen Canvas zeichnet. Sehe ich das richtig?
Da ich das Original-Image nicht immer wieder nachladen möchte, muss ich es auf ein temporäres Image zeichnen, das temporäre Image verkleinern und dann auf den Canvas zeichnen. Oder geht das irgendwie eleganter?
Da ich das Original-Image nicht immer wieder nachladen möchte, muss ich es auf ein temporäres Image zeichnen, das temporäre Image verkleinern und dann auf den Canvas zeichnen. Oder geht das irgendwie eleganter?
Re: Einfaches Projekt zum Runterladen?
Result = ResizeImage(#Image, Width, Height [, Mode])
Um das alte Image zu behalten ist es besser ein neues Image zu erstellen (CreateImage) und in diesem das Image zu zeichnen (DrawImage(ImageID, x, y [, Width, Height]))
Oder noch einfacher. CopyImage -> ResizeImage
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Einfaches Projekt zum Runterladen?
Da steht die Lösung, ich hatte sie komplett übersehen: mit [, Width, Height] kann man vergrößern und verkleinern.
Re: Einfaches Projekt zum Runterladen?
Hab ich inzwischen auch gemerkt. Vor allem scheint es mir, dass Fonts nicht immer geladen werden.die Prüfung des Rückgabe wertes macht sinn.
Aber warum nicht? Warum geht etwas nicht, was sonst geht?
Und vor allem: wenn ein Fehler auftritt, was tut man dann? Einfach den gescheiterten Aufruf so lange wiederholen, bis er funktioniert?
Re: Einfaches Projekt zum Runterladen?
Die Frage ist nicht so einfach zu beantworten. Warum etwas nicht mehr funktioniert hängt von der jeweiligen Funktion und Situation ab. Z.B. kann der exklusive Zugriff auf eine Datei verweigert werden. Dann geht es natürlich darum das im Programm alles richtig läuft.
Hier kann tatsächlich das wiederholen helfen, wenn der oder die andere Anwender oder Anwendung seinen Zugriff beenden.
Unter Windows wird eigentlich immer ein Font geladen, da habe ich seit Windows 3.1 eher selten Ressourcen Probleme. (Damals waren die Anzahl der Brush, Pen, etc. Sehr begrenzt.) Manchmal kann eine Fehlermeldung mit dem MessageRequester helfen.
Hier kann tatsächlich das wiederholen helfen, wenn der oder die andere Anwender oder Anwendung seinen Zugriff beenden.
Unter Windows wird eigentlich immer ein Font geladen, da habe ich seit Windows 3.1 eher selten Ressourcen Probleme. (Damals waren die Anzahl der Brush, Pen, etc. Sehr begrenzt.) Manchmal kann eine Fehlermeldung mit dem MessageRequester helfen.
Mostly running PureBasic <latest stable version and current alpha/beta> (x64) on Windows 11 Home
Re: Einfaches Projekt zum Runterladen?
Also ganz einfach
oder spricht etwas dagegen?
Code: Alles auswählen
Repeat
FontNr = LoadFont(#PB_Any, "Arial", 24)
Until FontNr > 0
- HeX0R
- Beiträge: 2954
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 - Kontaktdaten:
Re: Einfaches Projekt zum Runterladen?
Ich hatte noch nie den Fall, dass ein Font nicht geladen wird, die Schleife ist daher unnötig und auch noch falsch!
Der Rückgabewert, wenn Du #PB_Any nutzt, ist eine Memoryadresse, die kann aber (wegen den signed Variablentypen von PB) auch negativ sein.
Der Rückgabewert, wenn Du #PB_Any nutzt, ist eine Memoryadresse, die kann aber (wegen den signed Variablentypen von PB) auch negativ sein.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}
Re: Einfaches Projekt zum Runterladen?
Bei Windows wird immer eine Font (System-Font) geladen (wenn ich mich recht erinnere).Plenz hat geschrieben: ↑12.05.2021 02:10 Also ganz einfachoder spricht etwas dagegen?Code: Alles auswählen
Repeat FontNr = LoadFont(#PB_Any, "Arial", 24) Until FontNr > 0
Dabei ist nicht klar (ohne weitere OS Apis) ob die angeforderte Font tatsächlich geladen wurde.
Re: Einfaches Projekt zum Runterladen?
Danke für den Hinweis auf negative Nummern!
Ich schreibe ein Programm, das unter Windows und Linux Mint laufen soll. Beim Erstellen bzw. Benutzen eines Fonts kommt es immer wieder zu Abstürzen, vor allem unter Linux, aber auch unter Windows.
Mein Verdacht richtet sich momentan auf die Größe der Font-Nummer bzw. Font-ID. Ich habe sie in einem Word gespeichert, das reicht wohl nicht, ich werde einfach mal Quad benutzen.
Ich schreibe ein Programm, das unter Windows und Linux Mint laufen soll. Beim Erstellen bzw. Benutzen eines Fonts kommt es immer wieder zu Abstürzen, vor allem unter Linux, aber auch unter Windows.
Mein Verdacht richtet sich momentan auf die Größe der Font-Nummer bzw. Font-ID. Ich habe sie in einem Word gespeichert, das reicht wohl nicht, ich werde einfach mal Quad benutzen.
Re: Einfaches Projekt zum Runterladen?
So programmiert man sehr schön ein Speicherleck.Plenz hat geschrieben: ↑12.05.2021 02:10 Also ganz einfachoder spricht etwas dagegen?Code: Alles auswählen
Repeat FontNr = LoadFont(#PB_Any, "Arial", 24) Until FontNr > 0
Objekte die #PB_Any angelegt werden müssen explizit mit Free Objekt wieder freigegeben werden.
FontPB = LoadFont(#PB_Any, ...) -> FreeFont(FontPB).
Es wird nur beim beenden vom Programm die Objekte intern wieder Freigegeben.
Code: Alles auswählen
For i = 1 To 10
FontNr = LoadFont(#PB_Any, "Arial", 24)
Debug "Dynamik FontNr: " + FontNr + " / OS Handle: " + FontID(FontNr)
Next
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive