AGB  ·  Datenschutz  ·  Impressum  







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

Caption vertikal zentrieren

Ein Thema von MarvinM · begonnen am 15. Jan 2009 · letzter Beitrag vom 18. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von MarvinM
MarvinM

Registriert seit: 24. Jul 2006
94 Beiträge
 
#1

Caption vertikal zentrieren

  Alt 15. Jan 2009, 11:32
Hallo zusammen,

ich stelle mir z.Zt. die Frage, wie es möglich ist, in einem TBitBtn die Caption vertikal zu zentrieren. In dem Fall bei einer TButtonList.

Ich bin mir sicher, dass die Antwort trivial ist, aber die Forensuche konnte mir nicht helfen

Danke!
Mfg Marvin

Carpe Diem! - Genieße den Tag! - [gr. Horaz]
> Meine Homepage - http://www.prettyprograms.de <
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.883 Beiträge
 
Delphi 12 Athens
 
#2

Re: Caption vertikal zentrieren

  Alt 15. Jan 2009, 11:46
Paint überschreiben
Andreas
Monads? Wtf are Monads?
  Mit Zitat antworten Zitat
mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Caption vertikal zentrieren

  Alt 15. Jan 2009, 16:49
Schau dir mal dazu die Methode: TextRect an. Die bietet einige nette Möglichkeiten dazu.
Am besten eine neue Klasse erstellen, die diese Funktion aufweist.
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Benutzerbild von MarvinM
MarvinM

Registriert seit: 24. Jul 2006
94 Beiträge
 
#4

Re: Caption vertikal zentrieren

  Alt 18. Jan 2009, 15:14
Ok, also das muss in das Ereignis OnDrawButton rein, soviel ist klar.
Dann muss ich wahrscheinlich sehen, wie viele Zeilenumbrüche die Caption enthält und dementsprechend um n * Höhe_Zeile / 2 die Caption nach oben verschieben. Nur wie mache ich das? Ich werde aus den hier im Forum genannten Beispielen nicht schlau...

Danke für Eure Hilfe!
Mfg Marvin

Carpe Diem! - Genieße den Tag! - [gr. Horaz]
> Meine Homepage - http://www.prettyprograms.de <
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#5

Re: Caption vertikal zentrieren

  Alt 18. Jan 2009, 15:24
Canvas.TextLength, Canvas.TextHeight und Canvas.TextExtent rechnen inclusive Zeilenumbruch (TextHeight ist also die höhe aller Zeilen zusammen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von MarvinM
MarvinM

Registriert seit: 24. Jul 2006
94 Beiträge
 
#6

Re: Caption vertikal zentrieren

  Alt 18. Jan 2009, 15:46
Ich glaube mir steht wer auf der Leitung...

Ich habe jetzt mal mit Canvas.TextHeight rumprobiert und als Parameter mal ein, zwei und dreizeilige Strings eingefügt, aber immer kommt 13 als Höhe heraus, was nicht wirklich logisch ist
Mfg Marvin

Carpe Diem! - Genieße den Tag! - [gr. Horaz]
> Meine Homepage - http://www.prettyprograms.de <
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#7

Re: Caption vertikal zentrieren

  Alt 18. Jan 2009, 15:49
ich glaub jetzt steh ich auf'm Schlauch ... dachte eigentlich das wäre Zeilenabängig
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von MarvinM
MarvinM

Registriert seit: 24. Jul 2006
94 Beiträge
 
#8

Re: Caption vertikal zentrieren

  Alt 18. Jan 2009, 15:53
Ich hab den folgenden "Test-Code" gebastelt:
Button6.Caption := IntToStr(Canvas.TextHeight('hallo' + slinebreak + 'hallo')); Und egal wie viele sLineBreaks da drin sind, es kommt immer 13 raus.

PS: 42 wäre auch interessant
Mfg Marvin

Carpe Diem! - Genieße den Tag! - [gr. Horaz]
> Meine Homepage - http://www.prettyprograms.de <
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#9

Re: Caption vertikal zentrieren

  Alt 18. Jan 2009, 16:01
auch grad getestet ... muß ich ja eines meiner Programme mal schnell durchsehn/überarbeiten.

noch ungetestet!
Delphi-Quellcode:
Function TextExtentEx(Canvas: TCanvas; S: String): TSize;
  Var S2: String;
    i, i2: Integer;
    ts: TSize;

  Begin
    Result.cx := 0;
    Result.cy := 0;
    While S <> 'do Begin
      i := Pos(#13, S);
      i2 := Pos(#10, S);
      If (i > 0) and (i2 > 0) and (i2 < i) Then i := i2;
      If i = 0 Then i := Length(S) + 1;
      S2 := Copy(S, 1, i - 1);
      If Copy(S, i, 2) = #13#10 Then Delete(S, 1, i + 1)
      Else Delete(S, 1, i);
      If S2 <> 'Then Begin
        ts := Canvas.TextExtent(S2);
        Result.cx := Max(ts.cx, Result.cx);
        Inc(Result.cy, ts.cy);
      End Else Begin
        ts := Canvas.TextExtent('X');
        Inc(Result.cy, ts.cy);
      End;
    End;
  End;

Function TextWidthEx(Canvas: TCanvas; Const S: String): Integer;
  Begin
    Result := TextExtentEx(Canvas, S).cx;
  End;

Function TextHeightEx(Canvas: TCanvas; Const S: String): Integer;
  Begin
    Result := TextExtentEx(Canvas, S).cy;
  End;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von MarvinM
MarvinM

Registriert seit: 24. Jul 2006
94 Beiträge
 
#10

Re: Caption vertikal zentrieren

  Alt 18. Jan 2009, 16:13
Danke für Deine Mühe!

Aber mir erschließt sich noch nicht ganz wie ich diese Funktionen aufrufen muss, stellen die einen Ersatz zu den Standard-Funktionen dar?
Mfg Marvin

Carpe Diem! - Genieße den Tag! - [gr. Horaz]
> Meine Homepage - http://www.prettyprograms.de <
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:30 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