AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi DialogBox Anwendung mit WideChar's (peinlich)
Thema durchsuchen
Ansicht
Themen-Optionen

DialogBox Anwendung mit WideChar's (peinlich)

Ein Thema von neolithos · begonnen am 30. Okt 2003 · letzter Beitrag vom 31. Okt 2003
Antwort Antwort
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#1

DialogBox Anwendung mit WideChar's (peinlich)

  Alt 30. Okt 2003, 18:09
Ich weiß es ist peinlich und ich kenn den Fehler schon, aber es ist leider lange her!!!

Delphi-Quellcode:
const
// -- Hauptdialog --
  dlgMain : PWideChar = PWideChar(100);


procedure Main;
begin
  if DialogBoxW(HInstance, dlgMain, GetDesktopWindow, @MainDlgProc) = -1 then
     Writeln(GetLastError);
// MessageBoxW(0, 'Unable to load main window!', nil, MB_OK or MB_ICONERROR);
  readln;
end;
Warum erhalte ich den Windows-Fehler 1400?
Was habe ich vergessen?
Warum geht das in einem anderen Project?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: DialogBox Anwendung mit WideChar's (peinlich)

  Alt 31. Okt 2003, 02:35
Altes Win3.1 Programm gefunden! *ätsch selber gelöst*

Man muss genauso wie bei Delphi-Applicationen eine kleines Fenster (genauer größe: 0 x 0) davor schalten.

Denn in der MSDN steht das bei DialogBox das Parent-Fenster nicht null oder ein ungültiges Fenster sein darf.

- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#3

Re: DialogBox Anwendung mit WideChar's (peinlich)

  Alt 31. Okt 2003, 02:38
Das Fenster muss nicht zum selben Process gehören. Denke ich das sonst ein anderes Prog. von mir gar nicht funktionieren dürfte.

Weis das einer zufällig genau?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: DialogBox Anwendung mit WideChar's (peinlich)

  Alt 31. Okt 2003, 09:37
Fehler 1400:
Zitat von PSDK:
1400 Invalid window handle. ERROR_INVALID_WINDOW_HANDLE
Der zweite Parameter sieht mir etwas falsch aus:
Zitat von PSDK:
lpTemplate
[in] Specifies the dialog box template. This parameter is either the pointer to a null-terminated character string that specifies the name of the dialog box template or an integer value that specifies the resource identifier of the dialog box template. If the parameter specifies a resource identifier, its high-order word must be zero and its low-order word must contain the identifier. You can use the MAKEINTRESOURCE macro to create this value.
Sprich da gehört die ID deines Dialoges aus der Ressourcendatei rein und zwar so:
MAKEINTRESOURCE(100) Wenn der Dialog in der Ressource die ID 100 hat.

Und warum rufst du DialogBoxW explizit selber auf? Windows NT/2000/XP machen dies automatisch. Alle anderen Betriebssysteme dürften damit erst gar nichts anfangen können.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#5

Re: DialogBox Anwendung mit WideChar's (peinlich)

  Alt 31. Okt 2003, 13:01
Übrigens MakeIntResource macht nix anderes als den Zeigerwert einer Zeichenkette setzen.

Darum gehen solche konstrukte wie...

  dlgMain : PChar = PChar(100); PInteger(@dlgMain)^ = 100 in dem fall.

DialogBoxW hatte ich verwendet weil ich eine UniCode-Version meines Programmes erstellen wollte!

Das wollte ich gerate mit diesem Programm erbroben.

Geht das anders besser?

Denn ich dachte DialogBox erstellt nur eine Ansi-Version...
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: DialogBox Anwendung mit WideChar's (peinlich)

  Alt 31. Okt 2003, 13:26
Unicode und Delphi sind zwei Welten für sich. In VC setzt man einfach den Schalter UNICODE und fertig ist. Unter Delphi dürfte das einige Probleme bereiten. Allerdings kenne ich nich da ganz und gar nicht aus. Assarbad weiß da mehr.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#7

Re: DialogBox Anwendung mit WideChar's (peinlich)

  Alt 31. Okt 2003, 13:41
Ich weis es jetzt warum genau der 1400-terter kam.

Folgendes:

Ich hatte ein ManiFest in meiner Resource.
D.h. die Button-Controls werden aus der CommCtrl genommen.
Dummerweise hatte ich kein InitCommonCtrls abgeschickt.



Trotzdem, sehr irreführende Fehlernummer!

Übergeordnetes Fenster entfernt und Ursprungscode (siehe Oben + InitCommonCtrls) hergestellt.
und es ging.
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  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 08:11 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