AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wordwrap umbruch

Ein Thema von EWeiss · begonnen am 19. Nov 2018 · letzter Beitrag vom 20. Nov 2018
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Wordwrap umbruch

  Alt 20. Nov 2018, 16:38
Hey, schaut doch supi aus was Du da gemacht hast, anscheinend ist es Dir gelungen, gratuliere! (bezieht sich auf dein bild)

Ich hätte jetzt nur noch vorschlagen können, wenn Du zwei Zeilen willst, setz zwei OnTop align labels in ein Panel.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#22

AW: Wordwrap umbruch

  Alt 20. Nov 2018, 16:45
Hey, schaut doch supi aus was Du da gemacht hast, anscheinend ist es Dir gelungen, gratuliere! (bezieht sich auf dein bild)
Ich hätte jetzt nur noch vorschlagen können, wenn Du zwei Zeilen willst, setz zwei OnTop align labels in ein Panel.
Es funktionierte alles solange der Umbruch sich auf 2 Zeilen beschränkt.
Danach jedoch nicht mehr aber wie gesagt werde für das Problem eine Lösung erarbeiten halt nur nicht mit Labeln.

Mit dem Font bzg. der Zuweisung welchen ich verwenden möchte inkl. dem FontSize hat er ja recht.
Nur er kann nicht behaupten das es quatsch ist denn er weis ja gar nicht welchen Font und Fontsize ich an meine Funktion weiter leite
das ist nämlich genau der Default Font eines Labels und deshalb passt es.

Zuweisung hätte ich noch addieren können das ist schon richtig war aber im Moment nicht nötig.

Danke.

gruss

Geändert von EWeiss (20. Nov 2018 um 16:48 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#23

AW: Wordwrap umbruch

  Alt 20. Nov 2018, 18:33
Nur als Nachtrag!

Habe die Funktion mit dem Label jetzt aus der AudioSessionVolume.pas rausgeschmissen und ändere den Text jetzt in der Anwendung selbst.
So ist man von der TAudioVolume unabhängig und ändert den Text dort wo es angebracht ist.

Zudem muss ich dann nichts mehr berechnen da ich das innerhalb meiner Library schon tue.
Wenn der Text länger ist wie das Control und sich kein Leerzeichen innerhalb des Textes befindet dann schicke ich einfach nur mein Flag GD_Ellipsis und fertig.

Die Anwendung muss sich dann um die Formatierung des Textes selber kümmern.

Delphi-Quellcode:
      GDIP_GetTextBound(MainClass.DeviceName, FontName, 13, bw, bh, nil, GD_TextHorzUp);

      // DeviceName
      x := x1;
      y := 41;

      ID := ID_DEVICENAME + Index;

      for i := 1 to Length(MainClass.DeviceName) do
      begin
        if MainClass.DeviceName[i] = ' then
        begin
          bNull := True;
          gSprSession.GD_DrawTextToCtrlEx(HSprSession, PWideChar(Trim(MainClass.DeviceName)), x, y,
            ParentWidth, bh * 2, gSprSession.GD_ARGB(255, 255, 255, 255), PWideChar(FontName), nil, 13,
            ID, GS_VISIBLE, 0, Ord(StringAlignmentCenter));
          break;
        end;
      end;

      if not bNull then
      begin
        if (bw > ParentWidth) then
          gSprSession.GD_DrawTextToCtrlEx(HSprSession, PWideChar(Trim(MainClass.DeviceName)), x + 2, y,
            ParentWidth, bh, gSprSession.GD_ARGB(255, 255, 255, 255), PWideChar(FontName), nil, 13,
            ID, GS_VISIBLE, 0, GD_Ellipsis) // ***** das war's schon
        else
        gSprSession.GD_DrawTextToCtrlEx(HSprSession, PWideChar(Trim(MainClass.DeviceName)), x, y,
          ParentWidth, bh * 2, gSprSession.GD_ARGB(255, 255, 255, 255), PWideChar(FontName), nil, 13,
          ID, GS_VISIBLE, 0, Ord(StringAlignmentCenter));
      end;

      gSprSession.GD_SetObjectUse3Dshadow(ID, 1.1, true);
      gSprSession.GD_SetObjectLinked(ID, LinkedID);
      gSprSession.GD_SetObjectLocked(ID, true);
Es löst zwar nicht das Problem mit den 3 Zeilen macht mich aber unabhängig von TAudioVolume.

gruss

Geändert von EWeiss (20. Nov 2018 um 19:28 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#24

AW: Wordwrap umbruch

  Alt 20. Nov 2018, 22:50
Ok funktioniert jetzt..
Musste leider doch eingriff in meine Library nehmen um das Problem beheben zu können.
Es waren keine zusätzlichen Berechnungen nötig.

Hat aber keinen großen Einfluss auf meine anderen Anwendungen weil ich letztendlich nur eine Konstante "GD_CenterAndEllipsis" addiert habe.
Ich zentriere den Text innerhalb des Control und addiere Ellipsis wenn nötig.
Delphi-Quellcode:
      for i := 1 to Length(MainClass.DeviceName) do
      begin
        if MainClass.DeviceName[i] = ' then
        begin
          bNull := True;
          gSprSession.GD_DrawTextToCtrlEx(HSprSession, PWideChar(Trim(MainClass.DeviceName)), x, y,
            ParentWidth, bh * 2, gSprSession.GD_ARGB(255, 255, 255, 255), PWideChar(FontName), nil, 13,
            ID, GS_VISIBLE, 0, GD_CenterAndEllipsis);
          break;
        end;
      end;
gruss

Geändert von EWeiss (11. Jul 2019 um 16:54 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz