![]() |
Label erzeugen
Hi Leute!
Ich arbeite gerade an einem Programm zurDarstellung von Noten. Für die Darstellung benötigt man natürlich auch Vorzeichen (Kreuz). Das habe ich mirals Schriftart besorgt und möchte es übers Label anzeigen. Leider weiß ich in vornherein nicht, wie viele LAbels ich brauche. Daher ist meine Frage; Wie kann ich Labels dynamisch erzeugen? wenn das nicht geht, würde es mir reichen, wenn es möglich wäre ein vorhanenes LAbel zu kopieren und an einerbestimmten Stelle wieder einzugügen. Oder habt ihr vielleicht eine andere Idee, um Vorzeichen darzustellen? Mit freundlichen Grüßen Anna |
Re: Label erzeugen
Moin,
das geht schon dynamisch - ein Label ist am Ende auch nur ein Objekt:
Delphi-Quellcode:
Das kann man dann noch in ein Schleifchen packen und dann (mehr oder weniger) beliebig viele Labels erzeugen.
///
/// Angenommen, Dein Label soll auf Form1 (könnte auch Panel1 oder sonst ein Container sein) sitzen: var myLabel : TLabel; begin myLabel:= TLabel.Create( Form1 ); myLabel.Parent:= Form1; myLabel.Left:= 10; myLabel.Top:= 50; myLabel.Caption:= 'Hallöle'; // usw... end; |
Re: Label erzeugen
wie machst du denn die noten?
ich denke mal, es wäre sinnvoller das ganze zu malen (TCanvas), statt alles mit labels auszurichten. aber zu der egentlichen Frage, du kannst natürlich labels dynamisch erzeugen:
Delphi-Quellcode:
ansonsten kannst du zur designtime auch labels kopieren per markieren,strg+c,strg+v.zur laufzeit erzeugst du ein neues Label (s.o.) und kopierst die Einstellungen in die neue instanz (assign).
//in einer form-methode:
label:=TLabel.create(self);//hier wäre self das form und es kümmert sich ums spätere freigeben label.parent:=self;//das label soll auch auf dem form auftauchen label.left:=10; label.top:=10; label.caption:='Test'; HTH Frank |
Re: Label erzeugen
Warum nimmst du nicht für jeden Buchstaben ein eigenes Label?
Ziemlich sinnfrei oder? Warum willst du dann für solche Sonderfälle Labels nehmen? Wie schon vorgeschlagen: Mach dir ne Paintbox und schreib das per Canvas.TextOut drauf. |
Re: Label erzeugen
na die noten zeichne ich.. aber die Vorzeichen zu zeichnen wäre ein versuch wert.. es war halt meine erste idee die i ein label zu stecken.
ich brauch soviele labels, da die noten verschieden positioniert sind (schon einmal eine naotenpartitur angeguckt?!) und ich erst beim einlesen der Werte weiß, wo ein Vorzeichen hin muss... Daher dachte ich, das es mit Labels recht praktisch geht, denn da habe ich ein Rechteck, was ich präzise positionieren kann. Also danke Leute für eure Hilfe! MfG Anna |
Re: Label erzeugen
Das kann aber ungeheuer langsam werden, wenn du da hunderte Labels nutzt. Ich würde es auch intern in ein TBitmap zeichnen und dieses dann ausgeben. Dort kannst du auch pixelgenau Text positionieren und hast nebenbei den Vorteil, dass du das relativ leicht auch ausdrucken lassen oder als Grafik abspeichern kannst.
|
Re: Label erzeugen
Zitat:
Da ich denke, dass du mit Vorzeichen "+" und "-" meinst, kannst du auch in einem Canvas (TBitmap) mit Rechtecken arbeiten ( ![]() |
Re: Label erzeugen
Liste der Anhänge anzeigen (Anzahl: 1)
ähm wir reden gerade von unterschiedlichen vorzeichen.. ich meine gerade die musikalischen Noten und deren Vorzeichen (Kreuz bzw b), wie folgendes Bild z.b. zeigt (in Anhang verschoben):
Bisjetzt hab ich die Notenlinien und die Noten selbst gezeichnet. Daher fehlen mir noch die Vorzeichen. Es tut mir leid, wenn ihrs etwas anders verstanden habt.. Sorry... :oops: MfG Anna [edit=SirThornberry]Bild in Anhang gepackt - Mfg, SirThornberry[/edit] |
Re: Label erzeugen
Hi,
Zitat:
[edit] Und natürlich noch das Auflösungszeichen. [/edit] Mfg FAlter |
Re: Label erzeugen
Ja, ich dachte Schulnoten ... :mrgreen:
Wenn du so eine Noten-Font hast, dann nimm ein TImage / TBitmap (musst du erst erstellen, einem TImage / TPaintBox zuweisen, ...) und richte den Canvas (Canvas.Font.Name) so ein und zeichne per DrawText die Noten entsprechend. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 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