Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi nonVCL-Edit erstellen (https://www.delphipraxis.net/68483-nonvcl-edit-erstellen.html)

SnuffMaster23 30. Apr 2006 13:41


nonVCL-Edit erstellen
 
Hi,

ich weiß, eigentlich ne doofe Frage, aber ich kriegs einfach nicht auf die Reihe. CreateWindow bringt keinen Fehler, mit ShowWindow kann ichs auch nicht anzeigen.

Delphi-Quellcode:
MyEdit2 := CreateWindow('EDIT', 'Edit2', ES_PASSWORD, 128, 408, 121, 21, Form1.Handle, 0, HINSTANCE, nil);
SendMessage(MyEdit2, WM_SHOWWINDOW, 1, 0);
Was mache ich falsch?

greetz Snuffi

ErazerZ 30. Apr 2006 14:26

Re: nonVCL-Edit erstellen
 
Delphi-Quellcode:
var
  MyEdit2: HWND;
begin
  MyEdit2 := CreateWindow('EDIT', 'Edit2', ES_PASSWORD or WS_CHILD { damits auf formular bleibt }, 128, 408, 121, 21, Form1.Handle, 0, HINSTANCE, nil);
  ShowWindow(MyEdit2, SW_SHOW);

SnuffMaster23 30. Apr 2006 14:43

Re: nonVCL-Edit erstellen
 
hmm, das mit dem WS_CHILD hab ich wohl vergessen :oops:
Und ShowWindow wollt ich auch verwenden, obwohls ja eigentlich das gleiche bewirkt, oder?

---

Habs grad ausprobiert, das sieht irgendwie komisch aus: Der Rahmen fehlt und rechts und unten sind schwarze Ränder. Wenn ichs ohne Manifest mach, sind die Ränder weg aber der Rahmen auch :(
Auf Anhieb krieg ich das auch nicht hin... :(

idontwantaname 30. Apr 2006 14:52

Re: nonVCL-Edit erstellen
 
Dazu brauchst du einen Extended Window Style
Delphi-Quellcode:
CreateWindowEx(WS_EX_CLIENTEDGE, 'EDIT', 'Edit2', WS_VISIBLE or WS_CHILD or ES_PASSWORD, 128, 408, 121, 21, Form1.Handle, 0, HINSTANCE, nil);

SnuffMaster23 30. Apr 2006 15:02

Re: nonVCL-Edit erstellen
 
Ich habs befürchtet... :mrgreen:

WS_Visible hab ich auch schon rausgefunden :)

---

Funktioniert auch nicht so recht, jetzt sind oben, links und rechts schwarze Streifen (ohne Manifest gehts... aber ich will ja keine Sternchen sondern Punkte)

:?

ErazerZ 30. Apr 2006 15:06

Re: nonVCL-Edit erstellen
 
erstell ein normales TEdit und pass es so an:
Delphi-Quellcode:
Edit1.Font.Name := 'Wingdings';
Edit1.PasswordChar := #108;

SnuffMaster23 30. Apr 2006 15:10

Re: nonVCL-Edit erstellen
 
Genau das will ich nicht :mrgreen:
Das sieht zum einen nicht ganz richtig aus und macht auch auf anderen Systemen Punkte...
Dazu hab ich schon massenhaft Threads gewälzt :)

turboPASCAL 30. Apr 2006 16:18

Re: nonVCL-Edit erstellen
 
Die VCL macht auch nicht viel anders und wenn du nur Sterne willst stellst du das halt bei PasswordChar ein.
Zur Not kann man das Feld ja auch dyn. erstellen damit es nicht in der Resource auftaucht.

Wenn ich BMW fahre stell ich mir ja auch nicht die Sitze vom Trabbi rein. :mrgreen:

SnuffMaster23 30. Apr 2006 16:34

Re: nonVCL-Edit erstellen
 
Ich glaub du hast mein Problem nicht richtig verstanden oder?

Zitat:

Zitat von SnuffMaster23
(ohne Manifest gehts... aber ich will ja keine Sternchen sondern Punkte)

Den Trick mit PasswordChar hab ich auch drauf^^

Das einzige Problem ist noch, dass das Edit halt komisch aussieht, weils keinen Rahmen kriegt.

(das mit dem BMW versteh ich jetzt nicht ganz, aber falls du meinst VCL = BMW und nonVCL = Trabant dann muss ich dir sagen VCL = Trabi!! Das VCL-Edit spricht nämlich kein Unicode und das muss es für die Punkte :D)

turboPASCAL 30. Apr 2006 19:44

Re: nonVCL-Edit erstellen
 
Das Problem ist wie du siehst, dass die nonVCL-Fenster nicht richtig von der VCL untersützt werden (können), betreffend dem Manifest.
Wie auch, zie Zeichenroutienen von Windows-API und der VCL unterscheiden sich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.
Seite 1 von 2  1 2      

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