![]() |
listbox und fensterwechsel
Moin,
hab mit Delphi 2005 schon nen kleines Tool gebastelt ( ![]() Das Design ist aber nicht wirklich gelungen jetzt will ich das ganze in ein Design umändern was ungfähr so aussehen soll: ![]() Und zwar soll wenn jemand auf einen Eintrag in der listbox klickt sich jedesmal das bild und der Text ändern. Das gleiche mit dem mainmenü, da soll denn eine neue listbox erscheinen mit anderen Einträgen. Für Hilfe wäre ich dankbar. |
Re: listbox und fensterwechsel
Herzlich willkommen in der Delphi-PRAXiS, JannyR.
Den Code zum Auswechseln von Text und Bild kannst du an das Ereignis OnChange der ListBox hängen. Eine neue ListBox brauchst du nicht, wenn die Menüeinträge angeklickt werden. Es genügt, wenn du die alten Items der ListBox löschst und die neuen hinzufügst. Freundliche Grüße vom marabu |
Re: listbox und fensterwechsel
Erstmal danke für die Anrwort.
Habe da das eine oder andere Problem. Bei TListBox habe ich kein OnChange. Und wenn ichs hätte wüsste ich nicht was ich eingeben müsste^^. Also um das Bild zu wechseln denk ich mal brauch ich ein TImage und TImageList, was aber für den Text (mach ich mit TLabel)? Und mit dem Menü mach ich meist so dass ich form,showmodal; mache, aber ich will dass es im selben Fenster öffnet und nicht seperat öffnet. |
Re: listbox und fensterwechsel
@marabu: Du meinst OnClick :)
Den Text kannst du mit TLabel machen, indem du AutoSize auf false und Wordwarap auf true stellst. |
Re: listbox und fensterwechsel
Zitat:
Ahh das war schonmal sehr hilfreich! Ich hab sonst immer für jede Zeile ein extra TLabel gemacht. Jetzt wäre es noch super wenn mir jmd mit der Wechselsache helfen könnte. |
Re: listbox und fensterwechsel
Hi,
du kannst je nach Delphi-Version übrigens neben Caption bei einem Label auf ... klicken, dann kannst du auch ganz leicht Zeilenumbruche einbauen. |
Re: listbox und fensterwechsel
Delphi-Quellcode:
Dabei ist jetzt noch nicht eingerechnet, dass du ja zusätzlich noch ein Menü haben willst.
type
TDataRecord = record Image: string; Text: string; end; var Data: array of TDataRecord; procedure TForm1.Listbox1CLick(Sender: TObject); begin if Listbox1.ItemIndex > -1 then //wenn nichts ausgewählt ist, kannst du nicht laden begin Image1.Bitmap.LoadFromFile(Data[Listbox1.ItemIndex].Image); Label1.Caption := Data[Listbox1.ItemIndex].Text; end; end; |
Re: listbox und fensterwechsel
Code:
Wäre nett wenn du es mir ein bissl genauer erklären könntest^^
[Fehler] test.pas(33): E2029 Anweisung erwartet, aber 'TYPE' gefunden
[Fehler] test.pas(42): E2029 ';' erwartet, aber '.' gefunden [Fehler] test.pas(44): E2003 Undefinierter Bezeichner: 'Listbox1' [Fehler] test.pas(46): E2003 Undefinierter Bezeichner: 'Image1' [Fehler] test.pas(46): E2003 Undefinierter Bezeichner: 'LoadFromFile' [Fehler] test.pas(46): E2029 ']' erwartet, aber Bezeichner 'ItemIndex' gefunden [Fehler] test.pas(49): E2029 '.' erwartet, aber ';' gefunden [Warnung] test.pas(50): W1011 Text hinter dem abschließenden 'END.' wird vom Compiler ignoriert [Fataler Fehler] Project2.dpr(5): F2063 Verwendete Unit 'test.pas' kann nicht compiliert werden |
Re: listbox und fensterwechsel
OK.
der Absatz nach "type" ist eine typendeklaration. Ich deklariere da ein ![]() Das ganze muss in den interface-abschnitt deiner delphi-unit - am besten nach das type, hinter dem deine Form deklariert wird ("type TForm1= ...."). das hinter dem var, eine array, das heißt aneinanderrehiung vieler records, sollte am besten dahin, wo bei deiner form-deklaration "Private-deklarationen" steht. irgendwo musst du den array (und die listbox) auch füllen - z.B. mit Ini-Dateien ( ![]() ![]() Das letzte, die procedure, ist das Event - einfach in den formdesigner gehen, die listbox anklicken, im Objektinspektor (F11) auf "Ereignisse" und in das feld hinter "OnClick" doppelklicken. dann den code einfüllen. das sollts gewesen sein... und wie gesagt, für "mehrere listboxen" musst du das ganze noch einmal "verpacken" (z.B. in dem du aus dem array of TDaten ein array of array of TDaten machst). |
Re: listbox und fensterwechsel
Ziemlich viel Input^^
Könntest du mir bitte ein kleines Beispiel-Projekt schicken? 2 oder 3 Eintäge müssten reichen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:48 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