Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi VCL zu Non-VCL (https://www.delphipraxis.net/193374-vcl-zu-non-vcl.html)

EWeiss 22. Jul 2017 12:17


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:
var
  Brush: HBrush;
begin
  Brush := CreateSolidBrush(myColor);
  SelectObject(FWindowDC, Brush);
  FillRect(FWindowDC, Rect(0, 0, ClientWidth, ClientHeight), Brush);
  DeleteObject(Brush);
end;
Kommt das in etwa hin?
Wenn ja welche Farbe wird dann bei der Form übergeben? (NULL_BRUSH) ?
Keine selbst definierte sondern die Standard Farbe.

gruss

EWeiss 22. Jul 2017 15:19

AW: VCL zu Non-VCL
 
Will wohl niemand Antworten.. ;) Egal!

gruss

haentschman 22. Jul 2017 15:50

AW: VCL zu Non-VCL
 
:roll: nach 3 Stunden. Hast du heute noch was vor?

EWeiss 22. Jul 2017 17:43

AW: VCL zu Non-VCL
 
Zitat:

Zitat von haentschman (Beitrag 1377245)
:roll: nach 3 Stunden. Hast du heute noch was vor?

Nun zumindest hat jetzt einer geantwortet Danke.
Auch wenn es nichts zum Thema beiträgt.

gruss

Delphi-Laie 22. Jul 2017 18:17

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.

EWeiss 22. Jul 2017 18:57

AW: VCL zu Non-VCL
 
Zitat:

Zitat von Delphi-Laie (Beitrag 1377256)
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.

Du weist aber schon das es hier um VCL geht?
Zitat:

Wenn ja welche Farbe wird dann bei der Form übergeben? (NULL_BRUSH) ?
wie das in NON-VCL umgesetzt wird ist mir schon klar ;)
Delphi-Quellcode:
var
   Brush: HBrush;
begin
   Brush := CreateSolidBrush(myColor);
   SelectObject(FWindowDC, Brush);
   FillRect(FWindowDC, Rect(0, 0, ClientWidth, ClientHeight), Brush);
   DeleteObject(Brush);
end;
Aber seltsamer weise ist der Effekt etwas anders als unter VCL warum auch immer.
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

TBx 22. Jul 2017 19:48

AW: VCL zu Non-VCL
 
Zitat:

Zitat von EWeiss (Beitrag 1377253)
Auch wenn es nichts zum Thema beiträgt.

Ich denke mal, wenn Dich ein User dezent darauf hinweist, dass Pushen nicht gern gesehen ist, dann mußt Du ihn nicht auch noch treten.

Zitat:

Zitat von EWeiss
Habe ein paar fragen zur Konvertierung von VCL zu NON-VCL

und
Zitat:

Zitat von EWeiss
Du weist aber schon das es hier um VCL geht? ... wie das in NON-VCL umgesetzt wird ist mir schon klar

passt irgendwie auch nicht so ganz zusammen :gruebel:

EWeiss 22. Jul 2017 20:10

AW: VCL zu Non-VCL
 
Zitat:

passt irgendwie auch nicht so ganz zusammen
Dann erkläre mir mal warum nicht?

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:

Du weist aber schon das es hier um VCL geht?
Bezog sich auf die Frage VCL!

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

mensch72 24. Jul 2017 11:03

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;

EWeiss 24. Jul 2017 13:15

AW: VCL zu Non-VCL
 
Zitat:

ob man den Brush selektieren muss
Ja muss man Danke ;)

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.
Seite 1 von 4  1 23     Letzte »    

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