Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Position und Grösse einer Zelle im XbpBrowse feststellen

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1934
Registriert: Fr, 08. Feb 2008 21:29

Position und Grösse einer Zelle im XbpBrowse feststellen

Beitrag von georg » Mi, 02. Nov 2016 14:24

Alte Clipper-Zeiten haben mich eingeholt. Dort konnte man ja im TBrowse "editeren", und etwas ähnliches möchte ich im XbpBrowse() machen.

Um die zu bearbeitende Zelle überlagern, brauche ich aber deren Adresse. Das XbpBrowse()-Objekt liefert mir jedoch nur (?) Spalten- bzw. Zeilennummern, die sich auf das Objekt selbst beziehen, und auch ein :getColumn(nRow) liefert mir nur ein Spalten-Objekt zurück.

Wie komme ich an die Position und Grösse der aktiven Zelle im XbpBrowse()? (OK, die Breite der Spalte und ihre horizontale Position kann ich dem XbpColumn()-Objekt entnehmen, aber das ist nur die halbe Miete ...)
Liebe Grüsse aus der Eifel,

Georg

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6802
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Position und Grösse einer Zelle im XbpBrowse feststellen

Beitrag von Tom » Mi, 02. Nov 2016 16:50

GetColumn(nRow) liefert Dir auch noch das falsche Spaltenobjekt zurück, denn als Parameter muss die Spaltennummer angegeben werden, nicht die Zeilennummer. :wink:

Eine XbpColumn besteht aus bis zu drei XbpCellgroup-Objekten, nämlich Heading, Footing und DataArea. oBrowse:GetColumn(nCol):DataArea ist also der Inhaber Deiner Zelle. :CellRect(nRow) liefert Dir hier die Koordinaten (auf die Parameter achten!) der Zelle. Mit dem entsprechenden Parameter bekommst Du auch noch die Größe.
Herzlich,
Tom

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1934
Registriert: Fr, 08. Feb 2008 21:29

Re: Position und Grösse einer Zelle im XbpBrowse feststellen

Beitrag von georg » Mi, 02. Nov 2016 22:05

Danke, Tom - das erklärt einiges :D
Liebe Grüsse aus der Eifel,

Georg

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1934
Registriert: Fr, 08. Feb 2008 21:29

Re: Position und Grösse einer Zelle im XbpBrowse feststellen

Beitrag von georg » Di, 15. Nov 2016 15:11

Back to the basics ...

In der Zwischenzeit habe ich das ausprobiert, und es funktioniert ... fast.

Wenn ich die Koordinaten verwende, zeige ich mein XbpSLE() in der Zelle unterhalb der Zelle an, die ich mittels Doppelklick ausgewählt habe. So wie ganz früher, als es noch hiess "immer eins mehr oder weniger als man denkt". Die Abweichung scheint aber der horizontale Scrollbar zu sein, den ich noch rausrechnen muss.

Das andere Problem ist mehr "basic", fürchte ich: wenn ich den Dialog verschiebe, bleibt alles wie es ist. Verkleinere ich den Dialog und vergrössere ihn wieder, wird der XbpBrowse() neu gezeichnet, und mein XbpSLE() ist unsichtbar.

Also habe ich den paint-Slot mit einem oSLE:show() versehen, was aber nicht wirkt. Nächster Versuch war ein oSLE:configure() - das funktioniert, nur scheint das :configure() wiederum ein Paint-Event auszulösen, welches dann ...

Da muss es doch eine einfachere Methode geben, oder?
Liebe Grüsse aus der Eifel,

Georg

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10580
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Position und Grösse einer Zelle im XbpBrowse feststellen

Beitrag von AUGE_OHR » Di, 15. Nov 2016 17:00

georg hat geschrieben:Back to the basics ...
hast du dir mal x:\ALASKA\XPPW32\SOURCE\samples\solution\xbpget\editbrow.prg angesehen ?
gruss by OHR
Jimmy

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1934
Registriert: Fr, 08. Feb 2008 21:29

Re: Position und Grösse einer Zelle im XbpBrowse feststellen

Beitrag von georg » Mi, 16. Nov 2016 22:05

Hallo, Jimmy -


ja, das habe ich mir angesehen, aber das ist mir einfach zu komplex für die Aufgabe, um die es geht.

Zudem suche ich nach einer Erklärung, was eigentlich in einem solchen Fall gemacht werden muss, um eine solche Überlagerung ohne owner drawing umzusetzen.
Liebe Grüsse aus der Eifel,

Georg

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10580
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Position und Grösse einer Zelle im XbpBrowse feststellen

Beitrag von AUGE_OHR » Mi, 16. Nov 2016 23:17

bei den Hinweis auf Editbrow.prg ging es mir um GETCOL.PRG

ein Browse besteht ja aus Column und GETCOL.PRG beinhaltet CLASS XbpGetColumn FROM XbpColumn.
wenn man einer Column "was beibringen" will dann wäre IMHO "das" der Ansatz.
georg hat geschrieben:Zudem suche ich nach einer Erklärung, was eigentlich in einem solchen Fall gemacht werden muss, um eine solche Überlagerung ohne owner drawing umzusetzen.
bei Owner-Drawing wird nur "gemalt" was die Column als Info bereitstellt.

Frage : was ist der Parent von deinem SLE ?

ich würde den oBrowse:stableBlock verwenden um "externe" XbParts neu zu positionieren.
gruss by OHR
Jimmy

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1934
Registriert: Fr, 08. Feb 2008 21:29

Re: Position und Grösse einer Zelle im XbpBrowse feststellen

Beitrag von georg » Do, 17. Nov 2016 14:49

Hallo, Jimmy -

AUGE_OHR hat geschrieben:Frage : was ist der Parent von deinem SLE ?
Das XbpBrowse-Objekt fungiert als Parent und als Owner.
AUGE_OHR hat geschrieben:ich würde den oBrowse:stableBlock verwenden um "externe" XbParts neu zu positionieren.
Gut, das schaue ich mir bei Gelegenheit mal an. Danke!
Liebe Grüsse aus der Eifel,

Georg

Antworten