Deutsch
Forum

Button auf einem Static, nicht erreichbar?

 

Torsten
Rümker
Hallo, mein nächstes Static Problem.

Situation: TabControl mit 2 Reitern, auf jedem Reiter ein Static, auf jedes Static die jeweiligen Elemente

Auf dem 2ten Static (=2ter Reiter Tabcontrol)
Ich habe auf einem Static zwei Button erzeugt, eine Abfrage über GetFocus erbringt aber kein Ergebnis, außer der Tab wird gewechselt, dann wird der zuletz angeklickte Button bei jedem Tabwechsel aktiviert.

Hat irgendjemand einen Vorschlag wie ich das umgehen kann?

MfG
Torsten
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
05.10.2005  
 



Leider fehlt Deiner Signatur die Angabe Deiner XProfanversion und Deines Betriebssystemes.

Probiere mal clicked  bzw. sysvar_menuitem .

Salve.
 
05.10.2005  
 




Torsten
Rümker
[quote:3b1706cc93=iF]Leider fehlt Deiner Signatur die Angabe Deiner XProfanversion und Deines Betriebssystemes.

Probiere mal clicked  bzw. sysvar_menuitem .[/quote:3b1706cc93]
Ist ab sofort geändert (Signatur)

Clicked habe ich da XProfan 8 noch nicht zur Verfügung, aber wie das ganze über MenuItem zu lösen ist werde ich mir mal anschauen.
Danke für den Tip.

MfG
Torsten
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
05.10.2005  
 



Hallo IF...

Kann beides nicht gehen.

@Torste: Kleinen Quelltext?
 
05.10.2005  
 




Torsten
Rümker
Ich habe versucht die Abfrage über den von Andreas Hötker vorgeschlagenen weg zu realisieren

[quote:2033f67ada]
Schreibe ganz an den Anfang deines Programmes folgende Zeilen:

DEF @GetDlgCtrlID(1) !USER32,GetDlgCtrlID %MENUITEM von einem Handle ermitteln
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM %MENUITEM vergleichen

Ersetze dann jedes GETFOCUS durch

@ButtonClicked(Handle_des_Buttons_&)
[/quote:2033f67ada]
Aber das funktioniert auch nicht.

jetzt wird auf ein Drücken der Buttons gar nicht mehr reagiert.

Ich glaube langsam das mein Computer mich ärgern möchte.

Naja, hat noch jemand einen Vorschlag?
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
05.10.2005  
 




Torsten
Rümker
So sieht der komplette Quellcode des Dialoges im moment aus:
KompilierenMarkierenSeparieren
DEF @GetDlgCtrlID(1) !"USER32","GetDlgCtrlID" "%MENUITEM" von einem Handle ermitteln
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM %MENUITEM vergleichen

PROC Einstellungen

    DECLARE DLG&, DIALOGENDE%
    DECLARE icongroesse&
    DECLARE AusZeit_1&
    DECLARE AusZeit_2&
    DECLARE xpdown&
    DECLARE pwabfrage&
    DECLARE AutoUpdate&
    DECLARE desktoplink&
    DECLARE Startmenulink&
    DECLARE autostartlink&
    DECLARE speichern&
    DECLARE EinstEnde&
    Declare stEinstellungen&, stProgramme&
    DECLARE Tab&
    DECLARE PName&
    DECLARE PDateiname&
    DECLARE PDateinameSuche&
    DECLARE Parameter&
    DECLARE pwuebergabe&
    DECLARE vollbild&
    DECLARE iconnummer&
    DECLARE zurueck&
    DECLARE weiter&
    DECLARE Programmnummer&

    PROC ESpeichern

        GETMESSAGE
        WriteIni INIDateiname$,"init","Auszeit1"= @Left$ (@GetText$(AusZeit_1&),5)         AusZeit 1 in Config eintragen
        let aus1$ =@Left$ (@GetText$(AusZeit_1&),5)
        WriteIni INIDateiname$,"init","Auszeit2"= @Left$ (@GetText$(AusZeit_2&),5)         AusZeit 2 in Config eintragen
        let aus2$ =@Left$ (@GetText$(AusZeit_2&),5)

        If @GetCheck(xpdown&) = 1                                                          Windows XP beenden in Config eintragen

            WriteIni INIDateiname$,"init","xpdown"= "ja"
            Let xpdown$="ja"

        Else

            WriteIni INIDateiname$,"init","xpdown"= "nein"
            Let xpdown$="nein"

        EndIf

        WriteIni INIDateiname$,"init","Buttongroesse"= @GetText$(icongroesse&)             Buttongroesse in Config eintragen

        If @GetCheck(pwabfrage&) = 1                                                       Passwortabfrage in Config eintragen

            WriteIni INIDateiname$,"init","pwabfrage"= "ja"

        Else

            WriteIni INIDateiname$,"init","pwabfrage"= "nein"

        EndIf

        If @GetCheck(AutoUpdate&) = 1                                                      Autoupdate in Config eintragen

            WriteIni INIDateiname$,"init","AutoUpdate"= "ja"

        Else

            WriteIni INIDateiname$,"init","AutoUpdate"= "nein"

        EndIf

        If @GetCheck (desktoplink&) = 1                                                    DesktopLink in Config eintragen

            WriteIni INIDateiname$,"setup","desktoplink"= "ja"

        Else

            WriteIni INIDateiname$,"setup","desktoplink"= "nein"

        EndIf

        If @GetCheck (Startmenulink&) = 1                                                  Startmenulink in Config eintragen

            WriteIni INIDateiname$,"setup", "Startmenulink" = "ja"

        Else

            WriteIni INIDateiname$,"setup", "Startmenulink" = "nein"

        EndIf

        If @GetCheck (autostartlink&) = 1                                                  Autostart in Config eintragen

            WriteIni INIDateiname$,"setup", "Autostart" = "ja"

        Else

            WriteIni INIDateiname$,"setup", "Autostart" = "nein"

        EndIf

        IconsAnlegen

    ENDPROC

    WINDOWSTYLE 31
    DLG&=CREATE("DIALOG",%HWND,"SoftStart Einstellungen",SUB(DIV(%MAXX,2),DIV(270,2)),SUB(DIV(%MAXY,2),DIV(360,2)),270,360)
    USEFONT "MS Sans Serif",13,0,0,0,0
    SETDIALOGFONT 1
    TAB& =@CREATE("TABCTRL",DLG&,"Einstellungen",0001,0001,0269,0290)
    @InsertTab(TAB&,1,"Programme")
    Tab Einstellungen mit Elementen versehen
    stEinstellungen&=Control("STATIC","",$54001102,2,30,265,280,Tab&,0,%Hinstance,$0)
    @CREATE("TEXT",stEinstellungen&,"Icongröße:",0010,0010,0070,0015)
    ICONGROESSE& = CREATE("SPINEDIT",stEinstellungen&,"0;15;40",0090,0010,0060,0018)
    Create("Tooltip",stEinstellungen&,icongroesse&,"Trage hier die Größe der Icons ein")
    AusZeit_1& =@CREATE("TIMEEDIT",stEinstellungen&,@ReadIni$ (INIDateiname$, "init", "Auszeit1"),0090,0040,0060,0018)
    Create("Tooltip",stEinstellungen&,AusZeit_1&,"Trage hier die Programmendezeit 1 ein")
    AusZeit_2& =@CREATE("TIMEEDIT",stEinstellungen&,@ReadIni$ (INIDateiname$, "init", "Auszeit2"),0090,0070,0060,0018)
    Create("Tooltip",stEinstellungen&,AusZeit_2&,"Trage hier die Programmendezeit 2 ein")
    @CREATE("TEXT",stEinstellungen&,"AusZeit 1:",0010,0040,0070,0015)
    @CREATE("TEXT",stEinstellungen&,"AusZeit 2:",0010,0070,0070,0015)
    xpdown& =@CREATE("CHECKBOX",stEinstellungen&,"WinXP beenden",0157,0070,0100,0020)
    pwabfrage& =@CREATE("CHECKBOX",stEinstellungen&,"Passwortabfrage beim Programmstart",0010,0100,0200,0020)
    AutoUpdate& =@CREATE("CHECKBOX",stEinstellungen&,"AutoUpdate per FTP",0010,0130,0150,0020)
    desktoplink& =@CREATE("CHECKBOX",stEinstellungen&,"Desktoplink erzeugen",0010,0160,0150,0020)
    Startmenulink& =@CREATE("CHECKBOX",stEinstellungen&,"Startmenulink erzeugen",0010,0190,0150,0020)
    autostartlink& =@CREATE("CHECKBOX",stEinstellungen&,"AutoStartlink erzeugen",0010,0220,0150,0020)
    settext Icongroesse&, @ReadIni$ (INIDateiname$, "init", "Buttongroesse")
    Case @Equ$ (@ReadIni$ (INIDateiname$, "init", "xpdown"),"ja") : SetCheck xpdown&,1
    Case @Equ$ (@ReadIni$ (INIDateiname$, "init", "pwabfrage"),"ja") : SetCheck pwabfrage&,1
    Case @Equ$ (@ReadIni$ (INIDateiname$, "init", "AutoUpdate"),"ja") : SetCheck Autoupdate&,1
    Case @Equ$ (@ReadIni$ (INIDateiname$, "setup", "desktoplink"),"ja") : SetCheck desktoplink&,1
    Case @Equ$ (@ReadIni$ (INIDateiname$, "setup", "Startmenulink"),"ja") : SetCheck startmenulink&,1
    Case @Equ$ (@ReadIni$ (INIDateiname$, "setup", "Autostart"),"ja") : SetCheck autostartlink&,1
    Tab Programme mit Elementen versehen
    stProgramme&=Control("STATIC","",$54001102,2,30,265,280,Tab&,0,%Hinstance,$0)
    @CREATE("TEXT",stProgramme&,"Programmname:",0010,0020,0080,0015)
    @CREATE("TEXT",stProgramme&,"Dateiname:",0010,0070,0080,0015)
    @CREATE("TEXT",stProgramme&,"Parameter:",0010,0120,0080,0015)
    PName& =@CREATE("EDIT",stProgramme&,"",0010,0040,0200,0020)
    PDateiname& =@CREATE("EDIT",stProgramme&,"",0010,0090,0200,0020)
    PDateinameSuche& =@CREATE("BUTTON",stProgramme&,". . .",0222,0090,0030,0020)
    Parameter& =@CREATE("EDIT",stProgramme&,"",0010,0140,0200,0020)
    pwuebergabe& =@CREATE("CHECKBOX",stProgramme&,"Passwortübergabe",0010,0170,0120,0020)
    vollbild& =@CREATE("CHECKBOX",stProgramme&,"Vollbild",0140,0170,0060,0020)
    ICONNUMMER& = CREATE("SPINEDIT",stProgramme&,"1;1;100",0010,0205,0070,0020)
    zurueck& =@CREATE("BUTTON",stProgramme&,"<<",0010,0235,0070,0020)
    weiter& =@CREATE("BUTTON",stProgramme&,">>",0100,0235,0070,0020)
    Programm 1 Einstellungen laden
    SetText PName&, @ReadINI$(INIDateiname$,"Programm1","Name")
    SetText PDateiname&, @ReadINI$(INIDateiname$,"Programm1","Aufruf")
    SetText Parameter&, @ReadINI$(INIDateiname$,"Programm1","parameter")
    SetText Iconnummer&, @ReadINI$(INIDateiname$,"Programm1","icon")
    Case @Equ$(@ReadINI$(INIDateiname$,"Programm1","passwort"),"ja"):SetCheck pwuebergabe&,1
    Case @Equ$(@ReadINI$(INIDateiname$,"Programm1","vollbild"),"ja"):SetCheck vollbild&,1
    Let Programmnummer& = 1
    Showwindow(stEinstellungen&,1)
    Showwindow(stProgramme&,0)
    speichern& =@CREATE("BUTTON",DLG&,"Speichern",0010,0300,0070,0030)
    EinstEnde& =@CREATE("BUTTON",DLG&,"Ende",0100,0300,0070,0030)
    SETFOCUS(DLG&)
    LET DIALOGENDE%=0

    WHILENOT DIALOGENDE%

        WAITINPUT

        If @EQU(%KEY,2)

            LET DIALOGENDE%= 1

        ELSEIF Tabchanged(Tab&)

            If Getactivetab(Tab&) = 0

                Showwindow(stEinstellungen&,1)
                Showwindow(stProgramme&,0)

            Elseif Getactivetab(Tab&) = 1

                Showwindow(stEinstellungen&,0)
                Showwindow(stProgramme&,1)

            Endif

        ELSEIF @ButtonClicked(zurueck&)

            MessageBox("zurück","zurück",0)
            CaseNot Programmnummer& = 1 : DEC Programmnummer&

        ELSEIF @ButtonClicked(weiter&)

            MessageBox("weiter","weiter",0)
            CaseNot Programmnummer& = 20 : INC Programmnummer&
            ProgrammDatenladen Programmnummer&

        ELSEIF GETFOCUS(PDateinameSuche&) BUTTON

        ELSEIF @GetFocus(speichern&) BUTTON

            ESpeichern

        ELSEIF @GetFocus(EinstEnde&) BUTTON

            LET DIALOGENDE%=1

        ENDIF

    WEND

    @DESTROYWINDOW(DLG&)

ENDPROC

Declare iniDateiname$, aus1$, aus2$, xpdown$
let iniDateiname$ = "einstellungen.ini"
cls
einstellungen

Hilft das Vielleicht?

Auf dem Reiter Programme die Beiden Buttons die mit >> und << beschriftet sind, sind die nicht
funktionierenden, eigentlich sollte eine MsgBox erscheinen.

und hier die datzugehörige einstellungen.ini
KompilierenMarkierenSeparieren
Beide Dateien in ein Verzeichnis dann sollte es soweit lauffähig sein.
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
05.10.2005  
 



Bitte lauffähigen Quelltext - habe zur Zeit wenig Zeit...
 
05.10.2005  
 




Torsten
Rümker
Habe obigen Quelltext angepasst, hoffe das hilft

MfG
Torsten
 
Ich lerne, ob ich will oder nicht!
Betriebssystem:
- Ubuntu 15.x
- Windows (diverse)
XProfan Version: X2
05.10.2005  
 



So - hab Dein Prog offen.

Als erstes fällt mir auf das Du die Höhe der Titelleiste nicht beachtest - das solltest Du unbedingt nachholen.

Das Problem ist das in Deinem Fall Waitinput nicht verlassen wird.

Wenn Du
KompilierenMarkierenSeparieren
Stprogramme&=Control("STATIC","",$54001102,2,30,265,280,Tab&,0,%Hinstance,$0)
ersetzt in
KompilierenMarkierenSeparieren
windowstyle 80
Stprogramme&=createwindow(tab&,"tets",2,30,265,280)
external("user32","SetParent",Stprogramme&,tab&)
wird es demzufolge funktionieren.

Salve, iF.

6 kB
Kurzbeschreibung: Warum Titelzeilenhöhe wichtig ist...
Hochgeladen:05.10.2005
Ladeanzahl443
Herunterladen
 
05.10.2005  
 



Nachtrag: Ich habe unter Codesnippets wohl eine Prozedur gepostet welche die innere Größe eines Control festsetzt. Das ists wohl was Dir hier fehlt - denn Du setzt die Äußere.

Salve.
 
05.10.2005  
 




Detlef
Jagolski
Das sollte gehen.

Steinstellungen&=Control(DIALOG,,$54000000,4,25,265,280,Tab&,0,%Hinstance,$0)
Stprogramme&=Control(DIALOG,,$54000000,4,25,265,280,Tab&,0,%Hinstance,$0)

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



Komme gerade aus der Nachtschicht und habs mir auch mal angesehen - DIALOG statt STATIC wäre auch mein Vorschlag.
 
06.10.2005  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

5.633 Betrachtungen

Unbenanntvor 0 min.
Peter Max Müller31.10.2017
E.T.31.03.2013
Frank Vorholzer26.01.2012
Georg Hovenbitzer06.12.2011
Mehr...

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