| |
|
|
Georg Hovenbitzer | Hallo zusammen,
ich habe hier ein sehr seltsames Problem.
Der code unten erstellt, wenn noch nicht vorhanden, eine RTF Datei und läd diese beim Drücken von Go immer in das RichEdit Feld. Soweit klappt auch alles Wenn ich nun aber z.B. Zeile 1 schreiben, Edit Fenster schließen, wieder öffnen, den ganzen Text löschen, Fenster schließen und wieder öffnen. Bis dahin ist alles O.K.
Wenn ich nun einen neuen Text schreiben und das Edit Fenster schließe wird dieser nicht mehr gespeichert Die leere rtf Datei ist dabei immer 128Bytes groß !!!
Mache ich da was falsch oder geht die Datei beim Speichern, wenn kein Inhalt vorhanden ist, kapput ?!?
Gruß Georg KompilierenMarkierenSeparierenDeclare Infofenster&
Declare Inforich&
Declare Infoend&
Declare Go&
Proc Infofenster
Infofenster& = @Create(Window,%Hwnd,Infos,((%Maxx / 2) - 300),((%Maxy / 2) - 200),600,400)
Inforich& = @Create(RichEdit,Infofenster&,,1,1,592,320)
@Sendmessage(Inforich&,$45B,1,0)
If @Fileexists(D:\RTFInfo.rtf)
@Rtf(LoadRTF,Inforich&,D:\RTFInfo.rtf)
Endif
Infoend& = @Create(Button,Infofenster&,Beenden,259,328,82,22)
@Setfocus(Inforich&)
Endproc
Proc Infosave
@Rtf(SaveRTF,Inforich&,D:\RTFInfo.rtf)
Endproc
Cls
Go& = @Create(Button,%Hwnd,Go,100,100,80,40)
Whilenot %Key = 2
Waitinput
If @Clicked(Go&)
Infofenster
@Setfocus(Infofenster&)
Elseif (@Clicked(Infoend&) And (@Getactivewindow() = Infofenster&))
Infosave
@Destroywindow(Infofenster&)
@Setfocus(%Hwnd)
Endif
Endwhile
End
|
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 21.07.2006 ▲ |
|
|
|
|
Georg Hovenbitzer | Hallo zusammen,
das Problem kann man z.B. so umgehen: KompilierenMarkierenSeparierenDeclare Infofenster&
Declare Inforich&
Declare Infoend&
Declare Go&
Struct Gettextlengthex = Flags&,
Codepage&
Declare Gettextlengthex#
Dim Gettextlengthex#,Gettextlengthex
Proc Infofenster
Infofenster& = @Create(Window,%Hwnd,Infos,((%Maxx / 2) - 300),((%Maxy / 2) - 200),600,400)
Inforich& = @Create(RichEdit,Infofenster&,,1,1,592,320)
@Sendmessage(Inforich&,$45B,1,0)
If @Fileexists(D:\RTFInfo.rtf)
@Rtf(LoadRTF,Inforich&,D:\RTFInfo.rtf)
Endif
Infoend& = @Create(Button,Infofenster&,Beenden,259,328,82,22)
@Setfocus(Inforich&)
Endproc
Proc Infosave
If @Sendmessage(Inforich&,$45F,,Gettextlengthex#,0) > 0
@Rtf(SaveRTF,Inforich&,D:\RTFInfo.rtf)
Else
Assign #1,D:\RTFInfo.rtf
Erase #1
Endif
Endproc
Cls
Go& = @Create(Button,%Hwnd,Go,100,100,80,40)
Whilenot %Key = 2
Waitinput
If @Clicked(Go&)
Infofenster
@Setfocus(Infofenster&)
Elseif (@Clicked(Infoend&) And (@Getactivewindow() = Infofenster&))
Infosave
@Destroywindow(Infofenster&)
@Setfocus(%Hwnd)
Endif
Endwhile
End
|
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 21.07.2006 ▲ |
|
|
|
|
Georg Hovenbitzer | Hallo zusammen,
könnte sich jemand bitte mal diesen code ansehen
Das Problem mit der leeren RTF Datei kann ich ja umgehen. Aber wenn man das ganze übersetzt stürzt das Programm mit einer Schutzverletzung ab. Und dies immer wenn er eine RTF Datei mit Inhalt beim Aufrufen des Fensters lesen will
Habe ich hier etwas total falsch verstanden ?!?! |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 25.07.2006 ▲ |
|
|
|
|
Rolf Koch | Hi Georg,
versuchs mal mit folgendem: [...] |
|
|
| |
|
|
|
Georg Hovenbitzer | Hallo Rolf,
vielen Dank, aber mit dem Tip hat es auch nicht geklappt.
Aber wenn man mit Control ein RTF Edit erstellt, klappt alles. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 25.07.2006 ▲ |
|
|
|
|
Sebastian König | Mit Profan2Cpp funktionierts ohne Absturz - verkehrte Welt |
|
|
| |
|
|
|
RGH | Georg Hovenbitzer
Hallo Rolf,
vielen Dank, aber mit dem Tip hat es auch nicht geklappt.
Aber wenn man mit Control ein RTF Edit erstellt, klappt alles.
Mit welcher Control-Zeile genau klappt alles? Wenn Du diese mal postest, kann ich sie mit meinem Code in XProfan vergleichen und vielleicht so dem Problem auf die Spur kommen.
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 25.07.2006 ▲ |
|
|
|
|
Georg Hovenbitzer | Hallo Roland,
meine Antwort an Rolf war etwas voreilig.
Mit der Zeile: KompilierenMarkierenSeparieren@Control(RichEdit,,$5430D1C4,1,1,592,340,InfoFenster&,100,%hInstance,$210)
Bekomme ich es im Interpreter sauber zum Laufen, aber als EXE nicht mehr Dies ist im aber eben erst aufgefallen, da ich mich vorher schon für ein Multiedit entschieden habe. Der Hauptgrund war dafür, dass man die Funktionen auf der rechten Maustaste direkt hat und nicht selbst Coden muss. |
|
|
| Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a) | 26.07.2006 ▲ |
|
|
|