Höhe XbpStatic feststellen [Erledigt]

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Höhe XbpStatic feststellen [Erledigt]

Beitrag von Jan »

... 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
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Höhe XbpStatic feststellen

Beitrag von brandelh »

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
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Höhe XbpStatic feststellen

Beitrag von Jan »

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
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Höhe XbpStatic feststellen

Beitrag von Jan »

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
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Höhe XbpStatic feststellen

Beitrag von brandelh »

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
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Höhe XbpStatic feststellen

Beitrag von Jan »

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
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Höhe XbpStatic feststellen

Beitrag von brandelh »

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
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Höhe XbpStatic feststellen

Beitrag von Jan »

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
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten