Parameterübergabe bei SDI
-
basti_1984 schrieb:
OK das hab ich gefunden aber was kann ich tun , das das Programm 123 als Parameter interpretiert und nicht als Programmnamen
CCommandLineInfo überschreiben das parsing selbst machen (so würde ich es machen).
Oder selbst die Befehlszeile ohne CCommandLineInfo interpretieren.
-
Hab einfach
// ParseCommandLine(cmdInfo);
auskommentiert .
sind damit irgendwelche konsequenzen verbunden denn es funktioniert.Ein zweites Problem was ich noch habe ist :
ich möchte diesen PArameter in einem Static feld ausgeben
hab das zu eine funktion geschrieben :
schreibe wert (parameter )
rufe diese funktion in Do data Exchange auf.
de funktin schreib bloß den wert in den die variable des Static feldes und macht am ende ein UPDATEDATE() das führt zu einem fehler.
wie kann ich das umgehen
-
basti_1984 schrieb:
Hab einfach
// ParseCommandLine(cmdInfo);
auskommentiert .
sind damit irgendwelche konsequenzen verbunden denn es funktioniert.Ja, die Kommandozeile wird jetzt überhaupt nicht mehr ausgewertet.
Ein zweites Problem was ich noch habe ist :
ich möchte diesen PArameter in einem Static feld ausgeben
hab das zu eine funktion geschrieben :
schreibe wert (parameter )
rufe diese funktion in Do data Exchange auf.
de funktin schreib bloß den wert in den die variable des Static feldes und macht am ende ein UPDATEDATE() das führt zu einem fehler.
wie kann ich das umgehenDu hast die Funktion an die falsche Stelle gesetzt - UpdateData() synchronisiert die Member der Dialogklasse mit den zugeordneten Bildschirm-Elementen, bzw. ruft DoDataExchange() auf, damit das sich darum kümmert. Wenn du jetzt in der DoDataExchange() wieder einen Update-Aufruf startest, hast du eine Endlosrekursion.
Was soll denn deine Funktion machen? Und was sucht sie in der DoDataExchange()?
-
OKay aber ich kann doch mit derFunktion GetCommandLine mir die Kommandozeile holen und dann selber asuwerten oder ?
zumindest funktioniert es bei mir .Meine funktion liest aus einer datenbank einenn wert anhand des Parameters aus und schreibt ihn auf dem Bildschrim .
das soll alles beim programmstart passieren.
deshalb dodataexchange ode was ist die richtige stelle.
-
basti_1984 schrieb:
OKay aber ich kann doch mit derFunktion GetCommandLine mir die Kommandozeile holen und dann selber asuwerten oder ?
zumindest funktioniert es bei mir .Ja, klar kannst du das.
Meine funktion liest aus einer datenbank einenn wert anhand des Parameters aus und schreibt ihn auf dem Bildschrim .
das soll alles beim programmstart passieren.
deshalb dodataexchange ode was ist die richtige stelle.DoDataExchange() ist definitiv NICHT die richtige Stelle - das wird wie gesagt jedes Mal aufgerufen, wenn du einen UpdateData()-Aufruf startest. Für den Programmstart ist OnInitDialog() eher geeignet.
-
Okay das ist klar aber wie mache ich das bei SDI das gibt es ja kein OnInit Dialog
-
Etwas äquivalentes schon. OnInitialUpdate gibt es in einem CFormView, denn ich vermute Du hast ein CFormView als Fenster.
Dann musst Du Dir einen eigenen Datenaustausch Mechanismus zwischen Dokument und View überlegen. Wenn der View auch ein CFormView ist müsstest Du Dir in OnUpdate etwas bauen, dass UpdateData entsprechend aufruft und die Daten aus dem Dokument mit dem View austauscht.
-
Hey du bist echt der größte hat alles funktioniert
Danke nochmal
-
basti_1984 schrieb:
Hey du bist echt der größte
Glaube ich nicht... meine Größe endet bei 179cm, für so etwas kommt Jochen Kalmbach wohl eher in Frage

-
Martin Richter schrieb:
basti_1984 schrieb:
Hey du bist echt der größte
Glaube ich nicht... meine Größe endet bei 179cm, für so etwas kommt Jochen Kalmbach wohl eher in Frage

