Forum | | | | 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. |
| | | | |
| | 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? |
| | | | |
| | 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: KompilierenMarkierenSeparierenDEF @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... |
| | | | |
| | 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 KompilierenMarkierenSeparierenStprogramme&=Control("STATIC","",$54001102,2,30,265,280,Tab&,0,%Hinstance,$0)
ersetzt in KompilierenMarkierenSeparierenwird es demzufolge funktionieren.
Salve, iF. |
| | | | |
| | | 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. |
| | | | |
| | 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. |
| | | | |
|
AntwortenThemenoptionen | 5.638 Betrachtungen |
ThemeninformationenDieses Thema hat 4 Teilnehmer: |