AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

ListBox

Ein Thema von value is NULL · begonnen am 6. Jun 2014 · letzter Beitrag vom 8. Jun 2014
Antwort Antwort
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#1

AW: ListBox

  Alt 6. Jun 2014, 09:19
Hä? xD ... Sorry vermutlich ne Blockade gerade:

Für mich klang das so, als würde dieses Event nur aufgerufen, wenn ich ein neues Item hinzufüge zB Listbox1.Items.Add('WasAuchImmer');
Aber die Werte sind ja bereits in der Liste die ich dann mit folgender Schleife durchlaufe:

Delphi-Quellcode:
while i < Form1.ListBox1.Count do begin
    userId := sqlst.query('select id from user_ where username = '''+Form1.listbox1.Items[i]+'''');
    //user not found
    if userId = 'then //Change Color of current line - cLYellow
    i := i + 1;
end;
Sorry das ich mich gerade so "blöd" anstelle ^^... rufe ich das Event dann erneut auf? Sprich manuell? oder wie ...
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: ListBox

  Alt 6. Jun 2014, 09:23
Erspar dir doch ein paar Fragen indem du dir das Event mal anschaust und rumprobierst..
Dann erübrigt sich dein letzter Post.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.876 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: ListBox

  Alt 6. Jun 2014, 09:23
Bei jedem Zeichnen eines Eintrags (wird pro Eintrag aufgerufen).
Erzwinge ein Neuzeichnen der ListBox
Markus Kinzler
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#4

AW: ListBox

  Alt 6. Jun 2014, 09:37
Ich checks nicht :/
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#5

AW: ListBox

  Alt 6. Jun 2014, 09:41
Wenn ein Eintrag gezeichnet werden muss (z.B. weil gescrollt wurde), wird das OnDrawItem (wieso heißt das wohl so?) ausgeführt.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: ListBox

  Alt 6. Jun 2014, 09:45
Nehmen wir mal den Code zur Hand und ändern den ein wenig :

Delphi-Quellcode:
procedure TForm1.ListBox1DrawItem
    (Control: TWinControl; Index: Integer;
    Rect: TRect; State: TOwnerDrawState) ;
 var
    myColor: TColor;
    myBrush: TBrush;
 begin
    myBrush := TBrush.Create;
    with (Control as TListBox).Canvas do
    begin
(* das machen wir raus
      if not Odd(Index) then
        myColor := clSilver
      else
        myColor := clYellow;
*)

      // und das machen wir stattdessen rein
      If InDB(Index) then // die Funktion InDB musst dann noch schreiben, diese schaut in der DB nach und gibt True zurück wenn der Item in der DB gefunden wurde
        myColor := clYellow
      else
        myColor := clWhite;
        
      myBrush.Style := bsSolid;
      myBrush.Color := myColor;
      Windows.FillRect(handle, Rect, myBrush.Handle) ;
      Brush.Style := bsClear;
      TextOut(Rect.Left, Rect.Top,
              (Control as TListBox).Items[Index]) ;
      MyBrush.Free;
    end;
 end;
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#7

AW: ListBox

  Alt 6. Jun 2014, 09:51
Das heisst ich müsste eigentlich meinen Programm Aufbau ändern. Aktuell lasse ich die Liste zuerst anlegen und prüfe dann erst
die Datenbank. So müsste ich praktisch bei jedem "Add Item" gleich prüfen habe ich das jetzt richtig verstanden?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.659 Beiträge
 
Delphi 12 Athens
 
#8

AW: ListBox

  Alt 6. Jun 2014, 09:57
IMO müsste es genügen, ein Neuzeichnen der ListBox zu erzwingen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#9

AW: ListBox

  Alt 6. Jun 2014, 10:00
@baumina
Mit dieser Funktion müsste ich den Programmaufbau komplett ändern, das wäre zuviel Aufwand :/

@DeddyH
Da ich leider kein UI Spezi bin: Wie würde ich eine Listbox neu zeichnen?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: ListBox

  Alt 6. Jun 2014, 10:54
Hat eigentlich schon jemand erwähnt, daß der Threadtitel absolut nichts zum Problem aussagt?

Und ja, es gibt schon massig Themen, wo irgendwer irgendwelche Probleme mit seiner ListBox hat.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:19 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