Autor Beitrag
Rachel_Hannah
Hält's aus hier
Beiträge: 11



BeitragVerfasst: So 13.05.07 00:11 
hi,
gibt es in delphi die möglichkeit ne listbox so zu formatieren, dass sie rechtsbündig beschrieben wird?
Danke schon mal für eure tipps
John Sanson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72

WinXP,WinVista
Delphi(BDS2006, 5), C#(VS2005, BDS2006), VB6
BeitragVerfasst: So 13.05.07 00:47 
Titel: Rechtsbündig
jo das geht.

1. Style der ListBox auf lbOwnerDrawFixed stellen.

2. Folgenden Code im OnDrawItem Event der ListBox packen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
var
  l: Integer; 
  t: String;
begin
  with ListBox1 do
  begin
    Canvas.FillRect(Rect);
    t := Items[Index]; 
    l := Rect.Right - Canvas.TextWidth(t) - 1;
    Canvas.TextOut(l, Rect.Top, t);
  end;
end;


PS. Ausrichtung wird erst in der Laufzeit sichtbar.
Rachel_Hannah Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: So 13.05.07 02:10 
hab das jetzt mal übernommen, aber leider bleibt das ganze nach wie vor linksbündig
Comp-Freak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89



BeitragVerfasst: So 13.05.07 03:08 
1. Style der ListBox auf lbOwnerDrawFixed stellen.

hast du das gemacht?
Edit: habs gerade ausprobiert. Klappt Doch! Oder?
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: So 13.05.07 09:09 
Hallo,

setz mal einen Haltepunkt in die Prozedur.
Die Prozedur dem Ereignis OnDraw zugewiesen?

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
John Sanson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72

WinXP,WinVista
Delphi(BDS2006, 5), C#(VS2005, BDS2006), VB6
BeitragVerfasst: So 13.05.07 12:12 
Heisst deine ListBox vielleicht nicht ListBox1?
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: So 13.05.07 12:28 
Da würd das ganze aber gar nicht erst kompilieren.
Und das tut es ja anscheinend.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Comp-Freak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 89



BeitragVerfasst: So 13.05.07 12:48 
Villeciht hat er ja mehrere listobxen? aber er sollte doch dann merken das etwas schief ging .... lass uns mahl abwarten :)
Rachel_Hannah Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: So 13.05.07 13:17 
er ist eine sie :-)
den namen der listbox hab ich schon angepasst gehabt, bin ja nur ein bisschen blöd, nicht ganz. wie ruf ich denn ondraw auf, der haltepunkt hat den ursprung allen übels auffliegen lassen, aber ich kanns nicht beheben.
John Sanson
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72

WinXP,WinVista
Delphi(BDS2006, 5), C#(VS2005, BDS2006), VB6
BeitragVerfasst: So 13.05.07 13:33 
Du musst in deinem Objekt Inspector Fenster auf Events bzw. Ereignisse klicken und OnDrawItem auswählen. Dann wird automatisch in die Codeansicht gewechselt und du kannst den Code einfügen.
Rachel_Hannah Threadstarter
Hält's aus hier
Beiträge: 11



BeitragVerfasst: So 13.05.07 19:02 
hmm, komisch ich dachte, dass hätte ich schon gemacht, aber jetzt klappts auf jeden fall, vielen dank, habt mir echt geholfen!
lg
rachel