DCTABPAGE positionieren

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

DCTABPAGE positionieren

Beitrag von Manfred »

Hi,

bei mehreren TabPages werden diese über RELATIVE positioniert. Geht das auch irgendwie anders, ohne feste Koordinaten eingeben zu müssen? Bei den anderen Parts geht das ja z.B. über DCGUI_ROW, DCGUI_COL usw. Ich möchte die Möglichkeit haben TabPages mittendrin zu deaktivieren im Quellcode, wenn sie nicht benötigt werden. Da ich aber bei Relative den Vorgänger angeben muß, wäre das zusätzliche Tipparbeit den jedesmal zu ändern, wenn der nicht eingebunden wäre.
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!!
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: DCTABPAGE positionieren

Beitrag von Koverhage »

Hallo Manfred,

habe es noch nicht probiert, aber wenn HIDE = .t., müsste es doch automatisch gehen.
Gruß
Klaus
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCTABPAGE positionieren

Beitrag von Manfred »

Hi Klaus,

Du warst ne Sekunde früher als ich. Das mit dem Hide habe ich gerade probiert. Hat den Nachteil, dass dann eine Lücke entsteht.
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!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9362
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCTABPAGE positionieren

Beitrag von Tom »

Damit keine Lücke entsteht, musst Du Pre-/Postoffset "manuell" setzen (bzw. berechnen). Eigentlich "wissen" Tabpages nicht voneinander, sie reagieren nur mit einer Minimierung der "Kollegen", wenn eine Tabpage den Focus bekommt. Schau Dir einfach mal das Beispiel in der Beschreibung der XbpTabpage-Klasse an.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCTABPAGE positionieren

Beitrag von Manfred »

Hi Tom,

das mit dem Post/Preoffset habe ich schon mal gelesen, aber irgendwie nicht verstanden.
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!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9362
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCTABPAGE positionieren

Beitrag von Tom »

Hallo, Manfred.

Pre- und Postoffset bestimmen Position und Größe der Tab-Lasche, also des Bereichs, in dem sich die Caption befindet. Es sind Prozentwerte bezogen auf die Breite der Tab. Preoffset auf 10 bedeutet, dass eine Tab, die 100 Pixel breit ist, ihre Lasche 10 Pixel vom linken Rand entfernt zeigt. Bei einer Breite von 400 Pixeln wären es 40.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCTABPAGE positionieren

Beitrag von Manfred »

Hm,

ich habe das gerade mal probiert. Muß das jetzt bei jedem Tab eingegeben werden? Ich verstehe die Rechenweise nicht. :?
Was muß beim 1. angegeben werden? Was muß dann bei den folgenden draufgerechnet werden, damit es trotzdem klappt, wenn ein Tab zwischendurch nicht im Code aktiviert wurde? Bei mir verschwinden die Tabs irgendwohin außerhalb der gewollten Stelle.
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!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCTABPAGE positionieren

Beitrag von Manfred »

OK, machen wir es mal einfacher:

Code: Alles auswählen

          oDialogZusatz:nOben += 10 + oDialogZusatz:nRahmenKopfHoehe
          @ oDialogZusatz:nOben,oDialogZusatz:nLinks DCTABPAGE oDialogZusatz:oTabAdresse;
                                                       CAPTION "Adresse";
                                                          EVAL {|o| AAdd(oDialogZusatz:aTabpages,o) };
                                                      GOTFOCUS {|| SetAppFocus(oAdresse:oName1) };
                                                          SIZE DCGUI_PARENTWIDTH - 10,DCGUI_PARENTHEIGHT - oDialogZusatz:nOben;
                                                     TABHEIGHT oDialogZusatz:nTabHoehe;
                                                      TABWIDTH oDialogZusatz:nTabBreite
          @ 0,0 DCTABPAGE oDialogZusatz:oTabKontakte;
                  CAPTION "Kontakte";
                     EVAL {|o| AAdd(oDialogZusatz:aTabpages,o)};
                 RELATIVE oDialogZusatz:oTabAdresse
          @ 0,0 DCTABPAGE oDialogZusatz:oTabKonditionen1;
                  CAPTION "Konditionen1";
                     EVAL {|o| AAdd(oDialogZusatz:aTabpages,o)};
                 RELATIVE oDialogZusatz:oTabKontakte
          @ 0,0 DCTABPAGE oDialogZusatz:oTabKonditionen2;
                  CAPTION "Konditionen2";
                     EVAL {|o| AAdd(oDialogZusatz:aTabpages,o)};
                 RELATIVE oDialogZusatz:oTabKonditionen1
          @ 0,0 DCTABPAGE oDialogZusatz:oTabLieferbedingungen;
                  CAPTION "Lieferbedingungen";
                     EVAL {|o| AAdd(oDialogZusatz:aTabpages,o)};
                 RELATIVE oDialogZusatz:oTabKonditionen2
wo müßte denn jetzt was eingefügt werden? Wenn ich es mache, kommt nur Unsinn dabei heraus.
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!!
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2935
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: DCTABPAGE positionieren

Beitrag von Wolfgang Ciriack »

Hi Manfred,
Frage: Warum willst du denn die Tabpages verstecken ?
Ich würde sie einfach nur disablen, wenn nicht darauf zugegriffen werden soll. Hat den Vorteil, das es immer gleich aussieht und er Kunde sieht, das da vielleicht noch was möglich wäre.
Viele Grüße
Wolfgang
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9362
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCTABPAGE positionieren

Beitrag von Tom »

Idee: Bestücke Deine Klasse "oDialogZusatz" mit einer iVar ":aShowTabs". Die Länge des Arrays bestimmt die Anzahl der später sichtbaren Tabs. In der "EVAL"-Klausel (nicht vorher, da die Objekte noch nicht existieren) jedes Tabs wird :aShowTabs[nWoBinIchGerade] das aktuelle (!) Tab-Objekt zugewiesen. In "RELATIVE" wird das jeweils vorige Objekt referenziert, also dasjenige, das sich an :aShowTabs[nWoBinIchGerade-1] befindet. Dann kannst Du die Anzeige der Tabs (das erste Tab ausgenommen!) einfach in IFs klammern, feddisch. Müsste eigentlich funktionieren, wenn ich keinen Codeblock-Fallstrick übersehen habe. ;)
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21192
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCTABPAGE positionieren

Beitrag von Manfred »

Hi Wolfgang,

es soll eine Schablone werden, die aber nicht immer alles anzeigen darf.
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!!
Antworten