![]() |
Listbox, bei Überschrift-klick kommt ausführlicher Bericht
Guten Abend Leute,
zur späten Stunde habe ich noch eine Frage. Ich habe eine Listbox wie hier: ![]() Der einzige unterschied ist, dass ich noch ein weiteres EDIT-FELD habe, wo ich eine ausführliche Beschreibung einer Sache schreibe. Ich will, dass es in der Listbox nur die "Überschrift" die ich in Edit1 eingebe sichtbar ist, aber wenn ich es anwähle will ich,dass ich die genaue Beschreibung sehe. Wie kann ich das machen? lg Kingsusu Edit: Crosslink: ![]() |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Guck dir mal die Methode von Items
![]() |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Kingsusu,
Soll sich der Text des Eintrags ändern, wenn du ihn anklickst? Habe ich das richtig verstanden? Für dein Vorhaben würde ich eher zu einem TreeView tendieren. Das ist das, was der Windows-Explorer nutzt, um die Verzeichnisse anzuzeigen. Da kannst du die Überschriften darstellen und wenn man auf das zugehörige Plus-Zeichen klickt, klappt der Beschreibungstext auf. Edit: Bild angehängt. |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Zitat:
Mein Ziel ist es, dass ich einen Terminkalender mache. Ich habe Listbox mit einer "Überschrift" , wenn man diese anklickt sieht man die genaue Beschreibung des Termins und die ausgewählte Zeit. Und wenn diese ausgewählte Zeit eintrifft, dann kommt ein lauter Alarm! :) Ist es mit deiner Methode einfach? (Bin neu hier :-) ) Oder gibts da was leichteres? lg |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Wie schon in einem anderen Post erwähnt gib bitte den
![]() |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Am Besten erstellst du erst Crossposts, wenn in einem Thema nach 12 Stunden noch keine Antwort da ist. Da vergeht mir komplett die Lust zu helfen, daher halte ich mich nun auch sehr kurz. :?
Delphi-Quellcode:
Es wäre dann sinnvoll, im DF Bescheid zu geben, dass das Problem geklärt ist. Sonst rackern sich dort auch welche ab und tippseln Code, obwohl alles bereits geklärt ist.
// Hinzufügen von Terminen
procedure AddEvent(EventName: string; EventDescription: string; TView: TTreeView); var TreeNode: TTreeNode; begin TreeNode := TView.Items.AddFirst(nil, EventName); TView.Items.AddChild(TreeNode, EventDescription); // oder als (etwas unübersichtlicher) 1-Zeiler: // TView.Items.AddChild(TView.Items.AddFirst(nil, EventName), EventDescription); end; // Möglicher Aufruf procedure TForm1.Button1Click(Sender: TObject); begin AddEvent('Termin 1', 'Kaktus gießen, bevor er vertrocknet *g*', TreeView1); end; Tutorials zum TTreeView gibt's übrigens ![]() |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Oh sorry, wieder vergessen mit dem Crosslink :wall: - bins noch nicht gewöhnt.
Aber danke für die Antworten. Wäre es also auch möglich das hier zu machen?
Delphi-Quellcode:
Und mein Edit1 ist die Überschrift und Edit2 die Beschreibung.
// Möglicher Aufruf
procedure TForm1.Button1Click(Sender: TObject); begin AddEvent(edit1.text, edit2.text, TreeView1); end; |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Natürlich.
Und lass die Crossposts am Besten komplett sein. Mit oder ohne Link, ich persönlich schreibe in diesen Themen aus Prinzip schon selten. |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Kann ich dann auch eine Zeit und ein Datum einbinden?
Die Zeit erstelle ich mit einem Timerpicker und das Datum mit einem Datepicker. |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Liste der Anhänge anzeigen (Anzahl: 1)
So ich benutze nun den Treeview. - hier ein Dankeschön an Matze.
Und eine IniDatei. Hier der Code
Delphi-Quellcode:
procedure AddEvent(EventName: string; EventDescription: string; TView: TTreeView); var TreeNode: TTreeNode; begin TreeNode := TView.Items.AddFirst(nil, EventName); TView.Items.AddChild(TreeNode, EventDescription); end; Und für das lesen habe ich
Delphi-Quellcode:
klappt alles super, bis auf die zeit, die ich nicht lesen kann. Diese Zeit kann ich aber in einer Listbox anzeigen lassen mit diesem Code. procedure TFRemember.Button2Click(Sender: TObject); var filename, beschreibung:string; begin filename := Extractfilepath (application.ExeName) + 'test.ini'; if fileexists(filename) then AddEvent(readfromini (filename, 'Myvars', 'Überschrift'), readfromini (filename, 'Myvars', 'Beschreibung'),TreeView1); Beschreibung := readfromini(filename, 'Myvars', 'Beschreibung') + ' (' + readfromini(filename, 'Myvars', 'Zeit') + ')'; end; Zur Veranschaulichung habe ich ein Bild hochgeladen, dieses ist aber ein bisschen unübersichtlich, da ich noch mitten drin bin. Das Blaue symbolisiert das was in der Treebox erscheinen muss. Das rote das was in dem Listview erscheint Das ist der Code, der für die Zeit zuständig ist.
Delphi-Quellcode:
listbox1.items[listbox1.ItemIndex]:=readfromini (filename, 'Myvars', 'Zeit'); Und jetzt zu meiner Frage: Wieso sehe ich dir Zeit beim Treeview nicht? |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Du solltest versuchen zu verstehen was du da zusammen kopierst, sonst wirst du nie glücklich. Die Variable "Beschreibung" nutzt du in deinem Code nicht. Du weist ihr lediglich einen Wert zu, doch die Ausgabe fehlt.
Denkbar wäre so etwas:
Delphi-Quellcode:
Das sollte hinter die Beschreibung in Klammern eingeschlossen die Zeit anfügen.
Beschreibung := readfromini(filename, 'Myvars', 'Beschreibung') + ' (' + readfromini(filename, 'Myvars', 'Zeit') + ')';
AddEvent(readfromini(filename, 'Myvars', 'Überschrift'), Beschreibung, TreeView1); Oder du machst es untereinander:
Delphi-Quellcode:
Wie man das aufrufst, kriegst du selbst heraus.
procedure AddEvent(EventName: string; EventDescription: string; EventDate: string; TView: TTreeView);
var TreeNode: TTreeNode; begin TreeNode := TView.Items.AddFirst(nil, EventName); TView.Items.AddChild(TreeNode, EventDescription); TView.Items.AddChild(TreeNode, EventDate); end; Grüße, Matze |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Super klappt alles wunderbar.
Delphi-Quellcode:
Dieser Code ist nun richtig. Als Zusatz zeige ich noch das Datum an.procedure TFRemember.Button2Click(Sender: TObject); var filename, beschreibung:string; begin filename := Extractfilepath (application.ExeName) + 'test.ini'; if fileexists(filename) then Beschreibung := readfromini(filename, 'Myvars', 'Beschreibung') + ' (' + readfromini(filename, 'Myvars', 'Zeit') + ')'+' (' + readfromini(filename, 'Myvars', 'Datum') + ')'; AddEvent(readfromini(filename, 'Myvars', 'Überschrift'), Beschreibung, TreeView1); Code für Datum.
Delphi-Quellcode:
WriteToIni (Filename,'Myvars','Datum',DateToStr(pickerdatum.date));
Danke für die Hilfe Leute! :) :hello: :party: [edit=Matze][delphi]-Tags repariert. MfG, Matze[/edit] |
Re: Listbox, bei Überschrift-klick kommt ausführlicher Beric
Zitat:
Den Dateinamen musst du nicht bei jedem Buttonklick auslesen, da er sich nicht ändert. Aber die paar Millisekunden, die das benötigt sind nicht tragisch. ;) Wenn die Datei nicht existiert, wird bei dir "AddEvent()" dennoch aufgerufen, da dein Code aktuell so interpretiert wird:
Delphi-Quellcode:
Das ist natürlich nicht korrekt. Bei dir muss es so aussehen:
if FileExists(filename) then
begin Beschreibung := readfromini(filename, 'Myvars', 'Beschreibung') + ' (' + readfromini(filename, 'Myvars', 'Zeit') + ')'+' (' + readfromini(filename, 'Myvars', 'Datum') + ')'; end; AddEvent(readfromini(filename, 'Myvars', 'Überschrift'), Beschreibung, TreeView1);
Delphi-Quellcode:
if FileExists(filename) then
begin Beschreibung := readfromini(filename, 'Myvars', 'Beschreibung') + ' (' + readfromini(filename, 'Myvars', 'Zeit') + ')'+' (' + readfromini(filename, 'Myvars', 'Datum') + ')'; AddEvent(readfromini(filename, 'Myvars', 'Überschrift'), Beschreibung, TreeView1); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:03 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