![]() |
Zeilenumbruch im Speedbutton
Also ich such jetzt seit über ner stunde ne möglichkeit um einen zeilenumbruch in einen speedbutton einzufügen.
alles was ich find sind immer wieder die aussagen das das geht, aber nirgens WIE! Kann mir da jemand weiterhelfen? Wie es in nem normalen Button geht oder in nem Label weiss ich bereits, dies jedoch läßt sich nicht auf einen speedbutton anwenden. Hoffe auf schnelle antwort, Danke schonmal :-D PS: ich probiers grad mit Delphi6 aufm Laptop, in ner woche sitz ich wieder an meinem PC mit delphi7... |
Re: Zeilenumbruch im Speedbutton
Wenn du weißt, wie es mit einem Label geht, dann frage ich mich, warum du es nicht einfach mal genauso bei einem SpeedButton ausprobiert hast? :?
Delphi-Quellcode:
SpeedButton1.Caption := 'erste Zeile' + #13#10 + 'zweite Zeile';
|
Re: Zeilenumbruch im Speedbutton
Also ich nutze eine vom SpeedButton abgeleitete variante, den OvalButton. Der hat allerdings komplett dieselben Eigenschaften wie der Speedbutton (zumindest soll es so sein, aber man weiss ja nie)
Wenn ich es nun so probiere (und das habe ich bereits mehrfach getan) kommt kein Umbruch, sondern die Zeichen für unbekannte Zeichen, also 2 solche Balken... ich verzweifel hier ein wenig...weil mir das grad nen komplettes programm versauen könnte... edit:ok, ich habs grad mit nem richtigen speedbutton probiert (vertrauen ist gut...frühere kontrolle wäre besser gewesen) damit gehts...damit steht fest das dieser ovalbutton NICHT 100% die eigentschaften des speedbutton umsetzt. Ich hab die Komponente von der Seite ![]() kann ich evtl. ein label erzeugen das genauso aussieht wie solch ein ovaler button? dann könnte ich das so lösen und müsste mich nicht weiter mit der fehlenden funktionaltität dieses Ovalbuttons rumärgern... |
Re: Zeilenumbruch im Speedbutton
Zitat:
Ist der Quellcode dabei, dann kannst du das ja noch selber ändern. Ansonsten einfach mal den Autor anschreiben und nachfragen. |
Re: Zeilenumbruch im Speedbutton
Naja ich hab halt zu sehr darauf vertraut das die funktionen wirklich gleich sind. Deshalb fragte ich nach dem speedbutton und nicht nach dem unbekannten ovalbutton :?
der quellcode ist dabei, aber was genau muss ich da ändern? ganz sooo tief steck ich dann doch nicht in der materie... ich will jetzt nicht den ganzen quellcode hier kopieren, ist ziemlich lang. vllt kannst du dir ja das ding bei ![]() hoffe ich geh dir nicht zu sehr auf die nerven :roll: |
Re: Zeilenumbruch im Speedbutton
huhu...keiner ne idee wie ich das einbinden kann? :)
|
Re: Zeilenumbruch im Speedbutton
Vielleicht hilft
![]() |
Re: Zeilenumbruch im Speedbutton
Zitat:
@ TRF: ich habe mal kurz in die OvalBtn.pas reingeschaut. Dort findest Du
Delphi-Quellcode:
Entscheidend dürfte das DT_SingleLine sein, was eine einzeilige Ausgabe erzwingt. Das ließe sich wahrscheinlich durch DT_WORDBREAK ersetzen. Dann kann es aber zu Darstellungsproblemen kommen, denn die Kompo orientiert sich ausschließlich an der Breite, nicht aber an der Höhe des Ausgabetextes.
{ Caption zeichnen }
if Caption<>'' then begin {Position ermitteln} TextLeft:=(width-TextWidth(Caption)) shr 1; if Assigned(FGlyph) and (FNumGlyphs>0) and (FLayout=blGlyphRight) then TextLeft:=Dest.Left-TextWidth(Caption)-FSpacing; if Assigned(FGlyph) and (FNumGlyphs>0) and (FLayout=blGlyphLeft) then TextLeft:=Dest.Left+outWidth+FSpacing; TextTop:=(height-TextHeight(Caption)) shr 1; if Assigned(FGlyph) and (FNumGlyphs>0) and (FLayout=blGlyphTop) then TextTop:=Dest.Top+outHeight+FSpacing; if Assigned(FGlyph) and (FNumGlyphs>0) and (FLayout=blGlyphBottom) then TextTop:=Dest.Top-TextHeight(Caption)-FSpacing; if FState=-1 then begin inc(TextTop); inc(TextLeft); end; {Text ausgeben} if FTransparent then Brush.Style:=bsClear else begin Brush.Style:=bsSolid; Brush.Color:=Color; end; if FState=-1 then { verbleibende Up-Reste löschen } FillRect(Rect(TextLeft, TextTop, TextLeft+TextWidth(Caption), TextTop+TextHeight(Caption))) else { verbleibende Down-Reste löschen } FillRect(Rect(TextLeft+1, TextTop+1, TextLeft+1+TextWidth(Caption), TextTop+1+TextHeight(Caption))); TextR:=Rect(TextLeft, TextTop, TextLeft+TextWidth(Caption), TextTop+TextHeight(Caption)); StrPCopy(outText,Caption); if not Enabled then Font.Color:=clGrayText; DrawText(Handle, outText, length(Caption), TextR, DT_SingleLine); end; Grüße, Messie |
Re: Zeilenumbruch im Speedbutton
Liste der Anhänge anzeigen (Anzahl: 1)
könnte es daran liegen?
Delphi-Quellcode:
->
DrawText(Handle,
outText, length(Caption), TextR, DT_SingleLine);
Delphi-Quellcode:
habe die geänderte OvalBtn.pas mal angehängt.
DrawText(Handle,
outText, length(Caption), TextR, DT_Wordbreak); ![]() Grüße Klaus [edit] zu spät gesehen, das messie schon etwas dazu geschrieben hatte [/edit] |
Re: Zeilenumbruch im Speedbutton
Zitat:
Gruesse, Lizzy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 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