ListViewGadet() und SetGadgetFont() vertragen sich nicht

Fragen und Bugreports zur PureBasic 4.0-Beta.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

ListViewGadet() und SetGadgetFont() vertragen sich nicht

Beitrag von AND51 »

Hallo!

Eines vorweg: Ich benutze noch 3.94, hier ist mir auch der Fehler aufgefallen, kann mir aber gut vorstellen, dass der Fehler in 4.00 noch schlummert. Auch wenns ein bisshcne spät dafür ist: Besser spät als nie. (Hoffe, ab das richtige Subforum erwischt.)

Also, der Bug ist folgender: Ich füge einem ListViewGadget() so viele Einträge hinzu wie möglich, ohne, dass schon Scrollbalken erscheinen. Dann setze ich mittels SetGadgetFont() die Schriftart, bzw. -größe höher.

In meinem Programm habe ich von der Windowsstandardschriftart (XP-Style) auf Arial, Größe 11 gewechselt.
Der Bug: Ein Eintrag war "verschwunden". Die größere Schriftart führt dazu, dass eigentlich Scrollbalken erscheinen müssten, die nur kommen, wenn ich einen Eintrag anklicke und mit den Pfeiltasten ganz runterblättere.
Ich habe es auch schon mit InvalidateRect_() und UpdateWindow_() probiert (obwohl letzteres bei mir ja sowieso nie funktioniert), aber nichts hilft.

Die einzige Lösung ist: Erst die Schriftart ändern, dann die Items dem ListViewGadget() hinzufügen und es erscheinen wie gewünscht die Scrollbalken.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
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 »

>> Die einzige Lösung ist: Erst die Schriftart ändern
So ist es auch üblich. Man stellt erst die Schrift ein :wink:
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
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

OK, selbst wenn. Was mach ich denn, wenn ich dem Benutzer die Möglichkeit geben will, die Schriftart zur Laufzeit des Programms z ändern? Dann geschieht das zwangsläufig nachträglich.

So oder so, ich empfinge diesals ein Fehler/Bug. Er ist zwar lösbar, aber unangenehm. Ich fordere hier ja keinen auf, sofort etwas dagegen zu unternehmen, ich hoffe nur, der Fehler wird vielleicht doch behoben.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

AND51 hat geschrieben:Ich fordere hier ja keinen auf, sofort etwas dagegen zu unternehmen, ich hoffe nur, der Fehler wird vielleicht doch behoben.
selbst, wenn es ein Fehler sein sollte: Geh nicht davon aus, dass noch
irgendwas an der V3.94 geändert wird. Höchste Zeit also, mal endlich auf die
4.0 umzusteigen.

Grüße ... Kiffi
a²+b²=mc²
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

evtl. ist es kein PB-Bug, sondern eine WIN-API verhaltensweise.

probier als workaround mal direkt nach dem ändern der schriftart den inhalt erneut einzufügen.
also, analog zu SetGadgetText(GetGadgetText())


PS: moin, Kiffi, auch schon auf Deck. :D
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

<OT>
Kaeru Gaman hat geschrieben:PS: moin, Kiffi, auch schon auf Deck. :D
joh, datt. Wir haben da so einen kleinen Wecker, der speziell an
Wochenenden schon um 6 Uhr morgens 'Papa, Papa!, PAPA!' ruft. ;-)

</OT>

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Kiffi hat geschrieben:Geh nicht davon aus, dass noch
irgendwas an der V3.94 geändert wird.
Um Gottes Willen nein! Mir ist schon klar, dass die Version 3.94 depreciated ist.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Gesperrt