Deutsch
Forum

Warum steigt das Programm aus?

 

Detlef
Jagolski
Hallo,

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&)
ProcAddr(EditProc6,-4)

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




Detlef
Jagolski
Habe Fehler schon gefunden.

Set("FastMode",1)

Gruß
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 für 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 für 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  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

616 Betrachtungen

Unbenanntvor 0 min.

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

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


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


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