Deutsch
Forum

1. und 2. Fenster

 

Detlef
Tussing
hallo allen Profaner`n

hab schon wieder eine Frage, bei dem zusammenkopieren von verschiedenen Programmen mach ich jetzt 2 Fenster auf. Ich hätte aber gerne die ListBox im Fenster 1, und kein weiters Fenster.
KompilierenMarkierenSeparieren
1. Fenster
DEF GETSYSCOLOR(1) !USER32,GetSysColor
WINDOWSTYLE 31 47
WINDOWTITLE Test
WINDOW SUB(DIV(%MAXX,2),DIV(740,2)),SUB(DIV(%MAXY,2),DIV(500,2))-660,500
SETTRUECOLOR 1
CLS GETSYSCOLOR(1)15
SETDIALOGFONT 1
2.Fenster im 1. Fenster
dlg% = create(Dialog,%Hwnd,Test2,340,200,250,100)
CBox& = @Control(ComboBox,,$5421034E,10,10,200,200,Dlg%,2000,%hinstance)
End%=@createbutton(Dlg%,Auswahl,80,40,80,32)
Addfiles *.DAT
MoveListToChoice(CBox&)

und da ich auch neugierig bin, wüste ich gern was das $5421034E im 2. Fenster
bedeutet.
Ich habe das komplette Programm auf einen anderen Rechner kopiert,
da sind die Fenster an einer andern Stelle als bei mir, hängt das mit der Einstellung der Grafikkarte zusammen?
 
Gruß Detlef Tussing
Windows XP, XProfan 10
09.05.2007  
 




Jac
de
Lad
Um die Listbox ins erste Fenster zu quetschen müsstest du als übergeordnetes Handle %hWnd angeben (oder eben das Fenster wo sie hin soll).

$5421034E ist der Stil. Der setzt sich aus verschiedenen Werten (Attributen) zusammen, näheres dazu in der Hilfe unter Control().
 
Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE)
Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP
09.05.2007  
 




Rolf
Koch
Hi Detlef,

bevor wir helfen können, bitten wir immer einen kompletten lauffähigen Code zu posten.
Frage 1: Wieso nimmst Du immer Getsyscolor(1)? Da ist ja alles schwarz (bei mir ist Windownormal eingestellt) je nach Einstellung des Users.
Frage 2: Welche Listbox? In Deinem Code sehe ich keine Listbox. Oder meinst Du die Combobox - unter Profan als Choicebox bekannt.
Wenn die auf das erste Fenster soll, dann tausche doch einfach Dlg% gegen %hwnd aus.
Das $xxxxxxx ist die Stilbeschreibung des Controls was erstellt wird.
Frage 3: Was meinst Du mit anderer Stelle? Die Koordinaten des Hauptfensters sowie des Dialoges sind eingentlich festgelegt mit Deinen Angaben.
Das Hauptfenster sehe ich, wird jedoch Bildschirmmittig ausgerichtet. Also sollte auch das Hauptfenster auf beiden Rechnern mittig dargestellt werden.

Nachtrag: Das mittige ist nicht mittig hab ich grad gesehen, denn es werden fixe Werte genommen. Und diese sind bei verschiedenen Auflösungen %maxx und %maxy halt verschieden.
 
09.05.2007  
 




Detlef
Tussing
Wie gesagt, habe aus vielen Prog`s eins gemacht.
Da ich noch recht unerfahren bin, weis ich noch nicht über jeden Befehl bescheid.
Darum können manche Befehle unsinnig oder wiedersprüchlich sein. Doch
das prog läuft.
 
Gruß Detlef Tussing
Windows XP, XProfan 10
09.05.2007  
 




Detlef
Tussing
Dank eurer Hilfe hab ich das mit den 2 Fenstern geschafft,glaube auch das das Problem mit dem 2. Rechner gelöst ist. Wie nehm ich MAXX und MAXY wieder raus ?
Brauch ich GETSYSCOLOR überhaubt um einen blauen Hintergrund zu haben?
Wie kann ich bei der Passwortabfrage mit ENTER anstelle das Button Ok anklicken weiter kommen?
KompilierenMarkierenSeparieren
 $P+
 $H Windows.ph
Declare box1&, box2&,box3&,box4&,box5&,box6&,text1&,text2&,text3&,text4&,text5&,text6&,datname$,lesen%,name$
Declare relais1$,Relais2$,karte1%,n1%,n2%,Speicher%,ende%,schluss%,datum1$,zeit$
declare von$,bis$,text7&,text0&,Wähle$,cbox&,dlg%,end%,von%,bis%,text01&,n3$,x1%,x2%,xy%
declare exit&,e%,a$
declare edit&,vorgabe$
DEF GETSYSCOLOR(1) !USER32,GetSysColor
WINDOWSTYLE 31 47
WINDOWTITLE Apex Elektronik GmbH Grevenbroich Tel. 02181-24040
WINDOW SUB(DIV(%MAXX,2),DIV(740,2)),SUB(DIV(%MAXY,2),DIV(500,2))-400,150
SETTRUECOLOR 1
CLS GETSYSCOLOR(1)15
SETDIALOGFONT 1
exit& = CreateButton(%HWnd,Ok,150,50,100,35)
vorgabe$ =
edit& = CONTROL(Edit,vorgabe$,$54810020,150,20,100,25,%HWnd,0,%HInstance,$0200)
SetFocus(edit&)

whilenot e%

    WaitInput

    if GetFocus(exit&)

        e% = 1

    endif

wend

A$ = gettext$(edit&)

if a$=qwert

    destroywindow(edit&)
    destroywindow(exit&)
    boxaufbau

else

    end

endif

boxaufbau

proc lesen

    if fileexists(name$) =0

        speichern
        return

    endif

    Assign #1,name$
    reset #1
    input #1,datum1$
    input #1,zeit$
    input #1,relais1$
    input #1,karte1%
    input #1,n2%     0=licht aus
    input #1,von%
    input #1,bis%
    close #1

    if n2% = 1

        n3$=ein

    else

        N3$=aus

    endif

    n1%=relais1$
    von$=von%
    bis$=bis%
    x1%=von%-15 wichtig für die Anzeige in der Choicebox siehe Zeile 36 & 37
    x2%=bis%-5
    @sendmessage(Box1&,$14E,n1%,0,0 )            0,0 = erster eintrag, 1,0 = zweiter eintrag usw.
    @sendmessage(Box2&,$14E,n2%,1,0)
    @sendmessage(Box3&,$14E,x1%,0,0)
    @sendmessage(Box4&,$14E,x2%,0,0)
    settext text5&,Add$(Fahrzeug:  ,name$)
    settext text3&,add$(von: ,von$)
    settext text1&,add$(Tor: ,relais1$)
    settext text2&,add$(Licht : ,n3$)
    settext text4&,add$(bis: ,bis$)

    If n2%=1

        showwindow(text3&,1)
        showwindow(box3&,1)
        showwindow(text4&,1)
        showwindow(box4&,1)
        showwindow(text6&,1)
        showwindow(text7&,1)
        showwindow(speicher%,1)
        showwindow(schluss%,1)

    elseif n2%=0

        showwindow(text3&,0)
        showwindow(box3&,0)
        showwindow(text4&,0)
        showwindow(box4&,0)
        showwindow(text6&,0)
        showwindow(text7&,0)
        showwindow(speicher%,1)
        showwindow(schluss%,1)

    endif

    SETFOCUS(%HWND)

endproc

proc Boxaufbau

    DEF GETSYSCOLOR(1) !USER32,GetSysColor
    WINDOWSTYLE 31 47
    WINDOWTITLE Apex Elektronik GmbH Grevenbroich Tel. 02181-24040
    WINDOW SUB(DIV(%MAXX,2),DIV(700,2)),SUB(DIV(%MAXY,2),DIV(500,2))-700,400
    SETTRUECOLOR 1
    CLS GETSYSCOLOR(1)15
    SETDIALOGFONT 1
    CBox& = @Control(ComboBox,,$5421034E,270,70,100,200,%Hwnd,2000,%hinstance)
    End%=@createbutton(%Hwnd,Auswahl,280,116,80,20)
    Addfiles *.DAT
    MoveListToChoice(CBox&)
    @Sendmessage(CBox&,$14E,0,0)
    name$=@gettext$(cbox&)
    text0&=createtext(%Hwnd,Feuerwehr Grevenbroich,240,30,170,20)
    text1&=Createtext(%Hwnd,Tor:,200,253,50,20)
    showwindow(text1&,0)
    text2&=Createtext(%Hwnd,Licht:,360,253,70,20)
    showwindow(text2&,0)
    text5&=Createtext(%Hwnd,Fahrzeug,35,253,153,20)
    showwindow(text5&,0)
    text3&=Createtext(%Hwnd,von:,200,330,70,20)
    showwindow(text3&,0)
    text4&=Createtext(%Hwnd,bis:  ,360,330,50,20)
    showwindow(text4&,0)
    text6&=createtext(%Hwnd,Hallenbeleuchtung,35,330,130,20)
    showwindow(text6&,0)
    text7&=createtext(%Hwnd,einschalten,520,330,80,20)
    showwindow(text7&,0)
    box1&=Create(choicebox,%Hwnd,0,280,250,50,500)
    showwindow(box1&,0)
    box2&=Create(choicebox,%Hwnd,0,450,250,50,500)
    showwindow(box2&,0)
    box3&=Create(choicebox,%Hwnd,0,280,327,50,500)
    showwindow(box3&,0)
    box4&=Create(choicebox,%Hwnd,0,450,327,50,500)
    showwindow(box4&,0)
    Speicher%=@Create(DefButton,%Hwnd,Speichern und weiter,115,400,155,40)
    showwindow(speicher%,0)
    schluss%=@Create(DefButton,%Hwnd,Speichern und Ende,345,400,155,40)
    showwindow(schluss%,0)
    AddChoice(box1&,0)
    AddChoice(box1&,1) Tor
    AddChoice(box1&,2)
    AddChoice(box1&,3)
    AddChoice(box1&,4)
    AddChoice(box1&,5)
    AddChoice(box1&,6)
    AddChoice(box1&,7)
    AddChoice(box1&,8)
    AddChoice(box1&,9)
    AddChoice(box1&,10)
    AddChoice(box2&,aus)Licht aus
    AddChoice(box2&,ein)Licht ein
    AddChoice(box3&,15)  von
    AddChoice(box3&,16)
    AddChoice(box3&,17)
    AddChoice(box3&,18)
    AddChoice(box3&,19)
    AddChoice(box4&,5)
    AddChoice(box4&,6)  bis
    AddChoice(box4&,7)
    AddChoice(box4&,8)
    AddChoice(box4&,9)
    @sendmessage(Box1&,$14E,n1%,0,0 )            0,0 = erster eintrag, 1,0 = zweiter eintrag usw.
    @sendmessage(Box2&,$14E,n2%,0,0)
    @sendmessage(Box3&,$14E,von$,0,0)
    @sendmessage(Box4&,$14E,bis%,0,0)
    SETFOCUS(%HWND)

    WHILENOT ENDE%

        if %key = 255

        elseif getfocus(box1&)Relais1 Tor

            relais1$=gettext$(box1&)
            settext text1&,add$(Tor: ,relais1$)

        elseif GETFOCUS(box2&)Relais2 Licht

            relais2$=gettext$(box2&)
            settext text2&,add$(Licht : ,gettext$(box2&))

            If relais2$=ein

                showwindow(text3&,1)
                showwindow(box3&,1)
                showwindow(text4&,1)
                showwindow(box4&,1)
                showwindow(text6&,1)
                showwindow(text7&,1)

            elseif GETFOCUS(box2&)Relais2

                showwindow(text3&,0)
                showwindow(box3&,0)
                showwindow(text4&,0)
                showwindow(box4&,0)
                showwindow(text6&,0)
                showwindow(text7&,0)

            endif

        elseif GETFOCUS(box3&)Zeit1

            von$=gettext$(box3&)
            settext text3&,add$(von: ,gettext$(box3&))

        elseif getfocus(box4&)Zeit2

            bis$=gettext$(box4&)
            settext text4&,add$(bis: ,gettext$(box4&))

        elseif getfocus(end%)Fahrzeug

            name$=@gettext$(cbox&)
            lesen
            showwindow(box1&,1)
            showwindow(text1&,1)
            showwindow(box2&,1)
            showwindow(text2&,1)
            showwindow(text5&,1)

        elseif getfocus(speicher%)Speichern und weiter

            speichern

        elseif getfocus(schluss%)Speichern und Ende

            speichern
            ende%=1

        ENDIF

    EndWhile

endproc

close #1
end

Proc Speichern

    if relais2$=ein

        n2%=1

    elseif relais2$=aus

        n2%=0

    endif

    if relais1$<=7

        karte1%=1

    else

        karte1%=2

    endif

    if relais1$ =

        relais1$=0

    endif

    von%=von$
    bis%=bis$
    Assign #1,name$
    rewrite #1
    Print #1,date$(3)
    print #1,time$(0)
    print #1,relais1$
    print #1,karte1%
    print #1,n2%
    print #1,von%
    print #1,bis%
    close #1

endproc

 
Gruß Detlef Tussing
Windows XP, XProfan 10
09.05.2007  
 




Dieter
Zornow
Du kannst auch das Fenster in jeder Farbe wählen indem du z. B. CLS RGB(255,0,0) schreibst so kannst du
jede Farbnuance einstellen. Wenn du das Fenster zentrieren willst ist maxX und maxY schon richtig du hast
in deiner Formel
WINDOW SUB(DIV(%MAXX,2),DIV(740,2)),SUB(DIV(%MAXY,2),DIV(500,2))-660,500
einen Fehler
muss heißen
WINDOW SUB(DIV(%MAXX,2),DIV(740,2)),SUB(DIV(%MAXY,2),DIV(500,2))-740,500
den Wert 740 den du vorne dividierst muss natürlich auch dann hinten in der Größe angeben sonst kommt
das Fenster nicht in die Mitte, absolute Positionen gibst du einfach z.B mit WINDOW 10,10 - 740,500 an

Viele Grüße aus Bangkok

Dieter
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
09.05.2007  
 



@Hallo Detlef
KompilierenMarkierenSeparieren
DECLARE wBreit%,wHoch%
wBreit%=640 Breite beliebig einstellbar
wHoch%=480 Höhe beliebig einstellbar - Fenster ist immer in der Mitte des Bildschirmes
WINDOW ((%MaxX/2)-(wBreit%/2)),((%MaxY/2)-(wHoch%/2))-wBreit%,wHoch%
USEBRUSH 1,RGB(0,0,255) das wäre ein helles Blau
RECTANGLE 0,0 - wBreit%,wHoch%
WAITINPUT

Fenster kann mit zwei Massangaben immer zentriert angezeigt werden.
Mit USEBRUSH und RECTANGLE kannst Du jede Farbe für den Hintergrund einstellen.
GETSYSCOLOR ist auf 21 (glaube ich) Systemfarben festgelegt
 
09.05.2007  
 




Frank
Abbing
Hehe, CLS ist dem Horst wohl gerade entfallen...
 
09.05.2007  
 



@Frank
Wofür CLS ? - Das Fenster wird mit WINDOW x,y-x2,y1 erstellt

CLS erstellt immer ein Fenster oben links mit der Grösse 640X480 - Diese Grösse habe ich in meinem Code nur als Beispiel angegeben. Beide Werte können nach Gutdünken geändert werden. Ich erstelle sogar meine Dialogfenster mit diesem Code. Nur muss hier bei
KompilierenMarkierenSeparieren
DECLARE wBreit%,wHoch%,win1&
wBreit%=200
wHoch%=150
win1&=CREATE(Dialog,%HWND,, ((%MaxX/2)-(wBreit%/2)),((%MaxY/2)-(wHoch%/2)),wBreit%,wHoch%)

anstelle des Bindestriches natürlich ein Komma stehen. Gelle
 
09.05.2007  
 




Detlef
Tussing


Danke, habt mir sehr geholfen.

schaut bitte noch mal in meine letzten Anfrage rein ,habe sie Editiert währen Ihr schon die Antworten gegeben habt
 
Gruß Detlef Tussing
Windows XP, XProfan 10
09.05.2007  
 



@Detlef

Habe Deinen Text laufen lassen. In der Anlage siehst Du den Erfolg. Mit Klick auf OK bendet sich das Programm

18 kB
Hochgeladen:09.05.2007
Ladeanzahl33
Herunterladen
 
09.05.2007  
 




Detlef
Tussing
nicht nur mit klick auf den Button sondern auch mit Enter soll es beendet werden
 
Gruß Detlef Tussing
Windows XP, XProfan 10
09.05.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

1.465 Betrachtungen

Unbenanntvor 0 min.
H.Brill15.02.2015
Andre Rohland15.12.2012
LuZiF3R03.03.2012
Stephie14.08.2011

Themeninformationen



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