Höhe XbpStatic feststellen [Erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Höhe XbpStatic feststellen [Erledigt]

Beitragvon Jan » Do, 26. Mai 2016 21:44

... spät am Abend steh ich etwas auf dem Schlauch ...

Mit XBPSTATIC_TEXT_WORDBREAK kann ich einem XbpStatic sagen, das der übergebene Text mehrzeilig ausgegeben werden soll. Aber finde ich heraus, wie viele Zeilen das werden? Damit ich die Höhe des Static vorab bestimmen kann.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11442
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Höhe XbpStatic feststellen

Beitragvon brandelh » Do, 26. Mai 2016 23:18

Was gibt GraQueryString() aus wenn du den Text und die oPS angibst, eigentlich sollte die Funktion wissen wieviel Platz der aktuelle Text bracht.
Ich habe das allerdings nie bei Zeilenumbruch getestet.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13181
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Höhe XbpStatic feststellen

Beitragvon Jan » Fr, 27. Mai 2016 5:27

Hubert,

Danke für den Hinweis, werde ich mal ausprobieren.

Nettes am Rande: Ich wußte das es da irgend eine Funktion gab, mit der man zumindest die Länge eines Textes berechnen kann. Hab die aber in der Hilfe nicht gefunden. Jetzt ist auch klar warum: GraQueryString() fehlt in der Hilfe, sowohl in der 1.9 SL1 als auch in der 2.0! Hab das gerade noch mal kontrolliert.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11442
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Höhe XbpStatic feststellen

Beitragvon Jan » Fr, 27. Mai 2016 5:31

Hubert,

bist Du Dir mit GraQueryString() wirklich sicher? Meinst Du nicht vielleicht wirklich GraQueryTextbox()?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11442
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Höhe XbpStatic feststellen

Beitragvon brandelh » Fr, 27. Mai 2016 9:12

Jan hat geschrieben:GraQueryTextbox()?
Jan


Du hast Recht, es ist diese Funktion. Die berechnit nicht nur die Länge, sondern über die 4 Koordinaten auch die Höhe ...

PS: mein Gedächtnis läßt nach :(
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13181
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Höhe XbpStatic feststellen

Beitragvon Jan » Fr, 27. Mai 2016 9:43

Hallo Hubert,

stimmt, auch die Höhe. Aber das hilft mir nicht, da ich keine Begrenzung der Zeilenlänge als Parameter übergeben kann. Und damit ist das im einfachsten Fall in der Höhe einfach nur Abhängig von der eingesetzten Fonthöhe.

Im Prinzip brauch ich sowas wie MlCount() in GUI. Inzwischen bin ich soweit, das ich in Gedanken schon ein Gerüst dafür habe, um mir das selber zu schreiben. Das wird dann zwar über ein paar Schleifen laufen, und entsprechende Kontrollen mit GraQuerytextbox(), aber das sollte auch sehr präzise klappen. Wäre halt schön gewesen wenn es irgend sowas, analog zur Memoverarbeitung, schon gibt in Xbase++.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11442
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle

Re: Höhe XbpStatic feststellen

Beitragvon brandelh » Fr, 27. Mai 2016 10:01

Hast du mal probiert, was passiert wenn du chr(13) in den Text schreibst ?
Wird dann die Höhe größer, berechnet er den tatsächlich belegten Platz auch bei mehrzeiligen Texten.

Die nötigen Umbrüche musst du aber selbst berechnen, einfach mit fixer Zeichenbreite, komplexer durch Aufteilen der Texte mit der Funktion.
Besonders Blocksatz ist komplex ... aber machbar, siehe MemoPrint() in meiner Druckerklasse ...
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13181
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: Höhe XbpStatic feststellen

Beitragvon Jan » Fr, 27. Mai 2016 10:19

Hallo Hubert,

ja, das ist das was ich mir überlegt hatte. Immer den Teilstring bis zum nächsten crlf bzw. Textende nehmen, per GraQuerytextbox() schauen wie lang der ist. Wenn länger als die vorgegebene Länge - Leerzeichen um Leerzeichen da rantasten, bei Erreichen der korrekten Position den Reststring ebenso abarbeiten.

Braucht halt ein paar Schleifen. Aber sollte gut gehen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Foren-Administrator
Foren-Administrator
 
Beiträge: 11442
Registriert: Fr, 23. Sep 2005 17:23
Wohnort: 49328 Melle


Zurück zu GUI

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste