AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls VCL-Styles-Problem: Wie kriege ich das Edit-Handle eines DateTimePickers?
Thema durchsuchen
Ansicht
Themen-Optionen

VCL-Styles-Problem: Wie kriege ich das Edit-Handle eines DateTimePickers?

Ein Thema von TiGü · begonnen am 29. Aug 2014 · letzter Beitrag vom 5. Sep 2014
Antwort Antwort
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
450 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: VCL-Styles-Problem: Wie kriege ich das Edit-Handle eines DateTimePickers?

  Alt 1. Sep 2014, 15:30
..irgendwie kann ich bei den privaten Nachrichten nichts hochladen ... daher also hier:
Nicht schön aber funktioniert hoffentlich immer...
Angehängte Dateien
Dateityp: pas HolzHammer.Vcl.Styles.DateTimePickers.pas (11,5 KB, 9x aufgerufen)
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.077 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: VCL-Styles-Problem: Wie kriege ich das Edit-Handle eines DateTimePickers?

  Alt 2. Sep 2014, 10:54
Vielen vielen Dank!

Das funktioniert ziemlich gut für die Zeitanzeige (DateTimePicker.Kind = dtkTime), aber ich habe jetzt den ganzen Vormittag verbracht herauszukriegen, warum bei er bei dtkDate nichts zeichnet.

Irgendwie, warum auch immer, findet er bei selektiertem Datum keine Highlight-Color in der ersten For-Schleife und läuft halt bis I gleich Bitmap.Width.
Verdammt, irgendwas ist immer...

Wenn das funktionieren würde, wäre diese Lösung tragbar.
So langsam ist das mit den Pixels bei den kleinen Größen der DateTimePicker ja nicht.
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
450 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: VCL-Styles-Problem: Wie kriege ich das Edit-Handle eines DateTimePickers?

  Alt 2. Sep 2014, 19:49
Bei mir geht das mit dktTime schon. Eigentlich kann es nur an der Windows-Einstellung liegen (vielleicht ist die Randfarbe unglücklicherweise clHighlight, dann kannst noch 2 Pixel vom Rand starten....
Um das mal zu testen, mach am besten im ScanSelRect() folgendes:

Delphi-Quellcode:
    
    ...
    cHi := ColorToRGB(clHighlight);

    ABmp.Canvas.Pixels[0,0] := cHi;
    ABmp.SaveToFile('C:\temp\test.bmp');

    for x := 0 to ABmp.Width-1 do
Dann Programm starten, Minuten Stelle anklicken und Bitmap ansehen...

Ja, die paar Pixel sind schnell gescannt, schneller gings noch wenn du auf den Canvas verzichtest...
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.077 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: VCL-Styles-Problem: Wie kriege ich das Edit-Handle eines DateTimePickers?

  Alt 3. Sep 2014, 08:32
Eine gute Idee mit dem Wegspeichern des gerade zu scannenden Bitmaps, leider bestätigen sich meine Befürchtungen.

Im Anhang der "Bilddump" jeweils für dtkDate und dtkTime.
Wie ich bereits schrieb, ist für die Uhrzeit alles im Butter, nur wird nichts auf den Bitmap.Canvas gezeichnet im Fall DateTimePicker.Kind = dtkDate .

Ich werde noch ein bisschen hinterherdebuggen und dann entnervt und weinend aufgeben.
Angehängte Grafiken
Dateityp: jpg dtkDate.jpg (1,2 KB, 9x aufgerufen)
Dateityp: jpg dtkTime.jpg (1,7 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
450 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: VCL-Styles-Problem: Wie kriege ich das Edit-Handle eines DateTimePickers?

  Alt 3. Sep 2014, 23:09
Sorry, habe ich im Eifer des Gefechts übersehen, du hast leider recht.

Laut MSDN ist ja WPARAM bei WM_PAINT nicht verwendet und etwas weiter unten sthet dann

[Zitat=MSDN]For some common controls, the default WM_PAINT message processing checks the wParam parameter. If wParam is non-NULL, the control assumes that the value is an HDC and paints using that device context.[/Zitat]

Damit muss man wohl davon ausgehen, dass das für dtkTime so umgesetzt wurde aber für dtkDate ein eigener DC erzeugt wird und dann landet die Ausgabe nicht mehr in der Bitmap...
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.077 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: VCL-Styles-Problem: Wie kriege ich das Edit-Handle eines DateTimePickers?

  Alt 4. Sep 2014, 08:32
Es...ist...zum...Kotzen!

Wie kann man denn so fricklig eine wichtige Komponente im Framework umsetzen?
Möge dem verantwortlichen Entwickler bei Microsoft der Blitz beim Scheißen treffen.
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.077 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: VCL-Styles-Problem: Wie kriege ich das Edit-Handle eines DateTimePickers?

  Alt 4. Sep 2014, 13:46
Ach, schau mal einer an, scheint gefixt zu sein:
http://qc.embarcadero.com/wc/qcmain.aspx?d=124908

Ist mir gerade beim Durchstöbern der Fixlist aufgefallen (http://edn.embarcadero.com/article/44049).
Gleich mal die Trial installieren und kontrollieren!
  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 23:33 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-2025 by Thomas Breitkreuz