| Autor |
Beitrag |
patrick dee
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Do 30.01.03 13:27
hi
ich habe zwei fragen zur listbox :
1 ) kann man eine zeile farblich zeigen, ohne draw item zu benutzen ?
beispiel :
kommt in der listbox das wort MERKE vor so soll diese zeile imme gelb sein oder kommt der eintrag 00:00:00 vor, soll diese zeile immer rot sein.
ich kann das draw item nicht verwenden da sonst meine tabulatoren nicht mehr richtig angezeigt werden.
2) Wei stelle ich es an das wenn ich die listbox inhalte lade und in der liste das wort Kontakt vorkommt dieses gelöscht wird ???
danke für eure hilfe
patrick
_________________ Glauben heißt nichts wissen ...
Zuletzt bearbeitet von patrick dee am Do 30.01.03 14:20, insgesamt 1-mal bearbeitet
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 30.01.03 14:10
zu 1.) Nein.
zu 2.)
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var i : Integer; s : String; begin for i := Listbox1.Items.Count downto 0 do begin s := Listbox1.Items.Strings[Listbox1.ItemIndex] if s := 'Kontakt' then Listbox1.Items.Delete(i); end; |
PS: Das nächste mal kannst du ruhig etwas mehr Mühe verwenden beim Erstellen eines Beitrages. Deiner enthielt so viele Fehler (Grammatik und Rechtschreibung), dass er fast unleserlich ist.  Du erwartest von uns doch auch, dass wir dir eine verständliche Antworte geben, also dürfte es wohl nicht zu viel verlangt sein, das selbe auch von dir zu erwarten. 
|
|
Teutobod
      
Beiträge: 55
|
Verfasst: Do 30.01.03 14:28
Quelltext 1:
| if s := 'Kontakt' then |
sollte in
if s = 'Kontakt' then
geändert werden
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Do 30.01.03 14:31
sorry, habe da etwas geschludert - tut mir leid
musste aber weg vom pc da daddy ran wollte.
danke trotzdem für die hilfe.
blöd das mit dem einfärben. wenn ich nun doch das drawitem verwende, wie krige ich das mit den tabulatoren hin ? habe eine liste und wenn ich enter drücke wird ein eintrag aus der liste in eine edit geladen und am rechten rand erscheint dann die uhrzeit. hat da jemand ein brauchbares rezept für mich ?
wäre ja möglich
danke
patrick 
_________________ Glauben heißt nichts wissen ...
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Do 30.01.03 14:34
| Teutobod hat folgendes geschrieben: | Quelltext 1:
| if s := 'Kontakt' then |
sollte in
if s = 'Kontakt' then
geändert werden |
Hmpf. Da hat irgendwer den Forums-Debugger abgeschaltet.
Wie wäre es mit einem Listview? Da kannst du Spalten nehmen zum Darstellen der Werte.
|
|
smiegel
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: Do 30.01.03 14:42
Hallo,
schau Dir einmal die Funtion DrawText der WinApi an.
Eine Möglichkeit mit DrawText das zu realisieren könnte folgendermaßen aussehen:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var x:Integer; s:String; begin with TListBox(Control), Canvas do begin if (System.Pos('MERKE', Items[Index])>0) then Brush.Color:=clYellow else if (System.Pos('00:00:00', Items[Index])>0) then Brush.Color:=clRed else Brush.Color:=clWhite; x:=System.Pos(#9, Items[Index]); if (x>0) then begin s:=System.Copy(Items[Index], 1, x-1); TextRect(Rect, Rect.Left, Rect.Top, s); s:=System.Copy(Items[Index], x+1, 255); TextOut(Rect.Top, Rect.Right-TextWidth(s)-5, s); end else TextRect(Rect, Rect.Left, Rect.Top, Items[Index]); end; // with end; |
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Zuletzt bearbeitet von smiegel am Do 30.01.03 17:30, insgesamt 1-mal bearbeitet
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Do 30.01.03 14:45
jo listview den tip hatte ich schon mal aber da blicke gar nicht durch.
meine listen sind text files werden geladen über das tages datum.
das mit listview ging nicht bei mir da ich ja immer diesen glaube ich delimiter brauche 'I' damit listview weiss von wo bis wohin der eintrag pro
zeile geht bzw zelle. da die listen fertig sind kann ich die nun nicht mehr ändern.
patrick
_________________ Glauben heißt nichts wissen ...
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Do 30.01.03 14:46
danke smiegel
das werde ich mal versuchen ... 
_________________ Glauben heißt nichts wissen ...
|
|
patrick dee 
      
Beiträge: 311
Win 98SE, WinXP
D3,D6
|
Verfasst: Do 30.01.03 16:39
also ein wort löschen aus der liste wie oben genannt KONTAKT geht bei so nicht. nun ein bischen code von mir. so lade ich die listen
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| procedure TfMain.btnLadeListeClick(Sender: TObject); var datum, s : string; i : integer; begin datum:= FormatDateTime('dd-mm-yy',NOW);
with Playliste do begin BeginUpdate; Clear; LoadFromFile( Tools_Form.Edit1.text + datum + '.ld1' ); EndUpdate; end; Stunde_Form.Show; PRGPanel.Caption := ' P 1 '; If ListBox1.ItemIndex = -1 then exit; end; |
so wähle ich in einer combobox die stunde aus :
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| procedure TfMain.ComboBox1Change(Sender: TObject); var Found : boolean; i : integer; s : string; begin Found := False; if( ComboBox1.Text = '24 Uhr' )then begin with ListBox1.Items do begin BeginUpdate; Clear; for i := 0 to Playliste.Count - 1 do Add( Playliste.Strings[ i ]); EndUpdate; end; Abort; end; i := 0; with ListBox1.Items do begin BeginUpdate; Clear; while not Found and( i < Playliste.Count )do begin if( Pos( ComboBox1.Text, Playliste.Strings[ i ]) > 0 )then begin Inc( i ); while not( Pos( ' Uhr', Playliste.Strings[ i ]) > 0 )do begin Add( Playliste.Strings[ i ]); Inc( i ); end; Found := True; end else Inc( i ); end; inc (i); ListBox1.ItemIndex := 3; //Position in der Liste 3 Stelle EndUpdate; end; end; // ComboBox1Change |
und wenn ich die liste lade sollten die zeilen die mit Kontakt,Bereich,Weiteres gelöscht erden.
ich hoffe das ihr mir helfen könnt
gruß
patrick
_________________ Glauben heißt nichts wissen ...
|
|
smiegel
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: Do 30.01.03 17:37
Hallo,
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31:
| const zumLoeschen:array[0..2] of String=('Kontakt', 'Bereich', 'Weiteres');
procedure TfMain.btnLadeListeClick(Sender: TObject); var datum, s : string; i, j : integer; begin datum:= FormatDateTime('dd-mm-yy',NOW);
with Playliste do begin BeginUpdate; Clear; LoadFromFile( Tools_Form.Edit1.text + datum + '.ld1' ); // ab hier, die überflüssigen Einträge löschen: for i:=Count-1 downto 0 do begin for j:=0 to 2 do if (System.Pos(zumLoeschen[j], Strings[i])>0) then begin Delete(i); Break; end; // for j end; // for i // ---- EndUpdate; end; Stunde_Form.Show; PRGPanel.Caption := ' P 1 '; If ListBox1.ItemIndex = -1 then exit; end; |
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
|