AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Listview, CustomDrawSubItem, Text wird schwarz
Thema durchsuchen
Ansicht
Themen-Optionen

Listview, CustomDrawSubItem, Text wird schwarz

Ein Thema von FrankJ28 · begonnen am 23. Okt 2011 · letzter Beitrag vom 25. Mai 2018
Antwort Antwort
Seite 2 von 3     12 3      
DCoderHH

Registriert seit: 4. Feb 2015
Ort: Hamburg
84 Beiträge
 
Delphi 10 Seattle Professional
 
#11

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 15:09
Das ist nicht pixelig und fett, das ist eine andere Schriftart.
OK, aber warum ist es eine andere Schriftart und wie verhindere ich, dass diese für die Darstellung ausgewählt wird?
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 15:41
Ich habe alles was nicht zum Projekt gehört gelöscht so das nurnoch Projekt1.dpr, Project1.res, Unit1.dfm, Unit1.pas übrig blieb.
Delphi Tokyo mit der .dpr gestartet, auf Release gestellt, kompiliert, alles hat die gleiche Schrift. Ich kann Fehler nicht reproduzieren.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
DCoderHH

Registriert seit: 4. Feb 2015
Ort: Hamburg
84 Beiträge
 
Delphi 10 Seattle Professional
 
#13

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 15:47
Ich habe alles was nicht zum Projekt gehört gelöscht so das nurnoch Projekt1.dpr, Project1.res, Unit1.dfm, Unit1.pas übrig blieb.
Delphi Tokyo mit der .dpr gestartet, auf Release gestellt, kompiliert, alles hat die gleiche Schrift. Ich kann Fehler nicht reproduzieren.
Hab ich eben auch gemacht. Fehler ist trotzdem da. Die Windows-Version und Themes scheinen den Fehler zu beeinflussen, sagt eine Google-Recherche. Ich nutze Windows 10 mit der Standard-GUI, wie Windows ausgeliefert wird.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 15:48
Ahh ok, ich nutze Windows Version 7. Ich schau mal im Code wegen Custom-Font setzen.

edit
Jetzt habe ich Deine .exe mal gestartet. Da erscheint der Fehler wie auf dem Bild.
Gruß vom KodeZwerg

Geändert von KodeZwerg (24. Mai 2018 um 16:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#15

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 16:10
Sender.Canvas.Font.Assign(Sender.Font); könntest du mal ausprobieren, ob es was ändert. (beim DefaultDraw=True)

Sowas wie SetBkMode an der VCL vorbei und nicht wieder zurücksetzen.
Das kann auch Probleme bereiten.

Sich nicht auf einwas zu einigen und dann abwechselnd Sender.Canvas oder PlanView.Canvas zu nutzen bereitet oftmals keine großen Probleme, aber ist dennoch keine gute Idee.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 16:16
Ich habe ein wenig gelesen und das hier soll wohl helfen, da ich Fehler nicht habe kann ichs nicht testen.
Delphi-Quellcode:
procedure TForm1.PlanViewCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer;
  State: TCustomDrawState; var DefaultDraw: Boolean);
var
  r: TRect;
  i: Integer;
begin
  PlanView.Canvas.Font.Style := [fsItalic];
  PlanView.Canvas.Font.Style := [];
//ab hier wie im Original weiter
Ps: Zweimal damit eine Veränderung eintritt.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#17

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 16:22
Zitat:
Ich habe ein wenig gelesen und das hier soll wohl helfen, da ich Fehler nicht habe kann ichs nicht testen.
Wenn man den Font Assigned muss man ihn nicht extra nochmal zuweisen.

siehe..@himitsu
Sender.Canvas.Font.Assign(Sender.Font);
Zitat:
Jetzt habe ich Deine .exe mal gestartet. Da erscheint der Fehler wie auf dem Bild.
Ja was denn nu ist er da oder nicht?
Zitat:
da ich Fehler nicht habe kann ichs nicht testen.

Aber verstehe nicht was du da machst.
Du möchtest selbst die Schrift zeichnen mit OwnerDraw?
Wenn dem so ist warum wurde OwnerDraw nicht aktiviert.

So.. Und wenn du es aktivierst dann bist du für das zeichnen der Schrift Font etc.. selbst verantwortlich.

Da scheint mir ein mismatch zwischen OwnerDraw und zeichnen der eigenen Komponente zu sein.

gruss

Geändert von EWeiss (24. Mai 2018 um 16:24 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 16:29
@EWeiss: Wenn ich sein 10mb Kompilat aus dem Anhang starte ist Font "verändert", wenn ich beiliegenden Source selbst kompiliere, auf Release eine 2mb Datei, da erscheint alles ohne Probleme.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#19

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 17:01
@EWeiss: Wenn ich sein 10mb Kompilat aus dem Anhang starte ist Font "verändert", wenn ich beiliegenden Source selbst kompiliere, auf Release eine 2mb Datei, da erscheint alles ohne Probleme.
Na ok.. hab kein Tokyo daher bin ich raus.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Listview, CustomDrawSubItem, Text wird schwarz

  Alt 24. Mai 2018, 18:25
Ich habe ein wenig gelesen und das hier soll wohl helfen, da ich Fehler nicht habe kann ichs nicht testen.
Delphi-Quellcode:
procedure TForm1.PlanViewCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer;
  State: TCustomDrawState; var DefaultDraw: Boolean);
var
  r: TRect;
  i: Integer;
begin
  PlanView.Canvas.Font.Style := [fsItalic];
  PlanView.Canvas.Font.Style := [];
//ab hier wie im Original weiter
Ps: Zweimal damit eine Veränderung eintritt.
Das ist die Lösung auch wenn Ihr dagegen seid. Ich habe vom TE das Projekt auf Delphi2009 Niveau gebracht, lustiger Weise mit dem Fehler vom Bild, mit himitsus Methode streikt IDE oder ich wende es falsch an, IDE sagt E2362 Auf protected-Symbol TControl.Font kann nicht zugegriffen werden

Im Anhang ist das Projekt für viele Delphis verfügbar mit gleicher Font in allen Feldern.
Angehängte Dateien
Dateityp: 7z An_DCoderHH.7z (46,9 KB, 6x aufgerufen)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz