Français
Forum

plusieurs la fenêtre/Dialoge gleichzeitig im Fokus avons

 

holmol93
allô miteinander

la fois wieder une très eigensinnige Frage... oO
comment ist es possible, dans einem Programme plusieurs la fenêtre/Dialoge gleichzeitig im Fokus trop avons um zB avec den Dialogfenstern, qui im Hintergrund liegen, aussi Eingaben faire trop peut et pas d'abord toujours cela jeweils obere schliessen trop doit?

Beispiel wäre zB, dass on qui Artikelverwaltung et un Auftragsfenster offen hat et dans beiden travailler peux... alors beliebig viele la fenêtre offen hat et alle Eingaben entgegen prendre peut...

je n'en sais rien, comment je cela oui c'est ca décrire peux...
Habe im Anhang la fois mon derzeitiges Spassprojekt angehängt, avec allen Datenbankfiles, dem Voir le texte source et einer vorkompilierten Exe zum Testen...
peut-être peux on es sich ensuite besser présenter... Momentan funktioniert toujours seulement cela la fenêtre, welches im Vordergrund ist...

Testaccounts:

PW: 3333 - Benutzer avec très wenigen Rechten
PW: 98553 - mon Account avec so assez allen Rechten. qui peux on variable zuteilen übers MitarbeiterMaster.

Hat encore assez viele Bugs, zeigt mon Problem mais droite bien...
Gruess,
Danny

712 kB
Hochgeladen:28.07.2013
Downloadcounter96
Download
 
28.07.2013  
 




Julian
Schmidt
Du könntest mittels WindowFromPoint cela négoce sous qui souris ermitteln. et alle Tasteneingaben à cela la fenêtre weiterleiten.

ici un entier primitives Beispiel.
Def @GetParent(1) !"User32","GetParent"
CLS
Déclarer hhdl&
Créer("Button",%hwnd,"test",10,10,200,30)

Tandis que 1

    WaitScan
    hhdl&=HandleHover()

    Si (GetParent(hhdl&)=%hwnd) or (hhdl&=%hwnd)

        Si %ScanKey=8

            Settext hhdl&,Mid $(Gettext$(hhdl&),1,Len(Gettext$(hhdl&))-1)

        D'autre

            Settext hhdl&,Gettext$(hhdl&)+Inkey$()

        EndIf

    Endif

Endwhile

Proc HandleHover

    Déclarer mpos#
    Faible mpos#,8
    Externe("user32","GetCursorPos",mpos#)
    Var hdl&=Externe("User32","WindowFromPoint",long(mpos#,0),long(mpos#,4))
    Dispose mpos#
    Retour hdl&

ENDPROC

 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
28.07.2013  
 




Julian
Schmidt
Hab la fois deinen Voir le texte source angeschaut.

Mir ist aufgefallen cela du dans qui Procedur "accessrights" 45 durchnummerierte Variablen pour deine Rechterverwaltung verwendest. Leichter wäre ici qui Verwendung eines Arrays.
declare right%[]'Deklaration
Claire right%[]'sur 0 mettons

whileloop 0,44

    cas droite$=Str$(&loop+1) :  right%[&loop]=1'si droite vorhanden; ensuite juste 1

Endwhile

'Abfrage des Rechtes ensuite per

Si right%[NummerRecht%-1]

Endif

 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
28.07.2013  
 




holmol93
Heyhoo

à cause de deiner ersten Antwort:
je muss mir den Voir le texte source la fois oui c'est ca anschauen, im Moment verstehe je là seulement gare hihi
mon Programmierkenntnisse sommes doch encore droite beschränkt, avant allem si es um systemnahe Funktionen allez...
Muss mich la fois par cela Befehlsregister fouiller, quoi chacun Anweisung en oui c'est ca bewirkt

trop qui Rechtezuteilung:

Hehe, là avons wirs wieder ;) je wusste jusqu'à plan pas einmal, quoi Arrays sommes, c'est pourquoi hab je mir so plus geholfen, comme mir autrefois dans den Sinn gekommen ist
mais je weiss, dass quelques Funktionen encore pas justement sinnvoll, geschweige car performant mise en œuvre sommes... jusqu'à dahin wird encore einiges l'eau sur den Rhein aller ;)

Im Moment voudrais je d'abord einmal den Mehrfensterbetrieb dans den Griff bekommen... car sans ist qui ganze Software très mühsam trop bedienen^^
(avec cela on dans qui Auftragsübersicht également une Vue d'ensemble sur alle Artikel einblenden peux, sans alle la fenêtre d'abord trop schliessen, habe je mir jusqu'à maintenant avec einem Hotkey beholfen (F1) , qui une kleinen Dialogue avec les allen Artikeln einblendet)

Greetz,

Danny
 
28.07.2013  
 




Julian
Schmidt
Vieleicht peux du la fois un minimalistisches Beispiel posten.quoi aufzeigt comment dein Fensterbetrieb justement aussieht. et anschließend décrire comment du dir den Mehrfensterbetrieb vorstellst.

je crois ici aucun Lust une Tausendzeilen-Code durchzusuchen.
et mir ist aussi encore pas bien sûr quoi du eig veux.
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
28.07.2013  
 




holmol93
Ah alors:

je beziehe mich dabei toujours sur unser Access basierendes Datenbanksystem im magasin.
je peux so viele Formulare offen avons, comment je veux, sobald comment je de einem ins autre la fenêtre wechsle, peux je Eingaben faire.

chez mir ists oui maintenant grade so:
tu veux une Auftrag chercher. alors gehtst du zB dans qui Kundendaten, wählst là une Kunden aus. qui Kundendetails ouvrir sich. de là klickst du sur une Auftrag. qui Auftrag ouvrez sich.
maintenant avons wir 3 la fenêtre offen. je peux cependant, sans d'abord alle "übergeordneten" dans qui Reihenfolge trop schliessen, pas simple so quelque chose dans qui Kundenübersicht faire. Klicken allez déjà, cependant reagiert rien, solang comment cela Auftragsfenster aktiv ist.

j'ai là déjà rumprobiert avec den verschiedenen Fensterstilen, là je gemeint habe, es liegt am Dialogfensterstil.
mais si cela so wäre, pourrait je oui im %HWND quand même Eingaben vornehmen, quoi cependant aussi pas possible ist

Gruess,
Danny
 
28.07.2013  
 




Julian
Schmidt
je vais en aus cela du pour chaque la fenêtre une Boucle la hâte, dans qui du qui pour cela la fenêtre wichtigen Bedingungen abgefragst.
Sobald cela la fenêtre geschlossen wird, wird qui Abbruchbedingung aktiv et cela Programme springt dans qui untergeordnete Boucle des untergeordenten la fenêtre.
Anschließend volonté également seulement qui pour cet la fenêtre wichtige Bedingungen abgefragt.

avec cela du aussi alle Bedingugen aller la fenêtre gleichzeitig abfragen peux, doit alle Bedingungen naturellement aussi dans einer Boucle liegen. Allternativ verschiebst du alle Bedingungen dans un Funktion et appelles vous dans chacun individuel Boucle sur.

cela Erste wäre avec Bezug sur sauberen Code qui bessere Solution.
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
28.07.2013  
 




Thomas
Freier
Im Prinzip peux il oui x-beliebige la fenêtre sur 28.14 - Multiprozessing avec XProfan ouvrir , Travailler, à gauche liegen laisser et schließen.
chez den DBFs devrait cet ensuite vorsichtshalber toujours seulement zum Datenlesen et -Sauver sur @db("Open", #N,S) aktiv son. suis Je ne sûrement, si es beim Multiprozessing sonst trop Problemen venez, si de deux Prozessen puis zurückgegriffen wird.
 
Gruß Thomas
Windows XP SP2, XProfan X2
28.07.2013  
 




H.Brill
Peut-être aussi un TabControl quoi pour toi ?
là peux on cela doch joli schalten. et on braucht
seulement une einzige Ereignis-Boucle. il faut seulement aufpassen,
quel Button/Contrôle dans welches la fenêtre est.
Hab ici la fois quoi vorbereitet. s'il te plaît korrigiert mich, si
quoi faux son sollte :
Déclarer Dlg1&, Dlg2&, Dlg3&, tabctrl&, Reiter&
Déclarer edit1&, edit2&, edit3&, edit4&, edit5&, btn1&, btn2&, btn3&, lb&
Titre de la fenêtre "Mein Fenster"
Fenêtre 800, 600
tabctrl& = Créer("TabCtrl", %HWnd, "Kunden", 5, 10, 730, 550)
' Reiter anlegen
@InsertTab(tabctrl&, 3, "Artikel")
@InsertTab(tabctrl&, 2, "Rechnungen")
Fenêtre Style 1024
' 1. Dialog
Dlg1&  = @Créer("Window",tabctrl&,"Kunden Verwaltung",10, 60, 700, 480)
edit1& = @Créer("Edit",    Dlg1&, », 10, 10, 120, 25)
edit2& = @Créer("Edit",    Dlg1&, », 10, 40, 120, 25)
btn1&  = @Créer("Button",  Dlg1&, "Kopiere", 10, 80, 60, 25)
lb&    = @Créer(ListBox, Dlg1& , 1, 10, 120, 120, 180)
AddStrings(lb&, "Maier")
AddStrings(lb&, "Müller")
AddStrings(lb&, "Schmitt")
' 2. Dialog
Dlg2&  = @Créer("Window",tabctrl&,"Artikel Verwaltung",10, 60, 700, 480)
btn2&  = @Créer("Button", Dlg2&, "Test2", 10, 10, 60, 25)
edit3& = @Créer("Edit",   Dlg2&, », 10, 50, 120, 25)
edit4& = @Créer("Edit",   Dlg2&, », 10, 80, 120, 25)
' 3. Dialog
Dlg3&  = @Créer("Window", tabctrl&, "Rechnungs Erstellung", 10, 60, 700, 480)
edit5& = @Créer("Edit", Dlg3&, », 10, 10, 240, 25)
btn3&  = @Créer("Button", Dlg3&, "Test 3", 10, 50, 80, 25)
ShowWindow(Dlg2&, 0)
ShowWindow(Dlg3&, 0)
SetWindowPos Dlg1& = %WinLeft + 20, %WinTop + 100; 0

Tandis que 1

    WaitInput
    Reiter& = @GetActiveTab(tabctrl&)

    Si @TabChanged(tabctrl&)

        'Reiter& = @GetActiveTab(tabctrl&)

        Select Reiter&

            CaseOf 0

            ShowWindow(Dlg1&, 1)
            ShowWindow(Dlg2&, 0)
            ShowWindow(Dlg3&, 0)
            SetWindowPos Dlg1& = %WinLeft + 20, %WinTop + 100; 0

            CaseOf 1

            ShowWindow(Dlg2&, 1)
            ShowWindow(Dlg1&, 0)
            ShowWindow(Dlg3&, 0)
            SetWindowPos Dlg2& = %WinLeft + 20, %WinTop + 100; 0

            CaseOf 2

            ShowWindow(Dlg3&, 1)
            ShowWindow(Dlg1&, 0)
            ShowWindow(Dlg2&, 0)
            SetWindowPos Dlg3& = %WinLeft + 20, %WinTop + 100; 0

        EndSelect

    EndIf

    Cas %Key = 2 : Pause

    Si @Clicked(btn1&)

        'MessageBox("Button dans Kunden Verwaltung geklickt !", "Info", 0)
        SetText edit5&, GetString$(lb&, GetCurSel(lb&))

    ElseIf @Clicked(btn2&)

        MessageBox("Button dans Artikel Verwaltung geklickt !", "Info", 0)

    ElseIf @Clicked(btn3&)

        MessageBox("Button dans Rechnungs Erstellung geklickt !", "Info", 0)

    EndIf

Endwhile

Fin
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
29.07.2013  
 




Julian
Schmidt
Es pouvoir oui im Prinzip absolute keinen Unterschied si qui Controls sur une TabControl ou bien une la fenêtre liegen.
cela Wichtige ist, cela alle Bedingungen dans einer Boucle liegen. ou bien per Muliprozessing gleichzeitig abgefragt volonté peut.

je denke de Handling her wären ChildWindows encore cela einfachste. peux du dir oui la fois anschauen.
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—Ë—
Webseite [...] 
29.07.2013  
 




Thomas
Freier
peut-être trifft cet Beispiel cela Gesuchte.
 $H windows.ph
 $H messages.ph
Utilisateur Messages 16
DEF SysParameterInfo(4) ! "user32","SystemParametersInfoA"
Déclarer WX%,WY%,WL%,WB%
Déclarer item&,x%
Déclarer Win1&,W1Éditer1&,W1Éditer2&,W1Grid1&,W1End&,W1NeuSp&
Déclarer Win2&,W2Éditer1&,W2Éditer2&,W2End&
'Freier Desktopbereich
Déclarer Rect#
Faible Rect#,16
SysParameterInfo(48,0,Rect#,0)
wx%=Long(Rect#,0)
wy%=Long(Rect#,4)
wl%=Long(Rect#,8)
wb%=Long(Rect#,12)
Dispose Rect#
Fenêtre wx%,wy% - wl%,wb%
Windowtitle "Hauptfenster"
Cls ~Getsyscolor(15)
Setdialogfont ~Getstockobject(~Default_gui_font)
PopUp "&Daten"
AppendMenu 100,"&Kunden"
AppendMenu 200,"&Auftrag"

Tandis que 1

    Waitinput

    Si %UMessage = 16

        cas GetActiveWindow()=%hwnd:Pause

        Si GetActiveWindow()=Win1&

            DestroyWindow(Win1&)
            Win1&=0
            subclass Win1&,0
            setfocus(%hwnd)

        ElseIf GetActiveWindow()=Win2&

            DestroyWindow(Win2&)
            Win2&=0
            subclass Win2&,0
            setfocus(%hwnd)

        EndIf

    EndIf

    Cas MenuItem(100) AND (Win1&=0): KUNDEN
    Cas MenuItem(200) AND (Win2&=0): AUFTRAG

Endwhile

subclass Win1&,0
subclass Win2&,0
Fin

subClassProc

    Si SubClassMessage(win1&, ~WM_NOTIFY)

        Si clicked(W1End&)

            DestroyWindow(Win1&)
            Win1&=0
            subclass Win1&,0
            setfocus(%hwnd)

        ElseIf getfocus(W1NeuSp&)

            x%=Messagebox("Daten Sauver?","Hinweis",32+4)
            cas x%=6:AddStrings(W1Grid1&, Gettext$(W1Éditer1&)+"|"+Gettext$(W1Éditer2&))
            setfocus(W1Grid1&)

        ElseIf Long(&sLParam,8)=-3' Double-cliquez sur à gauche

            item&=Long(&sLParam,12)

            Si item&<>-1

                Si Win2&>0

                    Settext W2Éditer1&, Gettext$(W1Grid1&, item&, 0)
                    Settext W2Éditer2&, Gettext$(W1Grid1&, item&, 1)

                endif

            EndIf

        EndIf

    EndIf

    Si SubClassMessage(win2&, ~WM_NOTIFY)

        Si clicked(W2End&)

            DestroyWindow(Win2&)
            Win2&=0
            subclass Win2&,0
            setfocus(%hwnd)

        EndIf

    EndIf

ENDPROC

Proc KUNDEN

    Win1&=Créer("Window",%hwnd,"Kunden",10,10,340,430)
    W1Grid1&=Créer("GridBox", Win1&, "Name;0;180;Vorname;0;100", 1, 10, 10, 300, 190)
    AddStrings(W1Grid1&, "Meyer|Klaus")
    AddStrings(W1Grid1&, "Peter|Peter")
    AddStrings(W1Grid1&, "Klein|Fritz")
    Créer("Tooltip",%hwnd,W1Grid1&,"in den Auftrag per Doppelklick")
    Créer("Text",Win1&,"Name",10,210,80,20)
    Créer("Text",Win1&,"Vorname",10,235,80,20)
    W1Éditer1&=Créer("EDIT",Win1&,»,100,210,120,20)
    W1Éditer2&=Créer("EDIT",Win1&,»,100,235,120,20)
    W1NeuSp&=Créer("Button",Win1&,"Eingabe speichern",10,310,120,22)
    W1End&=Créer("Button",Win1&,"Schließen",200,310,80,22)
    subclass Win1&,1

ENDPROC

Proc AUFTRAG

    Win2&=Créer("Window",%hwnd,"Auftrag",510,10,340,430)
    W2Éditer1&=Créer("EDIT",Win2&,»,10,50,120,20)
    W2Éditer2&=Créer("EDIT",Win2&,»,10,75,120,20)
    W2End&=Créer("Button",Win2&,"Schließen",200,310,80,22)
    subclass Win2&,1

ENDPROC

 
Gruß Thomas
Windows XP SP2, XProfan X2
31.07.2013  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

10.020 Views

Untitledvor 0 min.
E.T.25.06.2023
H.Brill10.07.2018
rquindt28.01.2017
Matthias Arlt18.02.2016
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie