PowerBASIC FORUM - Kirschbaum Software GmbH UBB.threads™ copyright by Infopop Corporation.

Hier helfen sich PowerBASIC Programmierer gegenseitig ..... >> PB/WIN PowerBASIC for Windows

Seiten in diesem Thema: 1
Lembit Soobik
Mitglied

Registriert: 31.01.2010
Beiträge: 4
Fehler in %WM_INITDIALOG neu
      #2876 - 25.02.2010 17:06

Beim Programmstart wird ein Dialogfenster mit mehreren Controls aufgemacht.
ich möchte hierbei eine Funktion aufrufen, die mich eine Datei suchen läßt und den
Pfad in eine Textbox einträgt.
Ich rufe diese Funktion auf in CASE %WM_INITDIALOG.
Dabei erhalte ich den Fehler:
lsIniEdit.exe hat ein Problem festgestellt und muss beendet werden.

Wenn ich jedoch vor den Aufruf der Funktion eine MSGBOX "..." setze,
erhalte ich KEINEN Fehler.

hier ist der betreffende Codeabschnitt:

CALLBACK FUNCTION ShowIniEditProc()
LOCAL strTemp AS STRING
ON ERROR GOTO Error_ShowIniEditProc
SELECT CASE AS LONG CB.MSG
CASE %WM_INITDIALOG
' Initialization handler
'MSGBOX "Die Ini-Datei wird benötigt"
CALL SuchDatei(hDlg, %IDC_txtIniFilePath, "INI-Datei", strTemp)

.... oder gibt es eine Stelle die für den Aufruf besser geeignet ist?

Vielen Dank im voraus
Lembit

Extras: Beitrag drucken   Auf den Merkzettel   Moderator benachrichtigen  
Josef KirschbaumAdministrator
Moderator

Registriert: 15.12.2002
Beiträge: 344
Wohnort: Emmering
Re: Fehler in %WM_INITDIALOG neu
      #2878 - 27.02.2010 01:06

Nachdem Sie keinen vollständigen kompilierbaren Quellcode zur Verfügung stellen, läßt sich das beschriebene Problem hier nicht nachvollziehen und deshalb auch nicht näher nach einer genauen Ursache untersuchen.

Ich persönlich würde eine (möglicherweise umfangreiche) Dateisuche nicht als Teil der Behandlung der Nachricht WM_INITDIALOG durchführen. Ich hätte einfach kein gutes Gefühl dabei, wenn ich dadurch die Erzeugung eines Dialogfensters mit all den damit verbundenen unsichtbaren Vorgängen unterbrechen würde.

Jedoch wo steht geschrieben, dass es grundsätzlich nicht erlaubt ist? Bei der Suche auf den Seiten von Microsoft (MSDN) habe ich immer wieder die folgende oder ähnliche Formulierungen zu WM_INITDIALOG gefunden:

..... Dialog box procedures typically use this message to initialize controls and carry out any other initialization tasks that affect the appearance of the dialog box.

Weder im Internet, noch in meinen dicken Büchern (Petzold etc.) habe ich eine entsprechende Warnung oder eine Auflistung von Dingen gefunden, die man bei der Behandlung dieser Nachricht auf keinen Fall machen darf. Allerdings habe ich meine Suche bereits nach gut zwei Stunden aufgegeben.

Aber was spricht dagegen, wenn Sie die Dateisuche einfach an unproblematischer Stelle schon innerhalb der Funktion PBMAIN durchführen und zwar noch vor der Zeile DIALOG SHOW .... (falls DDT-Stil)? Und warum dann nicht schon vor CONTROL ADD TEXTBOX/LABEL ....? Dadurch könnten Sie den gefundenen Pfad bereits beim Anlegen des zugehörigen Textfeldes berücksichtigen.

Editiert von Josef Kirschbaum (27.02.2010 13:42)

Extras: Beitrag drucken   Auf den Merkzettel   Moderator benachrichtigen  
Lembit Soobik
Mitglied

Registriert: 31.01.2010
Beiträge: 4
Re: Fehler in %WM_INITDIALOG
      #2879 - 27.02.2010 16:31

Vielen Dank für die Mühe und die ausführliche Antwort.
Da ich Ihnen nicht zumuten wollte, durch 1500 Zeilen Code zu waten und auch das Forum nicht
damit verstopfen wollte, hatte ich nur den nötigen Ausschnitt zitiert.
Das hat aber auch gereicht, um eine Lösung zu bekommen.
Ich habe die Dateisuche jetzt vor DIALOG SHOW gesetzt und das Ergebnis per global string
in den Initialization handler gebracht.
In den Bereich CONTROL ADD TEXTBOX möchte ich es aus Übersichtlichkeitsgründen nicht setzen.

Nochmals besten Dank und ein schönes Wochenende
Lembit

Extras: Beitrag drucken   Auf den Merkzettel   Moderator benachrichtigen  
Seiten in diesem Thema: 1


Statistiken
1 registrierte Benutzer und 5 Besucher in diesem Forum.

Moderator:  Josef Kirschbaum 

Thema drucken

Rechte
      Sie können keine neuen Themen erstellen
      Sie können keine neuen Antworten erstellen
      HTML ist deaktiviert
      UBBCode ist aktiviert

Bewertung:
Thema gelesen: 478

Bewerten Sie dieses Thema
 
Sprung zu

Kontaktformular | Datenschutzerklärung zur PowerBASIC Startseite



UBB.threads™ 6.2.1