VCL zu Non-VCL
Habe ein paar fragen zur Konvertierung von VCL zu NON-VCL
Da es einige sind habe ich diesen Thread Titel gewählt.
Delphi-Quellcode:
FillRect(FWindowDC, Rect(0, 0, FForm.Width, FForm.Height), FForm.Brush.Handle);
Delphi-Quellcode:
FForm.Width, FForm.Height
Kann ich mir über GetClientRect holen denke das ist OK! Meine erste Frage.
Delphi-Quellcode:
FForm.Brush.Handle
Wann wird das Brush Handle erstellt und wie kann ich das umsetzen zu Non-VCL Das einzige das ich meiner Funktion übergebe ist das Window Handle der NON-VCL Anwendung.
Delphi-Quellcode:
Kommt das in etwa hin?
var
Brush: HBrush; begin Brush := CreateSolidBrush(myColor); SelectObject(FWindowDC, Brush); FillRect(FWindowDC, Rect(0, 0, ClientWidth, ClientHeight), Brush); DeleteObject(Brush); end; Wenn ja welche Farbe wird dann bei der Form übergeben? (NULL_BRUSH) ? Keine selbst definierte sondern die Standard Farbe. gruss |
AW: VCL zu Non-VCL
Will wohl niemand Antworten.. ;) Egal!
gruss |
AW: VCL zu Non-VCL
:roll: nach 3 Stunden. Hast du heute noch was vor?
|
AW: VCL zu Non-VCL
Zitat:
Auch wenn es nichts zum Thema beiträgt. gruss |
AW: VCL zu Non-VCL
Der Delphi-Non-VCL-Papst ist Luckie. Zur Not mal per PN bei ihm nachfragen, ob er das ggf. übersah. Ist bei seiner aufmerksamen bis pflichtbewußten Moderation allerdings eher unwahrscheinlich.
|
AW: VCL zu Non-VCL
Zitat:
Zitat:
Delphi-Quellcode:
Aber seltsamer weise ist der Effekt etwas anders als unter VCL warum auch immer.
var
Brush: HBrush; begin Brush := CreateSolidBrush(myColor); SelectObject(FWindowDC, Brush); FillRect(FWindowDC, Rect(0, 0, ClientWidth, ClientHeight), Brush); DeleteObject(Brush); end; Ich denke da hängen noch andere Sachen dran. Unter VCL kann ich den Ausgeschnittenen Teil der Form als clFuchsia sehen unter NON-VCL nicht. Das ist schon etwas seltsam. gruss |
AW: VCL zu Non-VCL
Zitat:
Zitat:
Zitat:
|
AW: VCL zu Non-VCL
Zitat:
Ich habe versucht eine Lösung zu bekommen wie ich
Delphi-Quellcode:
FForm.Brush.Handle
nach NON-VCL umsetzen kann die Lösung habe ich dann selbst erarbeitet. Das zu punkt NON-VCL Zitat:
Auf was sich dann meine Frage bezog war welche Farbe dem FForm.Brush zugewiesen wird wenn man es nicht explicit selbst tut. Denn irgendwo her muss das Handle ja zugewiesen werden mit der dafür erstellten Farbe vom Brush. Das zu Punkt VCL Nun was passt hier nicht zusammen ? Ich dachte eigentlich das mir jemand der ausschließlich mit der VCL arbeitet mir das sagen könnte. Dem scheint wohl nicht so. gruss |
AW: VCL zu Non-VCL
Mindesten fehlt "OldBrush" zum retten des vorherigen Brushs, denn man löscht kein noch selktiertes Handle...
(ob man den Brush selektieren muss, wenn er bei FillRect mit übergeben wird, das weiß ich aus dem Kopf nicht mehr, aber schaden kann es nicht)
Delphi-Quellcode:
var
Brush: HBrush; OldBrush: HBrush; begin Brush := CreateSolidBrush(myColor); OldBrush:=SelectObject(FWindowDC, Brush); FillRect(FWindowDC, Rect(0, 0, ClientWidth, ClientHeight), Brush); SelectObject(FWindowDC, OldBrush); DeleteObject(Brush); end; |
AW: VCL zu Non-VCL
Zitat:
Edit: Aber OldBrush benötigt man nicht. Hier ein Beispiel: http://www.functionx.com/win32/Lesson17.htm gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 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