realbasic-nug.de
[Top] [All Lists]

Re: Listboxzellen einf ä rben

To: REALbasic NUG German <realbasic-nug dot de at lists dot realsoftware dot com>
Subject: Re: Listboxzellen einf ä rben
From: "info at it-rosenowski dot de" <info at it-rosenowski dot de>
Date: Fri, 06 Oct 2006 12:22:39 +0200
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot de at lists dot realsoftware dot com
Organization: IT-Rosenowski
References: <C14AC894 dot 2175D%andy at foxwerk dot de> <b18bc98de3b960820a6e319f9c5e10ed at macnews dot de> <3242968784 dot 46505919735 at [192 dot 168 dot 178 dot 135]> <452614BB dot 1070202 at it-rosenowski dot de> <31e9c54873d3ebbcd38ffb2be32c2419 at macnews dot de>
Hallo Enno,
jetzt mal ganz vom Anfang an.
Nimm dir ein neues Fenster und zieh dir eine Lisbox drauf.
Dieser gibst du als ColumnCount eine 4 und stellst bei den Gridlines einen Wert ein(damit man die Zellen sieht). Alles andere läßt du so wie es initial ist.
Im Open Event der Listbox schreibst du folgendes:

######################################################
  dim iCounter,iCounter2 As Integer
  me.DefaultRowHeight=me.Height/5
  for iCounter=0 to 5
    me.AddRow ""
    for iCounter2=0 to 3
      me.CellTag(me.LastIndex,iCounter2)=&Cffff00
    next
  next
#######################################################
Damit werden 5 Reihen erzeugt deren Celltag die Farbe GELB enthalten.

Im CellbackgroundPaint schreibst du dann folgendes:

###################################################
  if row<me.ListCount then
    g.ForeColor=me.CellTag(row,column)
    g.FillRect 0,0,g.Width,g.Height
    return true
  end if
###################################################

Wir holen uns die Farbe aus dem Celltag und füllen das Rechteck damit.
Ausprobieren und es müßten alle Zellen in den 5 Reihen gelb sein.

Nun kommen wir zum CellClick.
Hier schreibst du das:

###################################################
  if me.CellTag(row,column)<>&cffff00 then
    me.CellTag(row,column)=&cffff00
  else
    me.CellTag(row,column)=&cff0000
  end if
  return true
###################################################

Hier sagen wir einfach ist die Farbe im CellTag nicht gelb dann schreibe darein die Farbe Gelb. Ist sie dahingegen Gelb dann schreiben wir rot rein.

Nun kannst du in der List box klicken wie du willst. ist es ein gelbes Feld wird dieses Rot und wenn es rot ist wird es gelb. Und alle anderen Felder behalten ihre Farbe.

So jetzt mußt du nur noch ein paar Sicherheiten drumrum bauen.

LG Rossi


Enno Bussmann schrieb:

Am 06.10.2006 um 10:32 schrieb info at it-rosenowski dot de:

Alternativ kann man auch die Farbe in Listbox.CellTag(row,column) hinterlegen.
Dadurch bleibt der Zelltext unberührt.

MfG Rossi


Hallo Rossi,

was ich bislang noch nicht geschafft habe ist, dass die information beim nächsten cellclick erhalten bleibt, dass also die zelle(1,1) wenn ich auf die zelle (1,2) klicke weiterhin ihren farbigen zellhintergrund behält. Irgendwas habe ich offenkundig noch nicht verstanden :-((

enno





--
IT-Rosenowski
Inh.: Jörg Rosenowski
Tauchaer Straße 232
04349 Leipzig

Tel.:   +49 341 9211655
Funk:   +49 179 6956858

http://www.it-rosenowski.de     info at it-rosenowski dot de


<Prev in Thread] Current Thread [Next in Thread>