AGB  ·  Datenschutz  ·  Impressum  







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

Componenten schräg anordnen

Ein Thema von eragon123 · begonnen am 29. Mär 2010 · letzter Beitrag vom 29. Mär 2010
Antwort Antwort
eragon123

Registriert seit: 6. Mär 2010
53 Beiträge
 
#1

Componenten schräg anordnen

  Alt 29. Mär 2010, 14:41
Ich hab jetzt leider keinen passenden Beitrag gefunden, deshalb hier meine Frage:

Wie bekomme ich es hin in Delphi Komponenten Schräg (z.B. Diagonal über das Bild) anzuordnen?

Konkretes Beispiel: Ich habe ein Hintergrundbild, welches ein Buch darstellt. Da soll jetzt z.B. per Textfeld Text reingeschrieben werden. Das Buch ist aber natürlich nicht genau gerade. Wie bekomme ich das jetzt hin das der Text auch schräg verläuft?

PS Noch eine Zusatzfrage: Per lbl.caption := lbl.caption + Buchstabe setze ich den Text. Wie erreiche ich jetzt das der auch mal einen Zeilenumbruch macht wenn die Zeile voll ist? Wordwrap macht das nicht bei mir...
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Componenten schräg anordnen

  Alt 29. Mär 2010, 16:50
Zum 1.:
Zeichne den Text einfach selber. Am einfachsten ist es dann natürlich, wenn man die GDI+ nimmt und RotateMatrix() aufruft. Direct2D könntest du auch benutzen. Aber selbst mit der normalen GDI / TCanvas dürfte das zu bewältigen sein.

Zum 2.:
WordWrap bricht immer nur bei Leerzeichen. Wenn du immer nur Buchstaben anhängst bleibt das in einer Zeile.

PS: Demnächst nur noch eine Frage per Thread posten.
Für jede weitere Frage einen neuen Thread.
  Mit Zitat antworten Zitat
Rudirabbit

Registriert seit: 27. Sep 2006
111 Beiträge
 
#3

Re: Componenten schräg anordnen

  Alt 29. Mär 2010, 18:38
Ich sehe das nicht so einfach wie implementation (eh - cooler nick).

eragon123 möchte mit der Tastatur in eine z.b TEdit Daten eingeben.

Also auf dem schrägem Hintergrund sollen Eingabefelder fokussiert werden können, und dort kann ein Text eingegeben werden
Die TEdit müsste also den selben Winkel haben

Malen auf dem canvas ist meiner Meinung nach nicht Zielführend.

Man müsste aus einer TEdit Class eine TEdit_Angle bauen
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Componenten schräg anordnen

  Alt 29. Mär 2010, 18:56
Das geht nur leider so nicht, da die gesamten Standard-Controls direkt von Windows bereit gestellt werden, und in diesen solche Variationen an keiner Stelle ansatzweise bedacht sind. Die einzige Lösung ist, wie bereits implementation angedeutet hat, komplett selbst Hand anzulegen, und das Verhalten von einem Edit auf der eigenen Ausgabe abzubilden. Das ist auch schon vergleichsweise knifflig, und sicherlich auch ein ganzer Stiefel Schreibarbeit, vor allem je nach dem wie variabel man seine Komponenten dann auch halten mag.

Das ganze ist ein wenig vergleichbar mit der Erstellung (bzw. Nachbildung) visueller Controls in vielen D3D/OGL Spielen, wo in diese Richtung überhaupt keine Unterstützung vom OS gegeben wird, und alles was man sieht intern einfach nur eine Hand voll Grafiken ist, mit komplett selbst implementierten Verhalten.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von implementation
implementation

Registriert seit: 5. Mai 2008
940 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Componenten schräg anordnen

  Alt 29. Mär 2010, 19:10
Wer weiß, vielleicht hat ja irgendjemand, der sich die Mühe schon gemacht hat, seine Kompo veröffentlicht... -> einfach googeln

Sonst selber machen. Ist auch nicht so schwer. Viel muss das Edit ja nicht können:
- sich selbst zeichnen. (siehe mein obiger Post)
- den Fokus erhalten können. (durch Ableitung von TWinControl)
- die Tastatureingaben abfangen. (Nachrichten WM_CHAR, WM_KEYUP, WM_KEYDOWN)

Das lässt sich recht schnell schaffen. Hab ich selbst auch schon gemacht, allerdings in C#, sonst würde ich den Code hier posten.
  Mit Zitat antworten Zitat
Rudirabbit

Registriert seit: 27. Sep 2006
111 Beiträge
 
#6

Re: Componenten schräg anordnen

  Alt 29. Mär 2010, 19:12
von Medium:
Zitat:
Die einzige Lösung ist, wie bereits implementation angedeutet hat, komplett selbst Hand anzulegen, und das Verhalten von einem Edit auf der eigenen Ausgabe abzubilden. Das ist auch schon vergleichsweise knifflig, und sicherlich auch ein ganzer Stiefel Schreibarbeit, vor allem je nach dem wie variabel man seine Komponenten dann auch halten mag.
Ich Stimme dir zu, nur der Vorschlag dies aus einer TEdit Class abzuleiten kommt von mir - egal
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Componenten schräg anordnen

  Alt 29. Mär 2010, 19:32
Was halt leider nicht wirklich eine gute Idee ist, da das Edit insbesondere in Punkto Darstellung von Windows verwaltet wird, was man zunächst also erstmal unterdrücken müsste. Was dann noch brauchbares davon über bleibt, hat man mit TWinControl als Vorfahr dann auch

Edit: Trotz deines Edits lass ich's mal stehen
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Rudirabbit

Registriert seit: 27. Sep 2006
111 Beiträge
 
#8

Re: Componenten schräg anordnen

  Alt 29. Mär 2010, 19:55
@Medium: Du hast schon recht, im Endeffekt wäre es dann ein Nachfahre von TWinControl
Erst Gehirn einschalten und dann posten, nicht umgekehrt - sorry.
  Mit Zitat antworten Zitat
Antwort Antwort


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:45 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