 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 03.12.2006, 23:00 Titel: Problem mit GUI |
|
|
moin FB- und QBFreunde
ich hab da ein Problem.. ich bin gerade dabei eine Gui-LIB zu proggen.. die ich später in meinen Programmen verwenden möchte:
Nun passiert es ständig, dass bei der GUI nach einer gewissen Zeit jegliche schrift verschwindet,
Und das ganze Programm ruckelt trotz einer relativ guten FPS.
Um ruckelfrei zu laufen benötigt es mindestens 15 FPS.
Bei mir läuft es mit rund 60 und trotzdem ruckelt es, wenn der Schrift-Bug
auftritt
für die Schrift verwende ich die GFxLIBTTF mit FB v0.15b und WindowsXP
TTF.LIB habe ich geringfügig modifiziert und in meine LIB integriert..
Hier der Code:
http://k3nnyhtn.k3.funpic.de/ActionGUI_Bug_Test.zip
Die GUI ist wirklich nur zu 5% fertig bisher gibt es nur Buttons, Checkboxen und BUG-haltige Fenster (verschiebbar).. ich kann erst weiterarbeiten, wenn der BUG weg ist..
Evtl. muss ich auf eine andere Schrifterstellungsmethode umsteigen..
Ich hoffe ihr könnt mir helfen
gruß d!rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Eisbaer

Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
Verfasst am: 03.12.2006, 23:36 Titel: GUI-Probleme |
|
|
Also erst einmal ein Lob zu deinem Posting, wenn alle ihre Frage und Probleme so gut und verständlich Posten würden wie du das hier gemacht hast, währe das schon ziemlich das Ultimative, und der Leser freut sich auch noch;
Ähm, zu deinem Problem:
Gut es ist etwas spät und ich hab jetzt auch nicht mehr so den Blick dafür..
aber ich habe festgestellt das dein Tool in der Demo version nicht gerade speicherschonend umgeht; Und auf meinem PC 100% Auslastung erhält, bzw. der Speicherverbrauch rapide ansteigt auch wenn man im Programm überhaupt nichts bewegt oder verschiebt.
So und wenn dein tool einen Wert von über 10.400 K im Taskmanager erreicht hat, ist die Schrift dann weg, und das Ruckeln beginnt.
Und daran denke ich liegt es, der maßive Speicherverbrauch den MS nicht nachkommen kann oder mehr reservieren kann.
Du müsstest also quasi nach jedem zeichnen den in deiner MemoryCopy funktion belegten Speicher wieder freigeben, damit er im nächten Durchlauf wieder zur Verfügung steht dann würde dein tool auch gut funktonieren, und kein Speicher Problem bekommen.
Sorry, aber um die Urzeit habe ich leider nicht die Kraft mehr das durchzuknobeln und umzuschreiben,
könnte dir dann evt. Morgen was Posten was den Fehler beheben würde.
Hoffe das hilft dir jetzt trotzdem schon einmal,
Grüße Eisbaer _________________ Eigene Webseite:
http://www.eisbaer-studios.de |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 03.12.2006, 23:49 Titel: |
|
|
vielen dank für die hilfe, ja, das mit dem Speicher ist mir auch schon aufgefallen..
wenn du dann wieder richtig denken kannst kannst du mir ja vllt mal eine lösung geben?
ich weis leider net, wie ich speicher freigeben kann..
gruß d1rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 04.12.2006, 18:09 Titel: |
|
|
Wahrscheinlich hat das damit zu tun, dass irgendwelches ALLOCATE- oder IMAGECREATE
-Zeugs nicht korrekt freigegeben wird...
Du kennst dein Progamm am besten, müsstest du mal schauen...
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.12.2006, 20:26 Titel: |
|
|
also.. ich hab ein bissl gewerkelt und siehe da...
Dieser Befehl ist schuld..
er verursacht den gewaltigen ressourcenverbrauch
Code: | Function SetFont(ByVal FontName As String = "Arial", ByVal FontSize As uInteger = 12, ByVal FontOptions As uInteger = 0) As HFONT
Dim nHeight As uInteger
Dim nWidth As uInteger
Dim nEscapement As uInteger
Dim nOrientation As uInteger
Dim fnWeight As uInteger
Dim fdwItalic As uInteger
Dim fdwUnderline As uInteger
Dim fdwStrikeOut As uInteger
Dim fdwCharSet As uInteger
Dim fdwOutputPrecision As uInteger
Dim fdwClipPrecision As uInteger
Dim fdwQuality As uInteger
Dim fdwPitchAndFamily As uInteger
Dim hFont As HFONT
Dim hDC As HDC
hDC = GetDC(FB_Win32.Wnd)
nHeight = -MulDiv(FontSize, GetDeviceCaps(hDC, LOGPIXELSY), 72)' "pt" sized
nWidth = 0
nEscapement = NULL
nOrientation = NULL
If FontOptions And Bold Then fnWeight = 700 Else fnWeight = 100
If FontOptions And Italic Then fdwItalic = TRUE
If FontOptions And Italic Then IsItalic = TRUE Else IsItalic = FALSE
If FontOptions And Underline Then fdwUnderline = TRUE
If FontOptions And StrikeThrough Then fdwStrikeOut = TRUE
fdwQuality = ANTIALIASED_QUALITY
fdwCharSet = NULL
fdwOutputPrecision = NULL
fdwClipPrecision = NULL
fdwQuality = NULL
fdwPitchAndFamily = NULL
hFont = CreateFont( _
nHeight, _
nWidth, _
nEscapement, _
nOrientation, _
fnWeight, _
fdwItalic, _
fdwUnderline, _
fdwStrikeOut, _
fdwCharSet, _
fdwOutputPrecision, _
fdwClipPrecision, _
fdwQuality, _
fdwPitchAndFamily, _
StrPtr(FontName) _
)
DeleteObject SelectObject(MemDC, hFont)
Return hFont
End Function
|
So da das ganze ja nicht von mir ist, sondern aus der TTF lib ist mir
das ganze ein Rätsel.. ich habe nun nochmal nach meinem alten Threat gesucht "Problem mit ttf" oder so und dort...
(wollte noch danke sagen ytwinky )
jofers 2. ttf LIB heist mainz(mzlib) oda sowas
Ich habe meine LIB darauf umgestellt und siehe da, der selbe Fehler
Es gibt auch einen befehl mzsetfont [font], [größe] ...
der auch jedem aufruf Windows speicher entzieht..
Hier verbirgt sich nun meine mögliche lösung.. welche zugleich ein großes Problem darstellt..
um den Speicherbug zu beheben habe ich nun am anfang meines Proggis
die Schriftart definiert.. "arial",9 bloß kann ich jetzt innerhalb meiner Schleife kein mzsetfont mehr verwenden.. sobald es n-mal aufgerufen wird (egal ob gleiche Parameter)
zieht es auch n-mal soviel ram.. und da ich die schriftgröße in buttons,
in Fenstertiteln belibig veränden muss brauche ich diesn befehl
Ich brauche eine andere Lösung...
Eisbaer hat Folgendes geschrieben: | Und auf meinem PC 100% Auslastung erhält |
und wieder ein Problem was ich gelöst hab...
ich habe aus..
das hier gemacht..
Code: |
sleep 10
If Tz+2 < Timer then
Tzz=1
endif
Sleep1$=STR(INT((Tz+2 )-Timer))
screencopy 0,1
cls
Loop1:
R=mx
R1=my
GetMouse mx,my,mr,mb
If mx=R and my=R1 and mb<1 and inkey$="" then
If Tzz=1 then
sleep 1
goto LooP1
endif
else
Tz=timer
Tzz=0
endif
'EDIT 1: lol hab fehler beim pasten gemacht
|
ich habe also einen Sleepmode eingefügt, sobald sich nichts bewegt, nichts gedrückt und keine andere aktivität aktiv ist, aktiviert ( ) sich der Sleepmode nach 2 Sekunden
keine elegante Lösung ich weis... aber
Hier ist das neue Proggi mit mainz ttf lib
http://k3nnyhtn.k3.funpic.de/ActionGUI.zip
Lange Rede kurzer sinn... :
1. Ich benötige eine andere ttf-Lösung.. evtl. eine ohne den BUG. ich werde jeglich, evtl. Libs die ihr mir evtl. geben könnt auf den BUG testen, irgendwie muss das doch zu machen sein, sonst muss ich selber ran eine ttf lib proggen.. (vllt muss ich auch nur einfach etwas in der setfont routine ändern)
2. Ich brauche eine andere CPU schonungs lösung.. denn diese funktioniert schon nicht mehr spätestens wenn das Programm irgendwas verarbeiten soll was mehrere schleifendurchläufe benötigt (länger als 2 sekunden)
Ich bin für jegliche art von hilfe dankbar
phuu mann oh mann meine tasten qualmen
euer, der FB-Community, treu ergebener...
d!rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss 
Zuletzt bearbeitet von d1rty.h4rry am 04.12.2006, 20:32, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 04.12.2006, 20:28 Titel: |
|
|
Jetzt soll ich erst noch 0.15 runterladen
Ne, zu viel Aufwand.
Du hast in einer Funktion (Function PrintFont) Exit Subs drin. (Gibt vielleicht keine Meldung, aber trotzdem ist es ein Fehler).
Sonst find ich so spontan keine Fehler. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.12.2006, 20:41 Titel: |
|
|
danke für deinen beitrag
und..
ne ne, die exit subs sind nur zum prüfen ob die schrift ausserhalb des bildschirmes liegt
Code: | IF X>SCRX-GetTextWidth(Text) then Exit Sub
IF Y>SCRY-10 then Exit Sub
IF X<0 then Exit SUB
IF Y<0 then exit sub |
nicht relevant für mein problem, bei mainz-lib kann das unberücksichtigt werden, bei der andern gabs jedesmal nen "nicht senden"- fehler,
wenn die schrift über den Bildschirmrand hinaus ging
d!rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 04.12.2006, 20:42 Titel: |
|
|
also wenn man, nachdem der Text verschwindet, eine Weile wartet, kommt er wieder... und komische Zufallsbilder... sag ma, auf welchen Speicher greifst du zu? Und von Slowdowns merk ich nicht viel. Bei mir geht alles flüssig. Aber dennoch solltest du eine Abfrage einbauen, dass wenn GetMouse dir 0 oder -1 zurückliefert, dann auch das Fenster nicht mehr verschoben wird... wirkt unsinnig... |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.12.2006, 21:19 Titel: |
|
|
ja.. ok..
Ich hat Folgendes geschrieben: | Die GUI ist wirklich nur zu 5% fertig bisher gibt es nur Buttons, Checkboxen und BUG-haltige Fenster (verschiebbar).. ich kann erst weiterarbeiten, wenn der BUG weg ist.. |
PMedia hat Folgendes geschrieben: | Aber dennoch solltest du eine Abfrage einbauen, dass wenn GetMouse dir 0 oder -1 zurückliefert, dann auch das Fenster nicht mehr verschoben wird... wirkt unsinnig... |
deartige bugs werden doch noch beseitigt.. ich stehe doch erst am anfang..
natürlich ist es gut das du das entdeckt hast danke (nich das mir das nicht aufgefallen wäre )
PMedia hat Folgendes geschrieben: | also wenn man, nachdem der Text verschwindet, eine Weile wartet, kommt er wieder... und komische Zufallsbilder... sag ma, auf welchen Speicher greifst du zu? |
diese zufallsbilder sind lediglich durch die überlastung des Speichers
entstanden.. ich hab weiter oben auch noch meine Lib mit einer anderen schriftlib gepostet..
und da ich so ein netter mensch bin ( ) poste ich es hier nochma..
http://k3nnyhtn.k3.funpic.de/ActionGUI.zip
die cpu und speicherbugs sind zwar weg, aber dafür habe ich andere Problem, welche mit der Ursache und der beseitigung der Bugs entstanden sind..
lies weiter oben
da steht alles
d!rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.12.2006, 22:26 Titel: |
|
|
kennt jemand eine gute variante die performance aus einem FB Programm zu verbessern.. also die CPU Last zu minimieren?
und gibt es noch andere gute ttf-libs?
ich glaube aber am ende ist es viel besser ganz von ttf loszukommen und eigene font in eigenen formaten zu schreiben oder?
d!rty h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 04.12.2006, 22:30 Titel: |
|
|
Wieso darfst du doppelt posten???
FreeType vlt.? Beispiele findst du ja im FB-Ordner... |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 04.12.2006, 22:33 Titel: |
|
|
oh sorry
aba egal.. freeTypes, da muss ich mich mal schlau machen
thx
d1rty.h4rry _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
Eisbaer

Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
Verfasst am: 04.12.2006, 23:48 Titel: |
|
|
Ok hätte da noch eine Andere Lösung für dich parat...
Lade die Fonts einmal und mach in jeder Größe die du im Programm haben willst ein Bild-Font der Buchstaben. dann kannst du sie mit wenig Aufwand in deinem tool nutzen.
Grüße Eisbaer _________________ Eigene Webseite:
http://www.eisbaer-studios.de |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 05.12.2006, 12:11 Titel: |
|
|
Aber die Möglichkeit, Windows-Fonts einzubinden, ist mit Sicherheit besser...
jb _________________ Elektronik und Programmieren |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 05.12.2006, 14:28 Titel: |
|
|
Hm, da ich weiß, dass Dusky_Joe an 'ner GUI arbeitet/gearbeitet hat:
Assembler.
Einige Sachen zum Handlen der Controlls lassen sich mit großer Sicherheit mit ASM beschleunigen.
Dazu müsste man halt testen, wo das Programm wie lange drin ist.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 05.12.2006, 20:16 Titel: |
|
|
d1rty.h4rry hat Folgendes geschrieben: | ne ne, die exit subs sind nur zum prüfen ob die schrift ausserhalb des bildschirmes liegt
|
Was du damit anstellst, spielt mir weniger eine Rolle.
Aber man verlässt doch eine Funktion nicht mit Exit Sub, sondern wenn schon mit Exit Function oder Return
Annyway.
Alle paar Sekunden verbraucht das Programm mehr Speicher, das kann nicht normall sein.
Bingo:
So grob betrachtet, rufst du setfont zu oft auf, oder es ist verbuggt.
Ich habs mal überall entfernt und bei
Code: | GUI_FPS_Timer = Timer +1
t=timer+1
setfont "Arial",9 '<---
do
CalcFPS
if timer>t then
b=b+1
t=timer+1
endif |
Eingefügt.
Jetzt läuft es schon besser.
Das setfont "Arial",9 kann man ja auch ganz rausnehmen, die Schrift ändert sich einfach.
Wieso ist es eigentlich eine Funktion, wenn du den Rückgabewert gar nicht verwendest?
Aha, als Sub get Setfont auch. (Spart scheinbar auch noch Speicher)
Noch viel Spass beim weiter ausprobieren . _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
d1rty.h4rry

Anmeldungsdatum: 05.10.2006 Beiträge: 116 Wohnort: Cassel
|
Verfasst am: 05.12.2006, 22:29 Titel: |
|
|
ok. danke für die vielen antworten..
@Michael Frey:
-----------------
also zum einen:
Michael Frey hat Folgendes geschrieben: | Aber man verlässt doch eine Funktion nicht mit Exit Sub, sondern wenn schon mit Exit Function oder Return |
lol, sorry das war mein fehler, das ist schon klar
und zum anderen:
diese Funktion ist überhaupt garnet von mir sondern von der ttf-lib die ich
eingebunden habe.. ich kann also nicht genau sagen, wie sie funktioniert
ich verwende sie lediglich
Michael Frey hat Folgendes geschrieben: | So grob betrachtet, rufst du setfont zu oft auf, oder es ist verbuggt.
Ich habs mal überall entfernt und bei |
Ich brauchte diese vielen aufrufe zum ändern der schriftgröße innerhalb des proggis
du hast alle entfernt und eins an den anfang gesetzt.. gut, das habe ich auch schon getan.. und dadurch ja eben herausgefunden, das es an diesem befehl liegt
es läuft viel besser.. es schreibt net ständig den speicher voll das ist gut..
aber geholfen ist mir damit auch net..
gruss d1rty h4rry
@Mao:
-------
Gut, das mit dem Handeln und die eigendliche GUI-Anwendung usw.
kommt später.. es geht mir bei diesem Thread erstmal nur darum
dass alles Fehlerfrei und perfekt gezeichnet wir, gleich um grafik bugs auszuschließen
( ausserdem hab ich net so viel ahnung von assembler )
mit dem Beschleunigen der Handles werde ich mich später befassen
gruss d1rty h4rry
@Eisbaer:
-----------
gute Idee, ich werde mal sehen, wass ich tun kann..
oder ich könnte evtl. eine neue setFont Sub schreiben, welche ohne bugs funktioniert.. das wäre natürlich das beste
gruss d1rty h4rry
-----------
-----------
-----------
also ich nehme deshalb windows fonts, weil sie sich leicht in der größe und farbe ändern lassen, und weil es sehr viele verschiedene gibt, die man
einfach nur einzufügen braucht..
aber die notlösung wäre natürlich, selber eine LIB für TTF, oder ein eigenes Font system zu entwickeln..
alles ein bisschen kompliziert...
gruss d1rty h4rry
------------------------ _________________ "Das Fernsehen ist so etwas wie eine geistige Neutronenbombe, das Gehirn wird weggestrahlt. Nur der Kopf bleibt da!" -Olliver Kalkhofe
-> http://fernsehkritik.tv/tv-magazin/
"Wenn alle Stricke reißen, dann häng ich mich auf", Karl Kreiss  |
|
Nach oben |
|
 |
marzec
Anmeldungsdatum: 13.10.2004 Beiträge: 267
|
Verfasst am: 05.12.2006, 23:59 Titel: |
|
|
@mao, kann das argument assembler nicht ganz nachvollziehen. dadurch wird die von winblows reportete cpu auslastung auch nicht gedrückt. die einzige option ist der einsatz von sleep. das gibt dem os das signal dass das aktuelle programm unterbrochen werden und ein anderes weiter ausgeführt werden kann. die von dirty harry implementierte variante sollte soweit funktionieren auch wenn sie ein wenig overkill ist. ein simples sleep(0 im main loop sollte vollkommen ausreichen.
@problem: nachdem der code zu setFont nicht in der zip war die ich runtergeladen habe kann ich nur vom oben geposteten source ausgehen. dort wird jedesmal ein neues font objekt erstellt was ein wenig schwachsinnig ist. ein win api font wird definiert durch sein face == fontname, e.g. arial, die pointsize, oder was auch immer du für eine metrik verwendest und den style. es gibt noch ein paar andere attribute aber die sind derweilen nicht von belang.
was ich damit zum ausdruck bringen will: den in der methode returnierte handle hFont solltest du unbedingt weiterverwenden. e.g. du erstellst einen font arial, grösse 20, normaler style und der wird von button 1, checkbox 3 etc. verwendet. alles was du tun musst ist diesen font zu selektieren bevor du den text zeichnest. funktioniert per selectobject.
die farbe des texts ist keine eigenschaft des fonts selbst sondern die aktuel gesetzte farbe des device context deines windows, nehem an das ist in setcolor.
was du also machen solltest:
1. erstelle ein font object für jeden font den du verwenden willst wie in der setfont methode demonstriert und speichere den handle. nenn die methode vll. createfont
2. jedesmal wenn du text mit einem bestimmten font zeichnen willst setzte den font per selectobject wie in der vorletzten zeile von setfont
3. solltest du einen font nicht mehr benötigen oder dein programm beenden den font mit deleteobject löschen, siehe ende der setfont methode.
kann leider hier nix coden, kaputte tastatur.
freetype wird deine leiden auch nicht vermindern sondern eher vermehren. als alternative kann ich nur yagl nennen muahah.
hth,
mario _________________ Yagl - yet another gameprogramming library |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 06.12.2006, 14:14 Titel: |
|
|
@marzec:
Ich bin davon ausgegangen, dass trotz Sleep-Anweisung relativ große CPU-Auslastung entsteht.
Und das Handlen von hunderten Controlls (je nachdem, inwieweit die aufeinander aufbauen) is' nunmal ressourcenfressend.
Und es hat, erfahrungsmäß, auch geklappt.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 06.12.2006, 19:34 Titel: |
|
|
Hab den Thread erhlich gesagt vorher nciht ganz gelesen
d1rty.h4rry hat Folgendes geschrieben: | und zum anderen:
diese Funktion ist überhaupt garnet von mir sondern von der ttf-lib die ich
eingebunden habe.. ich kann also nicht genau sagen, wie sie funktioniert
ich verwende sie lediglich |
Kannst du mal ein Korrektes Beispiel Programm Posten?
SetFont ist noch immer eine Function, deren Rückgabewert sicher einen Sinn hat.
Du verwendest SetFont im moment als Subroutine und das macht keinen Sinn.
Code: | Dim Shared BitmapV4Header As BitmapV4Header
Dim Shared MemBMP As HBITMAP
Dim Shared MemDC As HDC
Dim Shared MemSprite As Any Ptr
Dim Shared IsItalic As BOOL |
Die Sub ist kopiert?
Woher stammen diese Globalen Deklarationen?
Im Allgemeinen vermeidet man Globale Variabeln und so vermute mal dort den Fehler. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|