C ++ Foro | | | | Detlef Jagolski | ¡Hola Sebastian, si yo el Procedimiento SaveAccess aufrufe stürzt mein Programa de, kann’s Usted me una Tipp geben. Bajo XProfan se ejecuta lo sin Problemas. Getestet con Profano2cpp 2.0 Gracias en voraus.
Saludo Detlef Syntay-Check: Keine Fehler oder Warnungen "CrogrammeDev-C++ing++.exe" -c PrfMain.cpp -o .objPrfMain.o -I"CrogrammeDev-C++include" -I"CrogrammeDev-C++includeg++" -L"CrogrammeDev-C++lib" -B"CrogrammeDev-C++in" -fexceptions -s -mwindows -w -O2 -fvtable-thunks -fno-elide-constructors "CrogrammeDev-C++ing++.exe" -c Vorlage_Neu.cpp -o .objVorlage_Neu.o -I"CrogrammeDev-C++include" -I"CrogrammeDev-C++includeg++" -L"CrogrammeDev-C++lib" -B"CrogrammeDev-C++in" -fexceptions -s -mwindows -w -O2 -fvtable-thunks -fno-elide-constructors "CrogrammeDev-C++ing++.exe" -o "Vorlage_Neu.exe" ".objPrfMain.o" ".objVorlage_Neu.o" ".esesource.o" ".libplibbase.lib" ".libplibstr.lib" ".libplibwin.lib" ".libplibfile.lib" ".libplibgdi.lib" ".libplibsql.lib" -luuid "CrogrammeDev-C++liblibglu32.a" "CrogrammeDev-C++liblibopengl32.a" "CrogrammeDev-C++liblibole32.a" "CrogrammeDev-C++liblibolepro32.a" "CrogrammeDev-C++liblibodbc32.a" "CrogrammeDev-C++liblibwsock32.a" "CrogrammeDev-C++liblibcomctl32.a" "CrogrammeDev-C++liblibwinmm.a" -I"CrogrammeDev-C++include" -I"CrogrammeDev-C++includeg++" -L"CrogrammeDev-C++lib" -B"CrogrammeDev-C++in" -fexceptions -s -mwindows -w -O2 -fvtable-thunks -fno-elide-constructors Finished.
Proc SaveAccess
Dim ItemText#,3584
Dim Speicher#,3584
Claro ItemText#
Claro Speicher#
FileName$ = SaveFile$("Speichern unter","Microsoft Access-Datenbank (*.mdb) | *.mdb")
If FileName$ <> ""
CreateAccess FileName$
AccessDB& = SQLInit("DSN=Microsoft Access-Datenbank;DBQ="+FileName$)
Conjunto("SQLDBC",AccessDB&)
Conjunto("SQLNULL","")
Conjunto("SQLFile",Substr$(FileName$, -1, ".") + ".DAT")
SQLString$ = "CREATE TABLE Projektdaten ([Projekt-Nr] TEXT, [Bezeichnung 1] TEXT, [Bezeichnung 2] TEXT, "
SQLString$ = SQLString$ + "[Schneidplantyp] TEXT, [Gewicht 1] TEXT, [Gewicht 2] TEXT, [Block Gewicht] TEXT, "
SQLString$ = SQLString$ + "[Block Longitud] TEXT, "[Block Breite] TEXT, [Block Höhe] TEXT, [Teilung Longitud] TEXT, "
SQLString$ = SQLString$ + "[Teilung Breite] TEXT, [Teilung Höhe] TEXT, [Schneidbreite Longitud] TEXT, "
SQLString$ = SQLString$ + "[Schneidbreite Breite] TEXT, [Schneidbreite Höhe] TEXT)"
SQLExec SQLString$,2
ProjektNr$ = GetText $(Editar1&)
Bezeichnung_1$ = GetText $(Editar2&)
Bezeichnung_2$ = GetText $(Editar3&)
Schneidplantyp$ = GetText $(ChoiceBox1&)
Such_Gewicht_1$ = GetText $(Editar4&)
Such_Gewicht_2$ = GetText $(Editar5&)
Block_Gewicht$ = GetText $(Editar6&)
Block_Laenge$ = GetText $(Editar7&)
Block_Breite$ = GetText $(Editar8&)
Block_Hoehe$ = GetText $(Editar9&)
Teilung_Laenge$ = GetText $(SpinEdit1&)
Teilung_Breite$ = GetText $(SpinEdit2&)
Teilung_Hoehe$ = GetText $(SpinEdit3&)
Schnitt_Laenge$ = GetText $(Editar10&)
Schnitt_Breite$ = GetText $(Editar11&)
Schnitt_Hoehe$ = GetText $(Editar12&)
SQLString$ = "INSERT INTO Projektdaten VALUES (:ProjektNr$,:Bezeichnung_1$,:Bezeichnung_2$,:Schneidplantyp$,"
SQLString$ = SQLString$ + ":Such_Gewicht_1$,:Such_Gewicht_2$,:Block_Gewicht$,:Block_Laenge$,:Block_Breite$,"
SQLString$ = SQLString$ + ":Block_Hoehe$,:Teilung_Laenge$)"
SQLExec SQLString$,2
Caso negativo GetLines(ListView1&) = 0
If GetText $(ChoiceBox1&) = "Standard"
SQLString$ = "CREATE TABLE Schneidpläne ([Lfd-Nr] TEXT, [Maß de Longitud] TEXT, [Maß de Breite] TEXT, "
SQLString$ = SQLString$ + "[Maß de Höhe] TEXT, Teilung Longitud] TEXT, [Teilung Breite] TEXT, "
SQLString$ = SQLString$ + "[Teilung Höhe] TEXT, [Produktanzahl] TEXT, [Ausbeute] TEXT, [Produktgewicht] TEXT)"
SQLExec SQLString$,2
Claro Zeile&
Repeat
Claro ItemText#
Claro Speicher#
GetLineText(ListView1&,Zeile&,ItemText#)
GetTabOffsets(ItemText#,Speicher#)
Zähler$ = String$(ItemText#,Largo(Speicher#,0))
Portions_Laenge$ = String$(ItemText#,Largo(Speicher#,4))
Portions_Breite$ = String$(ItemText#,Largo(Speicher#,8))
Portions_Hoehe$ = String$(ItemText#,Largo(Speicher#,12))
Teilung_Laenge$ = String$(ItemText#,Largo(Speicher#,16))
Teilung_Breite$ = String$(ItemText#,Largo(Speicher#,20))
Teilung_Hoehe$ = String$(ItemText#,Largo(Speicher#,24))
Block_Portionen$ = String$(ItemText#,Largo(Speicher#,28))
Block_Ausbeute$ = String$(ItemText#,Largo(Speicher#,32))
Portions_Gewicht$ = String$(ItemText#,Largo(Speicher#,36))
SQLString$ = "INSERT INTO Schneidpläne VALUES (:Zähler$,:Portions_Laenge$,:Portions_Breite$,:Portions_Hoehe$,"
SQLString$ = SQLString$ + ":Teilung_Laenge$,:Teilung_Breite$,:Teilung_Hoehe$,:Block_Portionen$,:Block_Ausbeute$,"
SQLString$ = SQLString$ + ":Portions_Gewicht$)"
SQLExec SQLString$,2
Inc Zeile&
Until Zeile& = GetLines(ListView1&)
ElseIf GetText $(ChoiceBox1&) = "Offset"
SQLString$ = "CREATE TABLE Schneidpläne ([Lfd-Nr] TEXT, [Maß de Longitud] TEXT, [Maß de Breite] TEXT, "
SQLString$ = SQLString$ + "[Maß de Longitud] TEXT, [Maß de Breite] TEXT, [Maß de Höhe] TEXT, "
SQLString$ = SQLString$ + "[Teilung Longitud 1] TEXT, [Teilung Longitud 2] TEXT, [Teilung Breite] TEXT, "
SQLString$ = SQLString$ + "[Teilung Höhe] TEXT, [Produktanzahl] TEXT, [Ausbeute] TEXT, "
SQLString$ = SQLString$ + "[Produktgewicht 1] TEXT, [Produktgewicht 2] TEXT)"
SQLExec SQLString$,2
Claro Zeile&
Repeat
Claro ItemText#
Claro Speicher#
GetLineText(ListView1&,Zeile&,ItemText#)
GetTabOffsets(ItemText#,Speicher#)
Zähler$ = String$(ItemText#,Largo(Speicher#,0))
Portions_Laenge$ = String$(ItemText#,Largo(Speicher#,4))
Riegel_Breite_1$ = String$(ItemText#,Largo(Speicher#,8))
Portions_Laenge_2$ = String$(ItemText#,Largo(Speicher#,12))
Riegel_Breite_2$ = String$(ItemText#,Largo(Speicher#,16))
Portions_Hoehe$ = String$(ItemText#,Largo(Speicher#,20))
Schnitt_Anzahl_Laenge$ = String$(ItemText#,Largo(Speicher#,24))
Schnitt_Anzahl_Laenge_2$ = String$(ItemText#,Largo(Speicher#,28))
Schnitt_Anzahl_Breite$ = String$(ItemText#,Largo(Speicher#,32))
Schnitt_Anzahl_Hoehe$ = String$(ItemText#,Largo(Speicher#,36))
Block_Portionen_1$ = String$(ItemText#,Largo(Speicher#,40))
Block_Ausbeute_1$ = String$(ItemText#,Largo(Speicher#,44))
Portions_Gewicht_1$ = String$(ItemText#,Largo(Speicher#,48))
Portions_Gewicht_2$ = String$(ItemText#,Largo(Speicher#,52))
SQLString$ = "INSERT INTO Schneidpläne VALUES (:Zähler$,:Portions_Laenge$,:Riegel_Breite_1$,"
SQLString$ = SQLString$ + ":Portions_Laenge_2$,:Riegel_Breite_2$,:Portions_Hoehe$,"
SQLString$ = SQLString$ + ":Schnitt_Anzahl_Laenge$,:Schnitt_Anzahl_Laenge_2$,:Schnitt_Anzahl_Breite$,"
SQLString$ = SQLString$ + ":Schnitt_Anzahl_Laenge_2$,:Schnitt_Anzahl_Breite$,:Schnitt_Anzahl_Hoehe$,"
SQLString$ = SQLString$ + ":Block_Portionen_1$,:Block_Ausbeute_1$,:Portions_Gewicht_1$,:Portions_Gewicht_2$)"
SQLExec SQLString$,2
Inc Zeile&
Until Zeile& = GetLines(ListView1&)
EndIf
EndIf
SQLDone
EndIf
Disponer ItemText#
Disponer Speicher#
ENDPROC
|
| | | XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 29.10.2008 ▲ |
| |
| | Sebastian König | ¡Hola Detlef,
Yo voluntad veces nachsehen, qué como schiefläuft. Leider es con el Ausschnitt allein muy schwer, algo konkretes a sagen... ¿Puede Usted me (por eMail oder PM) evtl. una komplett lauffähigen Code para Testen enviar?
Gracias,
Sebastian |
| | | | |
| | Detlef Jagolski | ¡Hola Sebastian, el Fehler Yo soweit eingrenzen puede, dass el Fehler hier mentira muss: FileName$ = SaveFile$("Speichern unter","Microsoft Access-Datenbank (*.mdb) | *.mdb") Wenn Yo sin Subclassing mache es, si yo SaveFile$... de el Subclass Procedimiento Starte, stürzt el Programa de.
Saludo
Detlef
Def &WM_GETMINMAXINFO 36
Def &WM_RBUTTONDOWN 516
Declarar MinMaxInfo#
SubClassProc
If SubClassMessage(%hwnd, &WM_GETMINMAXINFO)
Fenstergrösse einschränken
Dim MinMaxInfo#,40
MinMaxInfo# = &sLParam
Largo MinMaxInfo#,24 = 871
Largo MinMaxInfo#,28 = 563
Largo MinMaxInfo#,32 = %MaxX
Largo MinMaxInfo#,36 = %MaxY
Disponer MinMaxInfo#
Conjunto("WinProc",0)
ElseIf SubClassMessage(%hwnd, &WM_RBUTTONDOWN)
Test
Conjunto("WinProc", 0)
EndIf
ENDPROC
Proc Test
FileName$ = SaveFile$("Speichern unter","Microsoft Access-Datenbank (*.mdb) | *.mdb")
ENDPROC
Declarar appexit%, FileName$
Título de la ventana "DesignForm"
Ventana %maxX + 5,0 - 871,563
cls
Conjunto("SubClassMode",1)
SubClass %hwnd,1
SetWindowPos %hwnd = 0,0 - 871,563;0
Test
Sinestar encargado appexit%
WaitInput
If %key = 2
appexit%=1
ElseIf %key = 4
Fenstergröße
ElseIf %key = 5
Ayuda
EndIf
|
| | | XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 30.10.2008 ▲ |
| |
| | Sebastian König | ¡Hola Detlef,
sorry, dass Yo mich ahora sólo otra vez melde. Leider bin Yo gestern no dazu gekommen, mich con el Sache a beschäftigen.
Gracias en cada Fall para el código - Yo kann el Fehler así nachvollziehen. Spontan bin Yo allerdings no así sicher, si Yo como algo hacer kann. Solche Aufrufe de Dialogen de el SubClassProc heraus son allgemein no empfehlenswert - auch en XProfan incluso no (möglicherweise es sólo Zufall, dass el Code así funktioniert). Der en el XProfan-Ayuda empfohlene Weg Es el Verwendung de SetMenuItem y somit el Verlagerung el real Aktion en el Progamm-Hauptschleife.
Yo voluntad trotzdem veces gucken, si Yo evtl. ya que es para Laufen bringen kann.
MfG
Sebastian |
| | | | |
| | | GetOpenFileName [...] innerhalb el SubClassProc kann imho nie largo bien ir, denkt uno alleine a hwndOwner el "OPENFILENAME Structure". |
| | | | |
| | Detlef Jagolski | ¡Hola Sebastian,
kein Problema, Su Ausbildung y Su privat Leben ir antes. Posesiones inzwischen lo auch con SetMenuItem gelöst.
Gracias y Saludo
Detlef |
| | | XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11 | 01.11.2008 ▲ |
| |
| | Sebastian König | ¡Hola Detlef,
danke para Su Verständnis . Yo habe inzwischen una Concepto, Yo evtl. ändern podría en el ursprünglichen Code para Laufen a bringen y voluntad el veces ausprobieren. El Solución con SetMenuItem halte Yo allerdings en cada Fall para mejor y sicherer...
MfG
Sebastian |
| | | | |
|
RespuestaThemeninformationenDieses Thema ha 3 subscriber: |