Announcement

Collapse
No announcement yet.

Komponenten drehen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Komponenten drehen

    Hallo Delphi-Gurus,

    gibt es eine Möglichkeit die mit Delphi bereitgestellen Komponenten auf dem Forumlar in einen bestimmten Winkel darzustellen. Also z.B.: TLabel um 15° drehen?
    Gibt's irgendwelche anderen Komponenten die das können?

    Hintergrund: Die verschiedenen Texte sollen im Halbkreis angeordnet sein. Jedes Feld soll den Farbzustand, Text, Hintergrund usw. verändern und natürlich steuerbar sein, also auf Mausklicks reagieren...

  • #2
    hi, elmar

    vielleicht ist die frage ja noch aktuell?

    die komponente drehen, geht wohl nicht
    aber der ansatz geht wohl über

    createfont

    der 5.Parameter(orientation) setzt bei truetype-schriften den winkel. du mußt also vom prinzip

    1. einen canvas definieren, auf dem du zeichnen willst

    2. den kreisbogen berechnen, auf dem deine buchstaben stehen sollen

    3. den winkel für jeden buchstaben bestimmen

    und zuguter letzt mit dem über createfont für jedes einzelne zeichen definierten font jedes einzelne zeichen mittels textout dann ausgeben.

    eigentlich was für hagen :-), der macht das in 5 minuten - ich müßte erst das mathebuch rausholen

    gruss, bernhar

    Comment


    • #3
      Hier im Forum habe ich schon mal einen Source gepostet um gedrehte Fonts zu erzeugen.

      Gruß Hage

      Comment


      • #4
        Hallo Berhard, hallo Hagen,<p>
        ja, die Frage ist noch aktuell. Eigentlich war die Frage nicht wie man eine Font im Kreisbogen anordnet, aber danke für die Infos. Ich veruche es nochmal entwas genauer zu beschreiben:<br>
        Ich habe ein Rechteck. Dieses wird mit einer bestimmten Farbe ausgefüllt. Im Rechteck soll ein zentrierter Text stehen. Über die rechte Maustaste soll ein Kontextmenü aufgerufen werdern. Ich habe ca 40 verscheiden Rechtecke und diese müssen dann kreisförmig angeornet werden.<br>
        Nun müssen die Rechtecke gedreht dargestellen werden. Und genau hier hänge ich fest. Also<br>
        1. Wie kann ich das Rechteck mit der Schrift auf der Zeichenfläche drehen?<br>
        2. Es darf nur innerhalb der Rechtecke (auch wenn diese gedreht sind) auf Mausereignisse reagiert werden. Wie realisiere ich das

        Comment


        • #5
          Hi elmar!

          Wenn ich Dich richtig verstehe, zeichnest Du die Rechtecke selbst, also kannst Du diese auch gleich im richtigen Winkel und an der richtigen Stelle zeichnen. Damit ist der Winkel zum Zeichnen des Fonts bekannt.

          Das dritte Problem mit der Sensitiven Fläche löst Du mit Hilfe einer Region.

          Aber mal ne'andere Frage: 1.) Egal mit welcher Methode, aber die Kantenschärfe außerhalb der 90° Vielfachen wirst du auch mit noch so viel Tricks nicht hinbekommen. 2.) Bei 40 Figuren ist das alle 9° eine Neue und dann hat der User einen 17 Zoller in einer Chaoten-Auflösung - also : muss es denn unbedingt der Kreisbogen sein ?

          gruß,bernhar

          Comment


          • #6
            Hallo Bernhard,<p>
            erst mal danke für das Interesse und die Hilfe.<p>
            Zu Deinen Fragen:<br>
            Ich versuch das Problem das es zu lösen ist mal mit folgenden Beispiel: <i>Angenommen wir haben ein Gebäude das im Halbkreis gebaut ist. Wir haben 40 Reihen. Auf jeder Reihe passen zwei Autos, wobei hinten (auf der längeren Seite) immer ein Auto Platz hat, und vorne (aufgrund der Bogenform) nur jede zweite Reihe belegt werden kann.</i>
            Der Grundgedanke war folgender: Das Gebäude und die Reihen werden als Bitmap auf eine Zeichenfläche geladen. Dort wo die "Parkplätze" sein sollen, soll ein Rechteck (wegen der Bogenform des Gebäudes) gedreht gezeichnet werden. Über verschiedene Farben und Texte sollen nun verschiedene Zustände der "Parklätze" erkennbar sein.<p>
            Nun ja, das mit der Kantenschärfe ist wirklick ein Problem. Falls es für den Monitor zu klein wird, dann dachte ich an einen Scrollbereich. (es wird immer nur ein Teil des "Gebäudes" dargestellt) Aber welche Alternativen gibt es? (fürs Randproblem usw.) Wie würdest Du die geschilderte Situation grafisch realisieren? Und welche Funktion verwendest Du um ein gedrehtes Rechteck zu zeichen? (meine Funktion klappt noch nicht ganz

            Comment

            Working...
            X