Italia
Foro

Warum steigt das Programm aus?

 

Detlef
Jagolski
Ciao,

habe ein kleines Problem.

Warum steigt das Programm aus?
KompilierenMarkierenSeparieren
 $P+
SetErrorLevel 0
WINDOWS.PH
MESSAGES.PH
Declare OldEditProc1&
Declare OldEditProc2&
Declare OldEditProc3&
Declare OldEditProc4&
Declare OldEditProc5&
Declare OldEditProc6&

Proc EditProc1

    Parameters Edit&, Message&, wParam&, lParam&

    If Message& = ~WM_CHAR

        Message& = 0

    EndIf

    Return ~CallWindowProc(OldEditProc1&, Edit&, Message&, wParam&, lParam&)

EndProc

Proc EditProc2

    Parameters Edit&, Message&, wParam&, lParam&

    If Message& = ~WM_CHAR

        Message& = 0

    EndIf

    Return ~CallWindowProc(OldEditProc2&, Edit&, Message&, wParam&, lParam&)

EndProc

Proc EditProc3

    Parameters Edit&, Message&, wParam&, lParam&

    If Message& = ~WM_CHAR

        Message& = 0

    EndIf

    Return ~CallWindowProc(OldEditProc3&, Edit&, Message&, wParam&, lParam&)

EndProc

Proc EditProc4

    Parameters Edit&, Message&, wParam&, lParam&

    If Message& = ~WM_CHAR

        Message& = 0

    EndIf

    Return ~CallWindowProc(OldEditProc4&, Edit&, Message&, wParam&, lParam&)

EndProc

Proc EditProc5

    Parameters Edit&, Message&, wParam&, lParam&

    If Message& = ~WM_CHAR

        Message& = 0

    EndIf

    Return ~CallWindowProc(OldEditProc5&, Edit&, Message&, wParam&, lParam&)

EndProc

Proc EditProc6

    Parameters Edit&, Message&, wParam&, lParam&

    If Message& = ~WM_CHAR

        Message& = 0

    EndIf

    Return ~CallWindowProc(OldEditProc6&, Edit&, Message&, wParam&, lParam&)

EndProc

Declare appexit%
Declare Edit1&
Declare Edit2&
Declare Edit3&
Declare Edit4&
Declare Edit5&
Declare Edit6&
SetTrueColor 1
WindowStyle $003F
WindowTitle "DesignForm"
Window %maxX + 5,114 - 498,415
Cls ~GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
Edit1&=CreateEdit(%hwnd,"",130,50,121,22)
Edit2&=CreateEdit(%hwnd,"",130,80,121,21)
Edit3&=CreateEdit(%hwnd,"",130,110,121,21)
Edit4&=CreateEdit(%hwnd,"",130,140,121,21)
Edit5&=CreateEdit(%hwnd,"",130,170,121,21)
Edit6&=CreateEdit(%hwnd,"",130,200,121,21)
OldEditProc1& = ~GetWindowLong(Edit1&, ~GWL_WNDPROC)
~SetWindowLong(Edit1&,~GWL_WNDPROC,ProcAddr(EditProc1,4))
OldEditProc2& = ~GetWindowLong(Edit2&, ~GWL_WNDPROC)
~SetWindowLong(Edit2&,~GWL_WNDPROC,ProcAddr(EditProc2,4))
OldEditProc3& = ~GetWindowLong(Edit3&, ~GWL_WNDPROC)
~SetWindowLong(Edit3&,~GWL_WNDPROC,ProcAddr(EditProc3,4))
OldEditProc4& = ~GetWindowLong(Edit4&, ~GWL_WNDPROC)
~SetWindowLong(Edit4&,~GWL_WNDPROC,ProcAddr(EditProc4,4))
OldEditProc5& = ~GetWindowLong(Edit5&, ~GWL_WNDPROC)
~SetWindowLong(Edit5&,~GWL_WNDPROC,ProcAddr(EditProc5,4))
Urspruengliche ProgramMainRoutine wieder herstellen
OldEditProc1& = ~SetWindowLong(Edit1&,~GWL_WNDPROC,OldEditProc1&)
Callback-Platz wieder freigeben
ProcAddr(EditProc1,-4)
Urspruengliche ProgramMainRoutine wieder herstellen
OldEditProc2& = ~SetWindowLong(Edit2&,~GWL_WNDPROC,OldEditProc2&)
Callback-Platz wieder freigeben
ProcAddr(EditProc2,-4)
Urspruengliche ProgramMainRoutine wieder herstellen
OldEditProc3& = ~SetWindowLong(Edit3&,~GWL_WNDPROC,OldEditProc3&)
Callback-Platz wieder freigeben
ProcAddr(EditProc3,-4)
Urspruengliche ProgramMainRoutine wieder herstellen
OldEditProc4& = ~SetWindowLong(Edit4&,~GWL_WNDPROC,OldEditProc4&)
Callback-Platz wieder freigeben
ProcAddr(EditProc4,-4)
Urspruengliche ProgramMainRoutine wieder herstellen
OldEditProc5& = ~SetWindowLong(Edit5&,~GWL_WNDPROC,OldEditProc5&)
Callback-Platz wieder freigeben
ProcAddr(EditProc5,-4)
OldEditProc6& = ~GetWindowLong(Edit6&, ~GWL_WNDPROC)
~SetWindowLong(Edit6&,~GWL_WNDPROC,ProcAddr(EditProc6,4))
SetWindowPos %hwnd = 207,114 - 498,415;0

WhileNot appexit%

    WaitInput

    If %key = 2

        appexit%=1

    ElseIf GetFocus(Edit1&)

    ElseIf GetFocus(Edit2&)

    ElseIf GetFocus(Edit3&)

    ElseIf GetFocus(Edit4&)

    ElseIf GetFocus(Edit5&)

    ElseIf GetFocus(Edit6&)

    ElseIf %key = 4

        Fenstergröße

    ElseIf %key = 5

        Hilfe

    EndIf

Wend

OldEditProc6& = ~SetWindowLong(Edit6&,~GWL_WNDPROC,OldEditProc6&)
Pr
(EditProc6,-4)

Saluto
Detlef
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
18.07.2008  
 




Detlef
Jagolski
Habe Fehler schon gefunden.

Set("FastMode",1)

Saluto
Detlef
 
XProfan X4, PRFellow, Profan2Cpp - Version 2.0c-pre5, Windows 11
18.07.2008  
 



In der letzten Zeile das ProcAddr(EditProc6,-4) verstehe ich nicht - scheint ein Überbleibsel.

Ebenso brauchst Du doch garnicht per jedes Control eine eigene Proc definieren - nimm einfach immer die selbe.
 
18.07.2008  
 




Frank
Abbing
iF
In der letzten Zeile das ProcAddr(EditProc6,-4) verstehe ich nicht - scheint ein Überbleibsel.

Ebenso brauchst Du doch garnicht per jedes Control eine eigene Proc definieren - nimm einfach immer die selbe.


Eben, und den alten Handle speicherst du einfach im GWL_USERDATA des jeweiligen Control.
 
19.07.2008  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

629 Views

Untitledvor 0 min.

Themeninformationen

Dieses Thema hat 3 subscriber:

Detlef Jagolski (2x)
Frank Abbing (1x)
iF (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie