DCGROUP und Inhalt formatieren [ERLEDIGT]

Moderator: Moderatoren

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

DCGROUP und Inhalt formatieren [ERLEDIGT]

Beitrag von Manfred »

Hi,
ich baue ein DCGROUP und darin gibt es Texte und Felder für die Eingabe. Zur Zeit der Erzeugung weiß ich aber noch nicht genau, wo DCGROUP zu stehen kommt und wie groß es wird.
ich erzeuge es zunächst erstmal so:

Code: Alles auswählen

@ 0,0 DCGROUP oRahmen
dann erzeuge ich die Inhalte

Code: Alles auswählen

@ 10,10 DCSAY "Feld1:"
          OBJECT oText;
          PARENT oRahmen
Also rufe ich nach der Erzeugung in DCREAD GUI über Eval eine Funktion auf, die die endgültige Position und Größe einstellt. das klappt gut, aber leider sind die Inhalte ganz woanders und müßte dann auch nochmal händisch korrigiert werden. Sie verschwinden ganz an den unteren rand und werden von unten nach oben positioniert. Kann man das anders lösen?
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: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCGROUP und Inhalt formatieren

Beitrag von Tom »

Was macht diese Funktion? Arbeitet sie mit :SetPos()? Das bezieht sich ja immer auf das Pixel-Koordinatensystem, das unten links beginnt, während Rogers Notation eine Zeilen-/Spaltennotation (20 Pixel x 7 Pixel*) ist, die ihren Ursprung links oben hat.
Aber. Jedes DC*-Objekt kennt eine Methode :DCSetPos(), und die kann mit den Zeilen-/Spaltendaten angesprochen werden! oText:DCSetPos({1,1}) positioniert also nicht an Pixel 1,1 links unten, sondern an Pixel 20 x 7 links oben.

(*Standardeinstellung, kann aber auch über eine Get-Set-Funktion verändert werden.)
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCGROUP und Inhalt formatieren

Beitrag von Tom »

Hast Du eigentlich schon mal mit der DESIGN-Option von DCREAD GUI herumgespielt?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCGROUP und Inhalt formatieren

Beitrag von Manfred »

Hi Tom,
zur ersten Antwort:
ich setze nur mit setpos() und setsize() die DCGROUP Maße/Position neu. Den Inhalt berühre ich zu dem Zeitpunkt gar nicht. Meinst Du DEN Status mit DCSetPos()?
zur zweiten Antwort:
nein, sagt mir auch (mal wieder) nichts. Muß ich mal durchlesen.
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: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: DCGROUP und Inhalt formatieren

Beitrag von Tom »

Sind die Objekte in der Group auch wirklich über die PARENT-Klausel mit dem Gruppenobjekt verbunden? Dann müsste ein SetPos (oder DCSetPos) auf die Gruppe auch die Inhalte mitbewegen.

Es gibt in DCGETOPTIONS die DESIGN-Option, die man zusammen mit der SOURCECODE-Option verwenden muss:

Code: Alles auswählen

DCGET OPTIONS .... DESIGN HOTKEY xbeK_F11 SOURCECODE "c:\Apps\MyApp.PRG"
In diesem Fall könntest Du, während der fragliche Dialog angezeigt wird, F11 betätigen, danach lassen sich die Objekte dann verschieben und skalieren. Abermaliges F11 speichert die Änderungen im Quellcode.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCGROUP und Inhalt formatieren

Beitrag von Manfred »

ja, sind mit dem Parent verbunden. Siehe oben im Beispielcode.
Der andere Vorschlag dürfte aber Probleme bereiten, weil alles relativ gebaut ist. Es hängt also im besonderen Maße von der Position der Vorgängerobjekte ab, der Auflösung und der Skalierung. Und so wie ich Dich verstehe, würde ich die Werte dann fix speichern.
Ich habe das jetzt erstmal anders gelöst und die Gruppe früher erstellt direkt hinter dem Vorobjekt. Ist zwar nicht das was ich will/wollte, aber mein Problem wird dadurch gelöst.
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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: DCGROUP und Inhalt formatieren

Beitrag von Manfred »

Hi Tom,
Danke :DcSetSize() war das Zauberwort. Das genügte allein um es so zu haben wie gewünscht. Mit :dcSetpos() muß man man etwas tricksen, weil die Methode wohl anders rechnet und deshalb den Startpunkt anders setzt, als :setpos(). Aber so komme ich klar. Wäre ich nur nie drauf gestossen, weil es dazu nichts in der Doku gibt. Zumindest habe ich nichts dazu gefunden.
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