Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mehrere Listboxen (https://www.delphipraxis.net/159165-mehrere-listboxen.html)

EWeiss 16. Mär 2011 17:46

Mehrere Listboxen
 
Ich erstelle eine Listbox und übergebe die Eigenschaften der erstellten Listbox einem Record.

Delphi-Quellcode:
  PLB_TYPE = ^TLB_TYPE;
  TLB_TYPE = record
    AktForecolor     : COLORREF;
    InAktForecolor   : COLORREF;
    Backcolor        : COLORREF;
    Shadow           : Boolean;
    ShadowColor      : COLORREF;
    ShadowOffset     : Integer;
    ForeColorSelected : COLORREF;
    BackColorSelected : COLORREF;
    PointSize        : Integer;
    DrawStyle        : Integer;
    BorderStyle      : Integer;
    Icon             : string;
    ItemHeight       : Integer;
    Handle           : HWND;
    Left             : Integer;
    Top              : Integer;
    Width            : Integer;
    Height           : Integer;
    Font             : HFONT;
  end;
Solange ich nur eine Box erstelle ist das kein Problem.
Bei mehreren Boxen heben sich die Eigenschaften auf bzw ist nur noch die gültig von der zuletzt erstellten Box.
Bsp. Handle..

Ich kann zwar das korrekte Handle der ListBox in erfahrung bringen in dem ich einfach die LISTBOX_ID
über
Delphi-Quellcode:
GetDlgItem(ParentWindow, LISTBOX_ID)
abfrage aber dann fehlen mir immer noch die anderen Eigenschaften die vorher zugewiesen wurden.

Theoretisch könnte ich die zweite ja mit anderen Schriftfarben festlegen.

Wie kann ich das am dümmsten Bereinigen ?

gruss

lbccaleb 16. Mär 2011 18:53

AW: Mehrere Listboxen
 
Delphi-Quellcode:
var

lstbox1: TLB_TYPE;
lstbox2: TLB_TYPE;
Oder was meinst du??

EWeiss 16. Mär 2011 18:56

AW: Mehrere Listboxen
 
Zitat:

Zitat von lbccaleb (Beitrag 1089090)
Delphi-Quellcode:
var

lstbox1: TLB_TYPE;
lstbox2: TLB_TYPE;
Oder was meinst du??

Mir gehen die Eigenschaften der vorher erstellten Listbox verloren.
Und zwar alle die oben im record stehen.

Ich habe den jetzt als Array ausgelegt aber auch das gibt mir nicht das richtige Handle zurück.
Ich denke ich muss die propertys der Listbox irgendwo zwischenspeichern
Hab nur noch keine Idee wo.

Und wie ich sie zurückholen kann mit einer einfachen anfrage wie InstrumentList.handle.


gruss

lbccaleb 16. Mär 2011 18:58

AW: Mehrere Listboxen
 
Das versteh ich jetzt nicht, du speicherst doch die einstellungen in einem Record, wo willst du die denn noch zwischen speichern?

Wenn du für Jede Listbox eine Variable vom Typ deines Records deklarierst, und dann auch in der richtigen Variable speicherst, dann ist das doch solange da drinn bis du es löscht oder das Proggy beendest.

EWeiss 16. Mär 2011 19:20

AW: Mehrere Listboxen
 
Zitat:

Zitat von lbccaleb (Beitrag 1089092)
Das versteh ich jetzt nicht.

Ich denke wir ;) verstehen uns nicht.

Sage es nochmal ich erstelle eine Listbox.
Wenn diese erstellt wird erhalte ich das korrekt Handle zurück.

Erstelle ich noch eine
Dann hat die vorher erstellte ListBox plötzlich das Handle der zuletzt erstellten.
Bis hierher verstehst du was ich meine?

OK!
Rufe ich jetzt irgendwo im quelltext nach dem erstellen aller ListBoxen mein
Instrument.Handle ab dann hat diese das Handle der zuletzt erzeugten ListBox.

Deshalb muss ich alle Propertys zwichenspeichern mir fällt aber nicht ein wie oder wo am besten.
Array Funktioniert nicht hab ich schon versucht.

Eine VCL Listbox speichert doch auch irgendwo seine Propertys ab oder nicht ?
Und das will ich in nonvcl erreichen.

gruss

Hansa 16. Mär 2011 19:55

AW: Mehrere Listboxen
 
Mir kommt vor, dass Du da irgendwie eine verkettete Liste erstellen willst ? Guck dir mal TObjectkist an und packe den ganzen Krempel da rein. Ohne Gewähr !

Edit : ich ziele darauf ab, dass in die TOjectlist komplette Listboxen kommen ! Warum muss denn das nonVCL sein ? Welchen Vorteil soll das bringen ? :shock:

EWeiss 16. Mär 2011 20:26

AW: Mehrere Listboxen
 
Zitat:

Zitat von Hansa (Beitrag 1089101)
Welchen Vorteil soll das bringen ? :shock:

Ihr versteht es einfach nicht das ein in nonvcl erstellten Controll alle möglichkeiten offenstehen
vor allem bei der grafischen Gestaltung bei einer VCL ListBox bis du auf das angewiesen was sie dir zur verfügung stellt.
Es sei denn du verbiegst diese was ich wiederum als unschön finde.

Und warum soll ich mir eine Komponente kaufen die das zur verfügung stellt was ich brauche
wenn ich es mit einigen Aufwand und zeit selber erstellen kann.

Gut es gibt dafür andere Probleme wie man sieht.
TObjectkist muss ich mir anschauen in wie weit das kompatibel zu IInterface ist.

Und in nonvcl verwenden kann.

gruss

Hansa 17. Mär 2011 01:32

AW: Mehrere Listboxen
 
Zitat:

Zitat von EWeiss (Beitrag 1089105)
Zitat:

Zitat von Hansa (Beitrag 1089101)
Ihr versteht es einfach nicht das ein in nonvcl erstellten Controll alle möglichkeiten offenstehen


Dann verstehe ich nicht, warum überhaupt gefragt wird. :mrgreen: Insbesondere offensichtlich ohne OOP-Kenntnisse. Anstatt das per nonVCL irgendwie zu organisieren würde ich mal versuchen, irgendwelches Zeugs in der Listbox nachzurüsten.

DeddyH 17. Mär 2011 07:22

AW: Mehrere Listboxen
 
Nur zum Verständnis: es gibt mehrere Listboxen, aber nur einen Record? Dann ist das ja klar, dass dieser nur die Daten der zuletzt erstellten Listbox enthält, da die Daten ja ständig überschrieben werden. Eine Liste tut hier Not (ob als dynamisches Array, verkettete Liste oder TList, das spielt keine Rolle).

Sir Rufo 17. Mär 2011 07:35

AW: Mehrere Listboxen
 
Zitat:

Zitat von EWeiss (Beitrag 1089094)
Eine VCL Listbox speichert doch auch irgendwo seine Propertys ab oder nicht ?
Und das will ich in nonvcl erreichen.

die VCL hat für jeden Schnuddelwutz eine Klasse (z.B. TListBox) und in dieser Klassen-Instanz sind dann die Props gespeichert. In einem Array oder Record wird da nix gespeichert.

Bau dir also eine Klasse (TEWListBox) und Tüte mit dieser Klasse alles ab.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz