GroupBox
Moderator: Moderatoren
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
GroupBox
In einem Formular habe ich einige XBPStatic und XBPSle eingebaut, die ich der Optik wegen zusammenfassen möchte mit XBPSTATIC_TYPE_GROUPBOX. Das habe ich in der Reihenfolge Groupbox, Static, Sle eingebaut.
Problem: Groupbox und Sle werden korrekt angezeigt, aber die Static werden von der Groupbox verdeckt.
Normalerweise sollten ja die SLE und Static als Parent ja die Groupbox haben. Aber wenn ich das mache, werden die Static garnicht angezeigt. Wenn ich als Parent den zugrundeliegenden Dialog nehme dann werden die Static angezeigt, aber wie gesagt von der Groupbox verdeckt.
Weiß jemand, wo das Problem liegen kann?
Jan
Problem: Groupbox und Sle werden korrekt angezeigt, aber die Static werden von der Groupbox verdeckt.
Normalerweise sollten ja die SLE und Static als Parent ja die Groupbox haben. Aber wenn ich das mache, werden die Static garnicht angezeigt. Wenn ich als Parent den zugrundeliegenden Dialog nehme dann werden die Static angezeigt, aber wie gesagt von der Groupbox verdeckt.
Weiß jemand, wo das Problem liegen kann?
Jan
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Jan,
wenn du bei allen die drawingarea als Parent nimmst, mußt du nur darauf achten, dass beim Create folgende Reihenfolge eingehalten wird:
Groupbox:create()
FixedText:create()
XbpSLE:create()
Wenn du die Groupbox als Parent bei fixedText und xbpSle benutzt, müßte alles automatisch stimmen, gleiche Reihenfolge kann aber nicht schaden. [/b]
wenn du bei allen die drawingarea als Parent nimmst, mußt du nur darauf achten, dass beim Create folgende Reihenfolge eingehalten wird:
Groupbox:create()
FixedText:create()
XbpSLE:create()
Wenn du die Groupbox als Parent bei fixedText und xbpSle benutzt, müßte alles automatisch stimmen, gleiche Reihenfolge kann aber nicht schaden. [/b]
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: GroupBox
hi,
gruss by OHR
Jimmy
oXbp1:clipSiblings := .T. ???Jan hat geschrieben: Normalerweise sollten ja die SLE und Static als Parent ja die Groupbox haben. Aber wenn ich das mache, werden die Static garnicht angezeigt.
Code: Alles auswählen
drawingArea := oDlg:drawingArea
oXbp1 := XbpStatic():new( drawingArea, , {12,12}, {540,264} )
oXbp1:clipSiblings := .T.
oXbp1:type := XBPSTATIC_TYPE_GROUPBOX
oXbp1:create()
oXbp := XbpStatic():new( oXbp1, , {12,216}, {60,24} )
oXbp:caption := "~Artist:"
oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
oXbp:create()
oArtist := XbpSLE():new( oXbp1, , {84,216}, {132,24} ..... ) oArtist:bufferLength := 30
oArtist:tabStop := .T.
oArtist:dataLink := VAR2BLOCK(@mARTIST )
oArtist:create():setData()
AAdd ( aEditControls, oArtist )
Jimmy
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Moin,
Jimmy, es war der Punkt clipsiblings := .T. Damit funktioniert das perfekt. Ich hatte mir das schon mal in der Hilfe angesehen, aber genau andersherum verstanden, das also .F. der richtige Wert sei.
Aber eine Frage bleibt offen: Wenn ich die Static und Sle mit dem Parent Groupbox einsetze werden die nicht angezeigt! Nur wenn ich auf den drawingArea gehe. Muß ich das verstehen?
Jan
Jimmy, es war der Punkt clipsiblings := .T. Damit funktioniert das perfekt. Ich hatte mir das schon mal in der Hilfe angesehen, aber genau andersherum verstanden, das also .F. der richtige Wert sei.
Aber eine Frage bleibt offen: Wenn ich die Static und Sle mit dem Parent Groupbox einsetze werden die nicht angezeigt! Nur wenn ich auf den drawingArea gehe. Muß ich das verstehen?
Jan
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Jan,
wenn du die auf den Parent Groupbox setzt, sind es zu diesem Children ... hast du bei clipchildren was umgestellt ?
Wenn die Create Einstellung stimmt sollten die clip... Befehle in Standardeinstellung eigentlich funktionieren.
Achtung, der XbpFD verändert die create-Reihenfolge (TAB-Folge) dauernd.
wenn du die auf den Parent Groupbox setzt, sind es zu diesem Children ... hast du bei clipchildren was umgestellt ?
Wenn die Create Einstellung stimmt sollten die clip... Befehle in Standardeinstellung eigentlich funktionieren.
Achtung, der XbpFD verändert die create-Reihenfolge (TAB-Folge) dauernd.
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16508
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jan,
poste doch mal bitte ein wenig code von der groupbox und einigen darin enthaltenen Statics und Sles!
Bedenke bitte:
Erst das create von der groupbox und dann die creates der darin enthaltenen Statics und Sles!
Viele Grüße,
Martin
poste doch mal bitte ein wenig code von der groupbox und einigen darin enthaltenen Statics und Sles!
Bedenke bitte:
Erst das create von der groupbox und dann die creates der darin enthaltenen Statics und Sles!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Hubert: Was kann ich denn umstellen? Abgesehen davon arbeite ich niemals mit dem FD.
Martin: Die Reihenfolge stimmt schon. Das ist nicht der Punkt.
Ich hoffe, ich habe den Code richtig zusammengekürzt, da sind wesentlich mehr Felder drin. Aber 2 müssten wohl als Beispiel genügen. oTab1 ist übrigens der 1. von 5 XbpTabPages.
Jan
Martin: Die Reihenfolge stimmt schon. Das ist nicht der Punkt.
Code: Alles auswählen
oGroupBox := XbpStatic():new(oTab1, , {10, nDetailsstart - 20}, {1000,300})
oGroupBox:clipsiblings := .T.
oGroupBox:caption := "Details zu der aktuellen Person"
oGroupBox:Type := XBPSTATIC_TYPE_GROUPBOX
oGroupBox:create()
// Feldüberschriften
// Überschrift Start Größe Options
aStatics := {{"RIN:" , { 15,nDetailsStart }, {70,22}, XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT}, ;
{"Geschlecht:", {160,nDetailsStart }, {70,22}, XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT}, ;
}
FOR i := 1 TO LEN(aStatics)
oUeberschriften := XbpStatic():new(oTab1, , aStatics[i][2], aStatics[i][3])
oUeberschriften:caption := aStatics[i][1]
oUeberschriften:options := aStatics[i][4]
oUeberschriften:create()
NEXT
//Feldinhalte
// Start Größe Farbe Inhalt
aSLE := {{{ 85,nDetailsStart }, { 50,22}, {{XBP_PP_FGCLR, GRA_CLR_DARKBLUE}}, {|x| IIf(x==NIL, STR(genealog->rin), genealog->rin := x)} }, ;
{{230,nDetailsStart }, { 70,22}, {{XBP_PP_FGCLR, GRA_CLR_DARKBLUE}}, {|x| IIf(x==NIL, IIF(Genealog->geschlecht = "W", "weiblich", ;
IIF(genealog->geschlecht = "M", "männlich", ;
"unbekannt")), x := genealog->geschlecht)} }, ;
} }
FOR i := 1 TO LEN(aSLE)
oSLE := MySLE():New(oTab1,, aSLE[i][1], aSLE[i][2], aSLE[i][3])
oSLE:DataLink := aSLE[i][4]
oSLE:Create()
DbRegisterClient(oSLE)
NEXT
Jan
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
hi,
also erst einmal ein XbpDialog. davon nehmen wir die drawingArea
als Parent
auf der drawingArea erzeuge ich nun eine XbpStatic-Groupbox
die Groupbox oXbp1 als Parent erzeuge ich nun meinen "Text" als
XbpStatic
dito. Groupbox oXbp1 als Parent erzeuge ich nun meinen SLE
wenn die Koordinaten stimmen ( relative zur Groupbox* ! ) wird
"nichts übermalt" oder "nicht angezeigt".
(* die Box steht auf {12,12} das SLE auf {84,216}. absolut wäre es
{84+12,216+12} zum XbpDialog)
... oder hab ich was falsch verstanden ?
gruss by OHR
Jimmy
... das Problem kenne ich auch ...Jan hat geschrieben: Jimmy, es war der Punkt clipsiblings := .T. Damit funktioniert das perfekt. Ich hatte mir das schon mal in der Hilfe angesehen, aber genau andersherum verstanden, das also .F. der richtige Wert sei.
hm ... nochmal von Anfang an ... ich nehme mal mein Beispiel von obenAber eine Frage bleibt offen: Wenn ich die Static und Sle mit dem Parent Groupbox einsetze werden die nicht angezeigt! Nur wenn ich auf den drawingArea gehe. Muß ich das verstehen?
Code: Alles auswählen
oDlg := XbpDialog ....
drawingArea := oDlg:drawingArea
als Parent
Code: Alles auswählen
oXbp1 := XbpStatic():new( drawingArea, , {12,12}, {540,264} )
oXbp1:clipSiblings := .T.
oXbp1:type := XBPSTATIC_TYPE_GROUPBOX
oXbp1:create()
Code: Alles auswählen
oXbp := XbpStatic():new( oXbp1, , {12,216}, {60,24} )
oXbp:caption := "~Artist:"
oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
oXbp:create()
XbpStatic
Code: Alles auswählen
oArtist := XbpSLE():new( oXbp1, , {84,216}, {132,24} ..... ) oArtist:bufferLength := 30
oArtist:tabStop := .T.
oArtist:dataLink := VAR2BLOCK(@mARTIST )
oArtist:create():setData()
AAdd ( aEditControls, oArtist )
wenn die Koordinaten stimmen ( relative zur Groupbox* ! ) wird
"nichts übermalt" oder "nicht angezeigt".
(* die Box steht auf {12,12} das SLE auf {84,216}. absolut wäre es
{84+12,216+12} zum XbpDialog)
... oder hab ich was falsch verstanden ?
gruss by OHR
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
hi,
gruss by OHR
Jimmy
ok wenn du es so machen willst fehlt dir das "oSLE:group := XBP_WITHIN_GROUP" in der Schleife.Jan hat geschrieben:Code: Alles auswählen
FOR i := 1 TO LEN(aSLE) oSLE := MySLE():New(oTab1,, aSLE[i][1], aSLE[i][2], aSLE[i][3]) oSLE:DataLink := aSLE[i][4] oSLE:Create() DbRegisterClient(oSLE) NEXT
gruss by OHR
Jimmy
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Hallo Jimmy,
Und das Problem waren ja auch nicht die SLE, die haben immer funktioniert (allerdings habe ich das wegen des offensichtlichen funktionierens auch nie mit der Groupbox als Parent versucht). Bei den Static wiederum gibt es kein XBP_WITHIN_GROUP nicht.
Und die Frage war ja letztendlich , warum Static nicht angezeigt werden wenn ich als Patent die Groupbox nehme.
Jan
Das hatte ich auch versucht. Aber mir stellt sich die Fage, wozu das überhaupt gut ist.ok wenn du es so machen willst fehlt dir das "oSLE:group := XBP_WITHIN_GROUP" in der Schleife.
Und das Problem waren ja auch nicht die SLE, die haben immer funktioniert (allerdings habe ich das wegen des offensichtlichen funktionierens auch nie mit der Groupbox als Parent versucht). Bei den Static wiederum gibt es kein XBP_WITHIN_GROUP nicht.
Und die Frage war ja letztendlich , warum Static nicht angezeigt werden wenn ich als Patent die Groupbox nehme.
Jan
- Martin Altmann
- Foren-Administrator
- Beiträge: 16508
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jan,
in Deinem Code haben sowohl die Statics als auch die SLE die Tabpage als Parent, nicht die GroupBox
Viele Grüße,
Martin
in Deinem Code haben sowohl die Statics als auch die SLE die Tabpage als Parent, nicht die GroupBox
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Manfred
- Foren-Administrator
- Beiträge: 21186
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Jou,
wenn es das war, dann könnte ich mir eine Kerbe beißen. Das hatte ich nämlich auch erkannt. Aber ich denk, "halt mal die Klappe, bevor du Unfug erzählst!".
wenn es das war, dann könnte ich mir eine Kerbe beißen. Das hatte ich nämlich auch erkannt. Aber ich denk, "halt mal die Klappe, bevor du Unfug erzählst!".
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16508
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
ob es das war, werden wir noch sehen.
Aber ansonsten: Nur Mut!! Es wird hier einem schon nicht der Kopf abgerissen, wenn was falsches gesagt wird...
Viele Grüße,
Martin
ob es das war, werden wir noch sehen.
Aber ansonsten: Nur Mut!! Es wird hier einem schon nicht der Kopf abgerissen, wenn was falsches gesagt wird...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
hi,
die XbpStatic geht aber in deinem Beispiel noch auf oTAB1 ... es müsste
oGroupBox sein und mit oGroupBox:clipsiblings := .T. zusammen muss
es funktionieren.
gruss by OHR
Jimmy
sorry ich war irgendwie bei den SLE ... alsoJan hat geschrieben: Und die Frage war ja letztendlich , warum Static nicht angezeigt werden wenn ich als Patent die Groupbox nehme.
Code: Alles auswählen
FOR i := 1 TO LEN(aStatics)
oUeberschriften := XbpStatic():new(oTab1, , aStatics[i][2], aStatics[i][3])
oUeberschriften:caption := aStatics[i][1]
oUeberschriften:options := aStatics[i][4]
oUeberschriften:create()
NEXT
oGroupBox sein und mit oGroupBox:clipsiblings := .T. zusammen muss
es funktionieren.
gruss by OHR
Jimmy
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Jimmy,
Jan
Genau das ist der Punkt: Eben nicht. Ich habe ja auf Deinen Rat hin die clipsiblings := .T. eingebaut. Und es funktioniert auch. Aber nur mit Parent auf oTab1, nicht auf oGroupbox. Und genau das ist es, was mich verwirrt.Jimmy das Ohr hat geschrieben:die XbpStatic geht aber in deinem Beispiel noch auf oTAB1 ... es müsste
oGroupBox sein und mit oGroupBox:clipsiblings := .T. zusammen muss
es funktionieren.
Jan
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Jimmy,Jan hat geschrieben:Jimmy,
Ich habe ja auf Deinen Rat hin die clipsiblings := .T. eingebaut. Und es funktioniert auch. Aber nur mit Parent auf oTab1, nicht auf oGroupbox.
wenn die Groupbox und die Xbp den Parent der Tabpage haben, dann sind es siblings - d.h. Controls mit gleichem Parent. Somit sparen diese sich gegenseitig aus. Wird die Groupbox aber zum Parent, dann ist die Einstellung clipsiblings für die groupbox im Verhältnis zu den xbp völlig bedeutungslos, denn nun sind die Xbp Children ...
ClipSiblings -> Verhalten gegenüber allem mit gleichem Parent.
ClipChildren -> Verhalten gegenüber allen Controls mit diesem Control als Parent
ClipParent -> Verhalten gegenüber dem Parent
Vorsicht beim Ändern von den Standardeinstellungen, wenn die Create Reihenfolge stimmt, sind die Standardeinstellungen des XppFD meist richtig !
Gruß
Hubert
Hubert
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
hi,
ich hab mir mal den code geschnappt und komplett aufgebaut. obwohl
er keinen Compiler Fehler mehr meldet stürzt er in dieser Zeile ab
wo ich oTab1 durch oGroupbox ersetzt habe.
Man sehe sich die aStatics noch mal genau an ... da ist was zuviel !
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ja das letzte "Komma" vor "}" ist zuviel !
nun funktioniert die Tabpage (hab mal 2 gemacht) so wie die soll
hier nochmal das ganze :
gruss by OHR
Jimmy
Jan hat geschrieben: aStatics := {{"RIN:" , { 15,nDetailsStart }, {70,22}, XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT}, ;
{"Geschlecht:", {160,nDetailsStart }, {70,22}, XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT}, ;
}
FOR i := 1 TO LEN(aStatics)
oUeberschriften := XbpStatic():new(oGroupbox, , aStatics[2], ;
aStatics[3])
ich hab mir mal den code geschnappt und komplett aufgebaut. obwohl
er keinen Compiler Fehler mehr meldet stürzt er in dieser Zeile ab
wo ich oTab1 durch oGroupbox ersetzt habe.
Man sehe sich die aStatics noch mal genau an ... da ist was zuviel !
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ja das letzte "Komma" vor "}" ist zuviel !
nun funktioniert die Tabpage (hab mal 2 gemacht) so wie die soll
hier nochmal das ganze :
Code: Alles auswählen
#include "Gra.ch"
#include "Xbp.ch"
#include "Appevent.ch"
#include "Font.ch"
PROCEDURE APPSYS
RETURN
PROCEDURE Main
LOCAL nEvent, mp1, mp2
LOCAL oDlg, oXbp, drawingArea, aEditControls := {}
LOCAL oXbp1, oXbp2, oXbp3, oXbp4
LOCAL oGroupBox , aStatics, oUeberschriften, i, oSLE, aSLE,cSLE
LOCAL nDetailsStart := 10
IF ! FILE("WM9DBF.DBF")
CRE_DBF()
ENDIF
USE WM9DBF.DBF NEW EXCLUSIVE
oDlg := XbpDialog():new( AppDesktop(),,{94,47}, {600,400})
oDlg:taskList := .T.
oDlg:title := "TabTest"
oDlg:create()
drawingArea := oDlg:drawingArea
drawingArea:setFontCompoundName( "8.Arial" )
oXbp1 := XbpTabPage():new( drawingArea,,{12,24},{564,336},;
{ { XBP_PP_BGCLR, XBPSYSCLR_BUTTONMIDDLE } } )
oXbp1:caption := "Main"
oXbp1:minimized := .F.
oXbp1:tabStop := .T.
oXbp1:create()
oXbp1:TabActivate := {|| oXbp3:minimize(), oXbp1:maximize() }
oGroupBox := XbpStatic():new( oXbp1, , {24,24}, {324,276} )
oGroupBox:caption := "Details zu der aktuellen Person"
oGroupBox:clipsiblings := .T.
oGroupBox:Type := XBPSTATIC_TYPE_GROUPBOX
oGroupBox:create()
// Feldüberschriften
// Überschrift Start Größe Options
aStatics := {{"RIN:" , { 15,nDetailsStart}, {70,22} ,;
XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT} ,;
{"Geschlecht:", {160,nDetailsStart}, {70,22} ,;
XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT} }
FOR i := 1 TO LEN(aStatics)
oUeberschriften := XbpStatic():new( oGroupBox ,;
,;
aStatics[i][2] ,;
aStatics[i][3] )
oUeberschriften:caption := aStatics[i][1]
oUeberschriften:options := aStatics[i][4]
oUeberschriften:create()
NEXT
//Feldinhalte
// Start Größe Farbe Inhalt
aSLE := { {{ 85,nDetailsStart }, { 50,22},;
{{XBP_PP_FGCLR, GRA_CLR_DARKBLUE}},;
{|x|IIf(x==NIL,Trim( WM9DBF->TITEL ),WM9DBF->TITEL := x)} },;
{{230,nDetailsStart }, { 70,22},;
{{XBP_PP_FGCLR, GRA_CLR_DARKBLUE}},;
{|x|IIf(x==NIL,Trim( WM9DBF->ARTIST),WM9DBF->ARTIST:= x)} }}
FOR i := 1 TO LEN(aSLE)
oSLE := XbpSLE():New( oGroupBox,, aSLE[i][1], aSLE[i][2], aSLE[i][3])
oSLE:DataLink := aSLE[i][4]
oSLE:Create():setData()
* DbRegisterClient(oSLE)
AAdd ( aEditControls, oSLE )
NEXT
*****************************
*
* 2st Tabpage
*
*****************************
oXbp3 := XbpTabPage():new( drawingArea,,{12,24},{564,336},;
{ { XBP_PP_BGCLR, XBPSYSCLR_BUTTONMIDDLE } } )
oXbp3:caption := "Detail"
oXbp3:minimized := .F.
oXbp3:preOffset := 20
oXbp3:postOffset := 60
oXbp3:tabStop := .T.
oXbp3:create()
oXbp3:TabActivate := {|| oXbp1:minimize(), oXbp3:maximize() }
oXbp4 := XbpStatic():new( oXbp3, , {48,48}, {444,240} )
oXbp4:caption := "mehr Info"
oXbp4:clipSiblings := .T.
oXbp4:type := XBPSTATIC_TYPE_GROUPBOX
oXbp4:create()
oXbp := XbpStatic():new( oXbp4, , {36,192}, {144,24} )
oXbp:caption := "Duration:"
oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
oXbp:create()
oXbp := XbpStatic():new( oXbp4, , {36,156}, {144,24} )
oXbp:caption := "Filesize:"
oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
oXbp:create()
oXbp := XbpStatic():new( oXbp4, , {36,120}, {144,24} )
oXbp:caption := "Filetype:"
oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
oXbp:create()
oXbp := XbpStatic():new( oXbp4, , {36,84}, {144,24} )
oXbp:caption := "Bitrate:"
oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
oXbp:create()
oXbp := XbpStatic():new( oXbp4, , {36,48}, {144,24} )
oXbp:caption := "Rateting:"
oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
oXbp:create()
oXbp := XbpStatic():new( oXbp4, , {36,12}, {144,24} )
oXbp:caption := "Playcount:"
oXbp:options := XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT
oXbp:create()
oXbp := XbpSLE():new( oXbp4, , {216,192}, {180,24},;
{ { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oXbp:bufferLength := 14
oXbp:tabStop := .T.
oXbp:dataLink := {|x| IIf( PCOUNT()==0,;
Transform( WM9DBF->DURATION, '@N' ),;
WM9DBF->DURATION := Val(x) ) }
oXbp:create():setData()
AAdd ( aEditControls, oXbp )
oXbp := XbpSLE():new( oXbp4, , {216,156}, {180,24},;
{ { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oXbp:bufferLength := 12
oXbp:tabStop := .T.
oXbp:dataLink := {|x| IIf( PCOUNT()==0,;
Transform( WM9DBF->FILESIZE, '@N' ),;
WM9DBF->FILESIZE := Val(x) ) }
oXbp:create():setData()
AAdd ( aEditControls, oXbp )
oXbp := XbpSLE():new( oXbp4, , {216,120}, {108,24},;
{ { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oXbp:bufferLength := 4
oXbp:tabStop := .T.
oXbp:dataLink := {|x| IIf( PCOUNT()==0,;
Trim( WM9DBF->FILETYPE ),;
WM9DBF->FILETYPE := x ) }
oXbp:create():setData()
AAdd ( aEditControls, oXbp )
oXbp := XbpSLE():new( oXbp4, , {216,84}, {108,24},;
{ { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oXbp:bufferLength := 7
oXbp:tabStop := .T.
oXbp:dataLink := {|x| IIf( PCOUNT()==0,;
Transform( WM9DBF->BITRATE, '@N' ),;
WM9DBF->BITRATE := Val(x) ) }
oXbp:create():setData()
AAdd ( aEditControls, oXbp )
oXbp := XbpSLE():new( oXbp4, , {216,48}, {108,24},;
{ { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oXbp:bufferLength := 7
oXbp:tabStop := .T.
oXbp:dataLink := {|x| IIf( PCOUNT()==0,;
Transform( WM9DBF->RATETING, '@N' ),;
WM9DBF->RATETING := Val(x) ) }
oXbp:create():setData()
AAdd ( aEditControls, oXbp )
oXbp := XbpSLE():new( oXbp4, , {216,12}, {108,24},;
{ { XBP_PP_BGCLR, XBPSYSCLR_ENTRYFIELD } } )
oXbp:bufferLength := 7
oXbp:tabStop := .T.
oXbp:dataLink := {|x| IIf( PCOUNT()==0,;
Transform( WM9DBF->PLAYCOUNT, '@N' ),;
WM9DBF->PLAYCOUNT := Val(x) ) }
oXbp:create():setData()
AAdd ( aEditControls, oXbp )
oXbp3:minimize()
oXbp1:maximize()
oDlg:show()
nEvent := xbe_None
DO WHILE nEvent <> xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
PROCEDURE CRE_DBF
Local aStruct := { ;
{ "W9MARK" ,"C" , 1, 0 } ,;
{ "W9VIDEO" ,"C" , 77, 0 } ,;
{ "W9FULLPATH" ,"C" , 240, 0 } ,;
{ "W9DATE" ,"D" , 8, 0 } ,;
{ "W9RATE" ,"N" , 1, 0 } ,;
{ "W9MEDTYP" ,"C" , 1, 0 } ,;
{ "TITEL" ,"C" , 30, 0 } ,;
{ "ARTIST" ,"C" , 30, 0 } ,;
{ "ALBUM" ,"C" , 30, 0 } ,;
{ "JAHR" ,"C" , 4, 0 } ,;
{ "KOMMENTAR" ,"C" , 30, 0 } ,;
{ "TRACKNO" ,"N" , 2, 0 } ,;
{ "GENRE" ,"C" , 20, 0 } ,;
{ "DURATION" ,"N" , 14, 3 } ,;
{ "FILESIZE" ,"N" , 12, 0 } ,;
{ "FILETYPE" ,"C" , 4, 0 } ,;
{ "BITRATE" ,"N" , 7, 0 } ,;
{ "RATETING" ,"N" , 7, 0 } ,;
{ "PLAYCOUNT" ,"N" , 7, 0 } }
DbCreate( "WM9DBF.DBF", aStruct)
USE WM9DBF.DBF
APPEND BLANK
REPLACE TITEL WITH "TESTI"
REPLACE ARTIST WITH "TESTMANN"
REPLACE ALBUM WITH "TESTALBUM"
REPLACE JAHR WITH "2006"
REPLACE KOMMENTAR WITH "MEIN TEST"
REPLACE TRACKNO WITH 1
REPLACE GENRE WITH "MY GENRE"
REPLACE DURATION WITH 100
REPLACE FILESIZE WITH 1000
REPLACE FILETYPE WITH "MP3"
REPLACE BITRATE WITH 192
REPLACE RATETING WITH 100
REPLACE PLAYCOUNT WITH 100
CLOSE
RETURN
*
* eof
*
gruss by OHR
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16508
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Jan,
da Du Dein Beispiel ja für uns "zusammengestoppelt" hast, eine kurze Frage von mir:
Du hast schon darauf geachtet, dass:
Viele Grüße,
Martin
da Du Dein Beispiel ja für uns "zusammengestoppelt" hast, eine kurze Frage von mir:
Du hast schon darauf geachtet, dass:
- der Parent der Groupbox die TabPage ist
- der Parent der restlichen Elemente die GroupBox ist
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
@ Jimmy: Das mit dem Komma hatte ich befürchtet, allerdings hatte ich mehr an eine Klammer zu viel gedacht Das kommt davon, wenn man einen langen Code zurechkürzt und der neue Editor (eben der Forumseditor) die Zeilen einfach umbricht, was dann zu Lasten der Übersichtlichkeit geht. Dein Codebeispiel schaue ich mir heute Abend mal an, vorher komme ich da leider nicht zu.
@ Martin: Ja, mir ist durchaus bewußt, daß ich das laut Dokumentation falsch mache. Aber wie bereits mehrfach gesagt: Baue ich bei den Static die Groupbox als Parent ein, werden die nicht angezeigt. Also habe ich die auf die Tab-Page gesetzt. Denn das Ergebnis ist dann einwandfrei.
@ Hubert: Ja, genau diese Reihenfolge habe ich. Von Anfang an schon. Da habe ich nichts dran geändert.
Jan
@ Martin: Ja, mir ist durchaus bewußt, daß ich das laut Dokumentation falsch mache. Aber wie bereits mehrfach gesagt: Baue ich bei den Static die Groupbox als Parent ein, werden die nicht angezeigt. Also habe ich die auf die Tab-Page gesetzt. Denn das Ergebnis ist dann einwandfrei.
@ Hubert: Ja, genau diese Reihenfolge habe ich. Von Anfang an schon. Da habe ich nichts dran geändert.
Jan