AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Falsche Darstellung einer ListView im PageControl
Thema durchsuchen
Ansicht
Themen-Optionen

Falsche Darstellung einer ListView im PageControl

Ein Thema von Mike_on_Tour · begonnen am 6. Jul 2017 · letzter Beitrag vom 26. Jul 2017
Antwort Antwort
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Falsche Darstellung einer ListView im PageControl

  Alt 6. Jul 2017, 16:09
Hallo zusammen,

Im anhängenden Beispielprogramm geht es um einen bisher nicht erklärbaren Effekt bei der Anzeige von TListView-Komponenten innerhalb von verschiedenen TabSheets einer PageControl.

Als Entwicklungssystem werden Delphi XE2 und/oder Delphi 10.2 eingesetzt. Als Betriebssystem wird Windows7-Pro64 mit einer Standard-Bildschirmauflösung (1680 x 1050) und kleiner Textdarstellung (100 Prozent) verwendet.

Je nach Bildschirmauflösung und Textdarstellung werden ListView-Komponenten nicht korrekt dargestellt. Es wird keine Skalierung "angewendet" und die Anzeige erfolgt mit den Vorgabewerten aus der IDE. Dazu folgende Testläufe:

1. Testlauf (Standard-Einstellung)
Die Konstante BSCALED (Form2, Zeile 83) wird auf "FALSE" gesetzt.
Die Konstante BPAGED (Form2, Zeile 84) wird auf "FALSE" gesetzt.
Die Auswahl eines TabSheets auf dem 'PageControl1' in der Form2 hat keine Bedeutung.
Das Programm wird gestartet.
Beide ListView-Anzeigen werden korrekt dargestellt.
Alles OK.

2. Testlauf (Simulation einer Skalierung, Textdarstellung 125 Prozent)
Die Konstante BSCALED (Form2, Zeile 83) wird auf "TRUE" gesetzt.
Die Konstante BPAGED (Form2, Zeile 84) wird auf "FALSE" gesetzt.
In der IDE wird in 'Form2' auf dem 'PageControl1' der 'TabSheet1' ausgewählt.
Die ListView-Anzeige auf dem 'TabSheet1' wird korrekt dargestellt.
Die ListView-Anzeige auf dem 'TabSheet2' wird nicht korrekt dargestellt.

3. Testlauf (Simulation einer Skalierung, Textdarstellung 125 Prozent)
Die Konstante BSCALED (Form2, Zeile 83) wird auf "TRUE" gesetzt.
Die Konstante BPAGED (Form2, Zeile 84) wird auf "FALSE" gesetzt.
In der IDE wird in 'Form2' auf dem 'PageControl1' der 'TabSheet2' ausgewählt.
Die ListView-Anzeige auf dem 'TabSheet1' wird nicht korrekt dargestellt.
Die ListView-Anzeige auf dem 'TabSheet2' wird korrekt dargestellt.

4. Testlauf (Simulation einer Skalierung, Textdarstellung 125 Prozent)
Die Konstante BSCALED (Form2, Zeile 83) wird auf "TRUE" gesetzt.
Die Konstante BPAGED (Form2, Zeile 84) wird auf "TRUE" gesetzt.
In der IDE wird in 'Form2' auf dem 'PageControl1' der 'TabSheet1' ausgewählt.
Die ListView-Anzeige auf dem 'TabSheet1' wird korrekt dargestellt.
Die ListView-Anzeige auf dem 'TabSheet2' wird korrekt dargestellt.

5. Testlauf (Simulation einer Skalierung, Textdarstellung 125 Prozent)
Die Konstante BSCALED (Form2, Zeile 83) wird auf "TRUE" gesetzt.
Die Konstante BPAGED (Form2, Zeile 84) wird auf "TRUE" gesetzt.
In der IDE wird in 'Form2' auf dem 'PageControl1' der 'TabSheet2' ausgewählt.
Die ListView-Anzeige auf dem 'TabSheet1' wird nicht korrekt dargestellt.
Die ListView-Anzeige auf dem 'TabSheet2' wird korrekt dargestellt.

Wie ist das Verhalten der ListView's zu erklären und wo liegt der Fehler ?

Mit besten Grüßen
Mike
Angehängte Grafiken
Dateityp: jpg Testlauf1.jpg (92,6 KB, 55x aufgerufen)
Dateityp: jpg Testlauf2.jpg (87,5 KB, 53x aufgerufen)
Dateityp: jpg Testlauf3.jpg (118,2 KB, 45x aufgerufen)
Angehängte Dateien
Dateityp: zip TabSheetsProblem.zip (84,0 KB, 11x aufgerufen)
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.

Geändert von Mike_on_Tour ( 6. Jul 2017 um 16:53 Uhr)
  Mit Zitat antworten Zitat
WiPhi

Registriert seit: 19. Feb 2015
90 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Falsche Darstellung einer ListView im PageControl

  Alt 7. Jul 2017, 09:11
Hallo Mike,

ich habe mir dein kleines Testprogramm im Delphi 10.2 (Starter und Pro) angesehn. Den Effekt konnte ich reproduzieren, also vermute ich das es sich hierbei um ein VCL Skalierungsproblem seitens Delphi handelt.

Vielleicht wäre das einen Eintrag im QC wert?

Viele Grüße.
Wer sucht, der findet. Wer länger sucht, findet mehr.
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
455 Beiträge
 
Delphi 12 Athens
 
#3

AW: Falsche Darstellung einer ListView im PageControl

  Alt 7. Jul 2017, 10:55
Hast du das schon probiert?

http://www.delphipraxis.net/189426-d...ontrol+scaleby
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.429 Beiträge
 
Delphi 12 Athens
 
#4

AW: Falsche Darstellung einer ListView im PageControl

  Alt 7. Jul 2017, 11:31
Hallöle...
Zu erst einmal, das Projekt im Anhang schaut jetzt auch mit 125 so aus wie du es willst.
Schau dir im Projekt meine Änderungen an. (Properties der Controls). Warum die Listviev nicht den Font übernimmt kann ich nicht sagen.

[meine Meinung]
Das ScaleBy funktioniert nicht wirklich. Ich würde Windows das Skalieren überlassen. Dafür mußt aber alle Controls "anheften".
[/meine Meinung]

Ein paar Tipps:
1. Ancors, Margins und Align sind dein Freund. Erst Recht wenn du auf mobilen Platformen arbeitest oder willst.
2. Versuche die Anzahl der verschieden Controls zu minimieren. Die Eigenschaften des ValueListEditors lassen sich auch mit Sicherheit auch in einer Listview darstellen. Der Vorteil die Optik paßt. Wie du sehen kannst ist der ValueListEditor in 125 unterschiedlich zur Listview hoch. Auch die Header passen optisch nicht. Wenn man auch solche Kleinigkeiten achtet, stört dich es irgendwann oder du hast viel Arbeit mit der Anpassung.
3. Die Controls auf Panels plazieren. Erleichtert die Positionierung. (pnl1 = Hilfspanel)
4. Bezeichnung der Controls. Unterstriche sind nicht mehr "erlaubt" Wenn möglich Denglisch vermeiden.
Delphi-Quellcode:
Label_Telefon.Caption := '12345';
// besser...
lblPhone.Caption := '12345';
Angehängte Grafiken
Dateityp: png 100_1.png (66,8 KB, 35x aufgerufen)
Dateityp: png 125_1.png (89,7 KB, 27x aufgerufen)
Dateityp: png 125_2.png (70,4 KB, 23x aufgerufen)
Angehängte Dateien
Dateityp: zip Projekt.zip (55,1 KB, 3x aufgerufen)

Geändert von haentschman ( 7. Jul 2017 um 11:36 Uhr)
  Mit Zitat antworten Zitat
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#5

AW: Falsche Darstellung einer ListView im PageControl

  Alt 21. Jul 2017, 21:49
Hallo zusammen,

vielen Dank erst mal für die Antworten. Ich war zwischenzeitlich erst mal mit anderen wichtigen Aufgaben "unterwegs" und habe das Thema verdrängt.
Aus meiner Sicht ist mein "Testlauf Nr. 4" aktuell die beste Lösung als "Workaround".

@ WiPhi
Zitat:
ich habe mir dein kleines Testprogramm im Delphi 10.2 (Starter und Pro) angesehn. Den Effekt konnte ich reproduzieren, also vermute ich das es sich hierbei um ein VCL Skalierungsproblem seitens Delphi handelt.
Vielleicht wäre das einen Eintrag im QC wert?
Danke für Deine Antwort. Ich dachte schon, ich kann nicht programmieren.
Ich bin mir nicht ganz sicher, aber bei meiner Suche nach einer Lösung hatte ich im QC schon etwas ähnliches gefunden. "Inchmurrin" und ich gehen im QC noch mal auf die Suche.

@Papaschlumpf73
Zitat:
Hast du das schon probiert?
Delphi Berlin 10.1 ScaleBy TPageControl
http://www.delphipraxis.net/189426-d...ontrol+scaleby
Danke für den Hinweis. Nach einer längeren Suche hatte ich das auch noch gefunden.
Im Ernstfall müsste ich aber mehrere Programmier-Arbeitsplätze "manipulieren". Das gefällt mir nicht wirklich.

@haentschman
Vielen Dank für die Unterstützung. Ich hatte keine Lust, das komplette Projekt hier zur diskutieren. Ich habe also nur ein Beispiel-Programm "geliefert", um das Problem etwas besser darzustellen.
Zitat:
Das ScaleBy funktioniert nicht wirklich. Ich würde Windows das Skalieren überlassen.
Mit der "ScaleBy"-Funktion wollte ich nur eine Änderung der Bildschirm-Auflösung "simulieren". Im "echten" Leben darf das selbstverständlich Windows machen.

Ich liebe Tipps, aber ...
1.
Es wird definitiv keine Anwendung für mobile Plattformen geben. Alle Positionen werden generell von oben links nach unten rechts definiert.
2.
Die Verwendung eines ValueListEditors und einer Listview (im echten Programm) wird schon seine Gründe haben. Eine Diskussion darüber ist also nicht notwendig.
3.
Die Verwendung eines zusätzlichen Panels ist auch nichts anderes als ein "Workaround". Den gleichen Effekt erreiche ich mit einem absichtlichen Tabsheet-Wechsel im "FormActivate" oder "FormShow" (siehe Testlauf 4).
4.1
Warum sind Unterstriche nicht mehr erlaubt ?
4.2
Seit wann sind Unterstriche nicht mehr erlaubt ?
4.3
Wo steht das, dass Unterstriche nicht mehr erlaubt sind ? (Fakten Fakten Fakten)
4.4
Warum akzeptiert Delphi dann noch Unterstriche, wenn es nicht mehr erlaubt ist ?
4.5
Warum soll ich englische Bezeichnungen bei einer rein deutschen Softwareentwicklung vorziehen ?
Wo steht das ?
Seit wann gilt das ?
5.
Ich habe bewusst nur ein Beispiel-Programm zur Darstellung des Problems bereit gestellt. Dabei sind ein paar Bezeichner von Variablen einfach nur kopiert worden. Da jetzt gleich mit einer großen "Belehrung" zu antworten, war nicht wirklich hilfreich.

Zwei von drei Lesern haben das auch als Beispiel-Programm so erkannt.

Danke noch mal für alle Antworten.
slàinte mhath

Mike
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#6

AW: Falsche Darstellung einer ListView im PageControl

  Alt 21. Jul 2017, 21:53
Zitat:
Warum sind Unterstriche nicht mehr erlaubt ?
Ich glaube er wollte damit nur sagen:
"Wenn du nicht der einzige bist der an dem Quellcode arbeitet, halte einen Gewissen Standard XYZ ein, damit jeder sofort weiß was Sache ist wenn jemand deinen Code sieht".

Wenn du aber der einzige an dem Projekt bist und den Code auch nicht veröffentlichen möchtest, dann schreibe Code so, wie du es am besten findest.
  Mit Zitat antworten Zitat
Mike_on_Tour

Registriert seit: 16. Aug 2007
195 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Falsche Darstellung einer ListView im PageControl

  Alt 21. Jul 2017, 23:47
Hallo Glados,

Danke für die Info.
Prinzipiell kann ich "haentschman" schon verstehen. Aber bei einem Beispiel-Programm sind diese Hinweise nicht wirklich notwendig. Und manche verstehen unter "Standard" das, was vor 20 Jahren vielleicht mal aktuell war. Mein Stil entspricht sicher nicht mehr dem Standard aus alter Zeit, dafür habe ich zu viel Erfahrung sammeln müssen und können. Vielleicht sollten manche auch mal mit der Zeit gehen und sich nicht nur ans Lehrbuch klammern.

Viele Grüße,
Mike
Programmieren ist wie das Wandeln auf dem schmalen Pfad zwischen Wahnsinn und Intelligenz.
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz