Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Win32 non-Vcl ein zweites Window Modal und Umlaute Frage (https://www.delphipraxis.net/196500-win32-non-vcl-ein-zweites-window-modal-und-umlaute-frage.html)

KodeZwerg 25. Mai 2018 19:09

Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe eine Demo gefunden was es einem sehr einfach macht "schnell mal" eine non-Vcl zu basteln, ein gutes Template hier aus dem Forum.
Was in dem Source steht ist für mich auch alles nachvollziehbar, soweit so gut.

Nun wollte ich den Source erweitern, mit einem "Über" Knopf und demzufolge auch einem zweiten Window.
Hierzu habe ich noch gar keine Erfahrung sammeln können.

Nach dem kompilieren stellte ich fest das der Source noch nicht deutsch kompatibel ist, das "Ü" von "Über" wird falsch dargestellt.

Kann mir jemand der sich damit auskennt helfen diese zwei Sachen zu erledigen?

Im Anhang ist der komplette Source und ein Kompilat.

Ps: Dieses non-Vcl basiert auf Code und nicht auf einen Resource Dialog.

EWeiss 25. Mai 2018 20:18

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
Also wenn du mit WideChars arbeiten willst solltest du es auch verwenden.
CreateWindowEx zu CreateWindowExW

Das!
Delphi-Quellcode:
WinMain(hInstance, System.hPrevInst, System.CmdLine, System.CmdShow);


ist veraltet verwende statt dessen

Delphi-Quellcode:
WinMain(hInstance, 0, nil, 0);


gruss

Fritzew 25. Mai 2018 20:21

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
2 Anmerkungen
Ist D2009 die Delphi Version die du einsetzt?
Der Source von uMain ist als UTF8 gespeichert. Ändere das auf Ansi dann kommt auch Dein Ü
Alte Delphi Versionen hatten da öfter Schluckauf.
Und überprüfe mal Deine wItems......

Du produzierst ein Speicherleck und die Font Zuweisung funktioniert so auch nicht .....

EWeiss 25. Mai 2018 20:24

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
Zitat:

Zitat von Fritzew (Beitrag 1403009)
2 Anmerkungen
Ist D2009 die Delphi Version die du einsetzt?
Der Source von uMain ist als UTF8 gespeichert. Ändere das auf Ansi dann kommt auch Dein Ü
Alte Delphi Versionen hatten da öfter Schluckauf.
Und überprüfe mal Deine wItems......

Du produzierst ein Speicherleck und die Font Zuweisung funktioniert so auch nicht .....

Ein CreateWindowExW reicht.

Zitat:

Ist D2009 die Delphi Version die du einsetzt?
nö Tokyo sieht man am icon

gruss

mjustin 25. Mai 2018 20:32

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
Könnte es daran liegen dass der Sourcecode als Kodierung UTF-8 verwendet (laut Notepad++), und der Compiler den UTF-8 kodierten Windownamen dann vermutlich so wie er ist in der EXE Datei ablegt? Dann wird zur Laufzeit ein UTF-8 kodierter Text übergeben, wo LPCTSTR erwartet wird.

Fritzew 25. Mai 2018 20:37

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
Zitat:

Zitat von EWeiss (Beitrag 1403010)
nö Tokyo sieht man am icon
gruss

Nur das er das als Resource einbindet das sagt mal gar nix aus

KodeZwerg 25. Mai 2018 21:06

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
Zitat:

Zitat von EWeiss (Beitrag 1403008)
CreateWindowEx zu CreateWindowExW

Klappt einwandfrei, Umlaut wird dargestellt, Danke!!
Zitat:

Zitat von EWeiss (Beitrag 1403008)
Delphi-Quellcode:
WinMain(hInstance, 0, nil, 0);

Ich habe das in .dpr auch verbessert, Danke!!
Zitat:

Zitat von Fritzew (Beitrag 1403009)
Und überprüfe mal Deine wItems......
Du produzierst ein Speicherleck und die Font Zuweisung funktioniert so auch nicht .....

Erledigt und Danke!!
Delphi-Quellcode:
        wItems[0] := CreateWindowEx(0, 'BUTTON', 'Beenden', WS_VISIBLE or WS_CHILD, 220, 130, 75, 25, hWnd, IDC_BTN_EXIT, hInstance, nil);
        wItems[1] := CreateWindowEx(0, 'BUTTON', 'Über', WS_VISIBLE or WS_CHILD, 220, 100, 75, 25, hWnd, IDC_BTN_ABOUT, hInstance, nil);
        wItems[2] := CreateWindowEx(0, 'STATIC', '', WS_VISIBLE or WS_CHILD or SS_BITMAP, 20, 20, 32, 32, hWnd, IDC_STC_BMP, hInstance, nil);

        SendMessage(wItems[2], STM_SETIMAGE, IMAGE_BITMAP, INTEGER(

Umlautproblem gelöst!:thumb::thumb::thumb:

Zu meinem Delphi, ich nutze Version 2009, die Resourcen lagen dem Beispiel bei.

Wenn mir jemand bitte noch helfen kann das ich mit diesem Code noch ein zweites Modalfenster öffnen kann, das wäre sehr hilfreich!

KodeZwerg 25. Mai 2018 21:48

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
Liste der Anhänge anzeigen (Anzahl: 1)
Damit ihr seht woran es bei mir scheitert, hier mein 2 Fenster Kompilat plus Source.

Problem: Zweites Fenster ist nicht Modal. Beendet man zweites Fenster stirbt erstes Fenster und Programm ist Tot, nurnoch über Taskmanager zu beenden. Das ich Sachen total falsch mache ist mir schon klar, nur weiß ich noch nicht wie es korrekt sein müsste.

EWeiss 25. Mai 2018 22:05

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
Zitat:

Zitat von KodeZwerg (Beitrag 1403017)
Damit ihr seht woran es bei mir scheitert, hier mein 2 Fenster Kompilat plus Source.

Problem: Zweites Fenster ist nicht Modal. Beendet man zweites Fenster stirbt erstes Fenster und Programm ist Tot, nurnoch über Taskmanager zu beenden. Das ich Sachen total falsch mache ist mir schon klar, nur weiß ich noch nicht wie es korrekt sein müsste.

Kann nur wieder auf Luckies Samples verweisen.. ;)
Da ist doch alles was du begehrst.
Warum das Rad neu erfinden.

Da du so gut in Englisch bist hier eine extra Ressource für dich.

gruss

Luckie 25. Mai 2018 22:24

AW: Win32 non-Vcl ein zweites Window Modal und Umlaute Frage
 
Ich meine, ich habe das mit zwei Fenstern in meinen Tutorials abgehandelt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 Uhr.
Seite 1 von 3  1 23      

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