AGB  ·  Datenschutz  ·  Impressum  







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

strings und zeilenumbruch

Ein Thema von venice2 · begonnen am 21. Feb 2021 · letzter Beitrag vom 22. Feb 2021
 
venice2
(Gast)

n/a Beiträge
 
#9

AW: strings und zeilenumbruch

  Alt 22. Feb 2021, 00:10
Zitat:
Aber warum dort überhaupt ein Freiraum von unhandlicher Größe?
Zwei Texte ... der Eine von unten und der Andere von oben.
Warum sollte ich zwei Texte verwenden wenn es genau so gut mit einem geht.
Es spricht nichts dagegen.

Damit ich den Text nicht immer bei jeder Aktualisierung des Fensters neu zeichnen muß erstelle ich ein Bitmap auf dem der Text gerendert wird.
Und auf diesen Bitmap überlagere ich dann die Bilder für Ratings, Average und Vote.
Deshalb verwende ich einen Text!
Dieses Bitmap ist als Sprite ausgelegt wird in meiner DLL(SpriteContainer) Klasse verwaltet und kann diverse zusätzlich Funktionen erhalten. Zoomen, Drehen, Transparenz,
zur Laufzeit auf dem Fenster verschieben usw..

Beispiel:
Delphi-Quellcode:
  SpriteArray[0].FontText := 'Use Symmetrical';
  SpriteArray[1].FontText := 'Use Transparent';
  SpriteArray[2].FontText := 'Use Smoothing';

  for K := 0 to 2 do
  begin
    SpriteArray[K].FontUseSize := 20;
    SpriteArray[K].FontName := 'TAHOMA';
    SpriteArray[K].FontUseARGB := gSprSettings.GD_ARGB(255, 255, 255, 255);
    SpriteArray[K].FontUse3D := 1;
    SpriteArray[K].hBmp := gSprSettings.GD_CreateBitmapFromText
        (PWideChar(SpriteArray[K].FontText), nil, PWideChar(SpriteArray[K].FontName),
        SpriteArray[K].FontUseSize, SpriteArray[K].FontUseARGB, SpriteArray[K].FontUse3D);
    gSprSettings.GD_SetObjectAnchorMode(ID + K, ANCHOR_NONE);
    gSprSettings.GI_GetBitmapSize(SpriteArray[K].hBmp, IbmW, IbmH);
    SpriteArray[K].ID := ID + K;

    if (K = 2) then
    begin
        SpriteArray[K].xPos := x + 1;
        SpriteArray[K].yPos := y;
    end
    else
    begin
        SpriteArray[K].xPos := x;
        SpriteArray[K].yPos := y;
    end;

    y := y + 34;
    gSprSettings.GD_DrawTextBitmapToCtrl(hSprSettings, SpriteArray[K].xPos, SpriteArray[K].yPos,
      SpriteArray[K].hBmp, $FFFFFFFF, SpriteArray[K].ID, GS_VISIBLE);
    gSprSettings.GD_SetObjectLocked(SpriteArray[K].ID, true);

    SpriteArray[K].scale := SCALE_DEFAULT;
    gSprSettings.GD_SetObjectScale(SpriteArray[K].ID, SpriteArray[K].scale);
    gSprSettings.GD_SetObjectImageLabel(K, SpriteArray[K].FontText);
  end;
Zoom Beispiel:
Delphi-Quellcode:
  if bAnimate then
  begin
    for K := (Length(SpriteArray) - 1) downto 0 do
    begin
      if InflateID = SpriteArray[K].ID then
      begin
        if SpriteArray[K].scale < 0.85 then
          SpriteArray[K].scale := SpriteArray[K].scale + SCALE_STEP;
      end
      else
      begin
        if SpriteArray[K].scale > SCALE_DEFAULT then
          SpriteArray[K].scale := SpriteArray[K].scale - SCALE_STEP;
      end;

      gSprSettings.GD_SetObjectScale(SpriteArray[K].ID, SpriteArray[K].scale);
      Angle := gSprSettings.GD_GetObjectAngle(SpriteArray[K].ID);
      if Angle > 0 then
      begin
        Angle := Angle - 8;
        gSprSettings.GD_SetObjectAngle(SpriteArray[K].ID, Angle);
      end;
    end;

    gSprSettings.GI_UpdateWindow(WinHandle, false);
  end;
Aber das kannst du natürlich nicht alles wissen.
Email denkt das geht schon so.
...
Wenn du schon "Count: Integer=1" definierst dann benötigt man auch Result = '' und die abfrage if Count > 0 then nicht mehr.
Count kann ja dann nicht mehr 0 sein.
Delphi-Quellcode:
function LineBreak(Count: Integer = 1): string; // oder gleich LB
begin

    Result := DupeString(sLineBreak, Count);
end;
Aber danke für den Tip "sLineBreak" und mit dem Optionalen Parameter hätte ich auch drauf kommen müssen

Geändert von venice2 (22. Feb 2021 um 03:31 Uhr)
  Mit Zitat antworten Zitat
 


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 15:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz