![]() |
2 Labels verbinden
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,
es geht darum, 2 Labels zu verbinden. Z.B. "Betrag 10.00 EUR". Wenn ich dafür nur Labels verwende, so wird das zu unübersichtlich. Wenn auf einer Form 100 solcher Konstrukte sind, dann macht es schon Sinn, wenn die Beschriftung und der Wert zusammen gespeichert werden. So ähnlich wie beim LabeledEdit ab D6. Für die Edits haben Motzi und ich dieses erweitert. Ich hänge das mal hier dran. Z.B. nur Zahlen zulassen. So was brauche ich nun auch für Anzeigezwecke. Also habe ich das Edit durch ein Label ersetzt. Allerdings klappt das Alignment so nicht. |
Re: 2 Labels verbinden
hmm...
willst du fragen oder vorstellen? ich hab das immer so gemacht, bzw würde es so machen: wenn du deine labels eindeutig benennst, zb lbl_Betrag könntest du sagen:
Delphi-Quellcode:
wenn du verstehst was ich mein...
Lbl_Betrag.Caption:=copy(Lbl_Betrag.Name,4,length(Lbl_Betrag.Name))+inttostr(Betrag)
oder du gibts jedem labenl eine etsprechende variable oder konstante und sachst dann
Delphi-Quellcode:
sag, wenn ich deinen beitrag völlig missverstanden hab...
Label1.Caption:=Prefix_Betrag+inttostr(Betrag)
aber so hab ichs bisher gelöst |
Re: 2 Labels verbinden
Vielen Dank für Deine Antwort. Aber das trifft nicht den Kern der Sache. Es geht eher um "Komponentenentwicklung". Deshalb die Anhänge.
Wie zu erwarten war, ist das etwas, wo kaum Feedback kommt. In dem 2. Label gelingt es mir nicht, dieses mit alRightJustify zu positionieren. 8) |
Re: 2 Labels verbinden
Spätmoin & Gute nacht Moin
ich weiss, dass es das im Moment auch nicht ganz trifft, aber Du kannst mit der API-Funktion TabbedTextOut einen Text mit Tabulatoren ausgeben und das könnte man dann auch in einem Label realisieren. Wenn Du dann noch zwei Captions (left und rigth) einführst, dann hättest Du das alles in einer Komponente.... Grüße // Martin |
Re: 2 Labels verbinden
das hilft alles nichts. Um da dahinter zu kommen muß maß sich den Source ansehen. Das hat kaum einer getan. Ich erzähle trotzdem, was es war : das Alignment habe ich überflüssigerweise nochmals deklariert.
Da es in dem Vorfahr bereits eingeführt wurde, war das einfach überflüssig, bzw. habe ich das selber überschrieben. Im Allgemeinen ist es jedoch erschreckend, zu sehen, wie wenig Beachtung der OOP geschenkt wird, auf der fast alles mittlerweile aufbaut. Nicht einmal die Objektablage wird beachtet. 8) Das ist schon ein großer Nachteil, wenn man etwas kompliziertes sinnvoll programmieren will. |
Re: 2 Labels verbinden
Zitat:
ich erschrecke mehr wenn ich sehe das Du für solche Sachen 2 Labels verwendest. :roll: Mit einer einfachen Verwendung von FORMAT geht das wesentlich eleganter.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var betrag : Double; begin betrag := 15,25 Label1.Caption := Format ('Betrag %f EUR',[betrag]); end; |
Re: 2 Labels verbinden
Also ich versteh das ganze Problem hier auch nicht. Wenn man einfach eine Betrag und eine Währung darstellen will reicht doch ein einfaches Label und das Alignment bei einem Label auf alRightJustify zu stellen funktioniert auch. Ich versteh einfach nicht was hier erreicht werden soll (aufgabenstellung zu ungenau formuliert). Einfach einen Betrag und dahinter die Währung ist es bestimmt nicht denn das wäre ja doch ziemlich einfach und erfordert keine 2 Labels
|
Re: 2 Labels verbinden
2?
Also wenn ich das richtig verstanden hab, dann sind es sogar 3 Label's -.-
Code:
1_____ 2____ 3__
Betrag 10.00 EUR Und das einzige mal, wo ich 2 Label kombiniert hatte, da war das eine Label auf FETT eingestellt. So, und nun zum Thema: Label's aneinander ausrichten (hier mal rechtsbündig)
Delphi-Quellcode:
Label1.Caption := 'Betrag';
Label2.Caption := '10,00'; Label3.Caption := 'Euro'; Label2.Left := Label3.Left - Label2.Width - 3; Label1.Left := Label2.Left - Label1.Width - 3; // die Label's stehen auf // Alignment = taRightJustify // Autosize = true // Top ist bei allen gleich // und das rechte Label ist bereits mit seiner Rechten Kante ausgerichtet // // - 3 ist der Abstand zwischen den Labels |
Re: 2 Labels verbinden
Und was spricht dagegen das alles in einem Label darzustellen und das ganze einfach per Leerzeichen zu trennen?
|
Re: 2 Labels verbinden
nicht's ^^
ich nehme ja auch sowas, wie
Delphi-Quellcode:
, oder wie es unser Sharky vogeschlagen hat.
Label1.Caption := 'Betrag ' + FloatToStr(Betrag) + ' Euro';
PS: @Sharky: bei dir fehlt ein ; :zwinker: |
Re: 2 Labels verbinden
Hi,
es ging ja nicht darum, wie ich ein Label formatiere oder die Captions von 2 Labels an eine dritte übergebe. Zitat:
Ein Programm einfach nur "zusammenzuclicken" geht wohl nur bedingt. Jede Zeile Code selber zu schreiben, das ist auch überflüssig. Jetzt zu dem speziellen Fall hier. Es handelt sich um eine Art Datenblatt. Da stehen 100 Zahlen drauf. Ohne Beschriftung nützen die kaum was. Also brauche ich noch 100 Beschriftungen. Das macht 200 Labels. Die muß ich nun auf der Form genau platzieren. Immer schön Label für Beschriftung links und für den Wert rechts davon. Das Wert Label muß rechtsbündig sein, das Beschriftungslabel linksbündig. Nun noch das ganze auf der Form etwas gruppieren, 2 Spalten und fertig ist. Aber wehe, ich habe 2 Labels verwechselt oder falsch beschriftet. Dann geht die Suche los. Auch die genaue Ausrichtung des Wertes und der Beschriftung ist schon mühsam. Aber es geht schon so ! Rein codebasiert ist es immer schwierig, sich das anhand des Quelltextes schon vorzustellen, wie es denn später aussieht. Insbesondere, wenn die Zahlen nicht nur untereinander stehen, sondern in Tabellenform. So nach dem Motto "try and error" Außerdem : wozu dann überhaupt eine IDE ? Meine Komponentenlösung hat nun folgende Vorteile : ich ziehe immer noch 100 Labels auf die Form, ABER : es sind speziell angepaßte. Die Beschriftung ist bereits linksbündig eingestellt und der Wert rechtsbündig. Schließlich kann ich meine Vorgaben verwenden und nicht die von Delphi. Vor allem aber gehören sie zusammen. Postioniere ich gerne einen Wert woanders hin, so wandert die Beschriftung automatisch mit. Jetzt mache ich folgende Rechnung auf : zusammenclicken, beschriften, ausrichten der Labels und andere langweilige Arbeiten : 1 Tag. Zusammentippen, ca. dasselbe, eher etwas mehr. Wie lange habe ich jetzt gebraucht ? Halb solange, 4 St. für alles. Davon ist der Umbau der Komponente mit 0,5 St. anzusetzen. Eines ist hierbei auch nicht zu vergessen : für eine Form mit 3 Labels hätte ich keine eigene Komponente gebastelt. Allerdings ist diese ja jetzt fertig. Es spricht also ab sofort nichts dagegen, auch in solchen Fällen seine eigene Komponente zu benutzen. |
Re: 2 Labels verbinden
uj, 100 Labels? dann würde ich die aber zur Laufzeit dynamich erstellen in einer Schleife und somit kann auch für alle labels die Left-Eigenschaft ganz leicht auf den gleichen Wert gesetzt werden. Aber ich will ich nicht von deiner Komponente abbringen... Hast du Autosize von den Labels auf False? Ansonsten bringt ja das alignment setzen auch nichts.
|
Re: 2 Labels verbinden
Zitat:
Bei mir klappes immer, egal ob Autosize True, oder False ist. |
Re: 2 Labels verbinden
Das Problem an sich ist ja sowieso bereits gelöst. Und wie gesagt, dynamisch erzeugen ist auch recht mühsam. Und ganz um die VCL komme ich sowieso nicht rum.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 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 by Thomas Breitkreuz