AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Listboxen

Ein Thema von EWeiss · begonnen am 16. Mär 2011 · letzter Beitrag vom 17. Mär 2011
Antwort Antwort
EWeiss
(Gast)

n/a Beiträge
 
#1

AW: Mehrere Listboxen

  Alt 16. Mär 2011, 20:26
Welchen Vorteil soll das bringen ?
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

Geändert von EWeiss (16. Mär 2011 um 20:28 Uhr)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

AW: Mehrere Listboxen

  Alt 17. Mär 2011, 01:32
Ihr versteht es einfach nicht das ein in nonvcl erstellten Controll alle möglichkeiten offenstehen
Dann verstehe ich nicht, warum überhaupt gefragt wird. Insbesondere offensichtlich ohne OOP-Kenntnisse. Anstatt das per nonVCL irgendwie zu organisieren würde ich mal versuchen, irgendwelches Zeugs in der Listbox nachzurüsten.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Mehrere Listboxen

  Alt 17. Mär 2011, 07:22
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).
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
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Mehrere Listboxen

  Alt 17. Mär 2011, 09:12
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).
Zuerst..
Habe es dann geändert also den Record als dynamisches Array angelegt und beim erstellen einer neuen ListBox
odnungsgemäß incrementiert.

Ist aber das selbe problem.
zweite ListBox erstellt und die alte übernimmt das Handle der zuletzt erstellten ListBox.

@Sir Rufo
Zitat:
Bau dir also eine Klasse (TEWListBox) und Tüte mit dieser Klasse alles ab.
Was für eine Klasse.. mehr als eine Für ne ListBox geht wohl nicht oder?

Ist das keine Klasse?

Delphi-Quellcode:
type
  ISkinListBox = interface
    ['{38EF3B4F-86A1-45D0-A7F3-4E45E125979D}']
    function GetHandle: hWnd;
    property Handle: hWnd read GetHandle;
    procedure SetFont(nPointSize: Integer; FontName: PAnsiChar; AktForecolor: COLORREF;
      InAktForecolor: COLORREF; Shadow: Boolean; SOffset: Integer; ShadowColor: COLORREF);
    function GetDrawStyle: Integer;
    property DrawStyle: Integer read GetDrawStyle;
    function GetTop: Integer;
    property Top: Integer read GetTop;
    function ListGetText(hList: HWND; Item: Integer): PAnsiChar;
    function ListAdd(hList: HWND; Tmp: string): Integer;
    function ListGetCurSel(hList: HWND): Integer;
    function ListFindString(hList: HWND; Tmp: string): Integer;
    procedure ListSelectPlus(hList: HWND; nSelected: Integer);
    procedure ListDelete(hList: HWND; nIndex: Integer);
    procedure ListDeleteAll(hList: HWND);
    function ListCount(hList: HWND): Integer;
    function ListGetTopIndex(hList: HWND): Integer;
    procedure ListSetTopIndex(hList: HWND; nTopIndex: Integer);
    function ListGetSel(hList: HWND; nSelected: Integer): Bool;
    function GetItemHeight(hList: HWND; ItemHeigh: Integer): Integer;
  end;

  TSkinListBox = class(TInterfacedObject, ISkinListBox)
  private
    LStyle: DWORD;
    FHOwner: HWND;
    FHandle: HWND;
    FEnumProcInst: Pointer;
    ImgIcon: Cardinal;
    ImgIconH: Cardinal;
    ImgIconW: Cardinal;
    function MakeProcInstance(M: TMethod): Pointer;
    procedure SetCTLFont(hCtL: HWND; Font: hFont);
    procedure SubClass(WinHandle: HWND; wProc: Integer);
    procedure UnSubClass(WinHandle: HWND);
    function GetHandle: hWnd;
  public
    property Handle: HWND Read FHandle;
    function GetDrawStyle: Integer;
    property DrawStyle: Integer read GetDrawStyle;
    function GetTop: Integer;
    property Top: Integer read GetTop;
    procedure SetFont(nPointSize: Integer; FontName: PAnsiChar; AktForecolor: COLORREF;
      InAktForecolor: COLORREF; Shadow: Boolean; SOffset: Integer; ShadowColor: COLORREF);
    function ListBoxProc(WinHandle: HWND; Msg: UINT; wP: WParam; lP: LParam): LRESULT; stdcall;
    procedure DrawItem(WinHandle: HWND; Dc: Hdc; Index: Integer;Rect: TRect; Selected: Bool);
    procedure ListSetTopIndex(hList: HWND; nTopIndex: Integer);
    function ListGetTopIndex(hList: HWND): Integer;
    function ListGetSel(hList: HWND; nSelected: Integer): Bool;
    function GetItemHeight(hList: HWND; ItemHeigh: Integer): Integer;
    function ListCount(hList: HWND): Integer;
    procedure ListDeleteAll(hList: HWND);
    procedure ListDelete(hList: HWND; nIndex: Integer);
    procedure ListSelectPlus(hList: HWND; nSelected: Integer);
    function ListFindString(hList: HWND; Tmp: string): Integer;
    function ListGetCurSel(hList: HWND): Integer;
    function ListAdd(hList: HWND; Tmp: string): Integer;
    function ListGetText(hList: HWND; Item: Integer): PAnsiChar;
    constructor Create(hOwner: HWND; FullpathImageName: string; x, y, xW, yH,
      ListID: integer; Visible: Boolean; ItemHeight: Integer; BackColor: COLORREF);
    destructor Destroy; override;
  end;


  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;

var
  ListBoxType: TLB_TYPE;
Und was soll ich jetzt hier abtüten??
Als das was ich schon abgetütet habe ?

gruss

Geändert von EWeiss (17. Mär 2011 um 09:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Mehrere Listboxen

  Alt 17. Mär 2011, 09:31
Ja, das ist eine Klasse, aber warum hast du die Props in einem Record (als globale Variable?)?
Die gehören doch zu der (in die) Klasse ... weil pro Instanz ja andere Werte gespeichert werden sollen (deine Frage).

Die Prop Top ist z.B. in der Klasse und im Record.

Sieht auf jeden Fall sehr merkwürden aus
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.548 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Mehrere Listboxen

  Alt 17. Mär 2011, 09:41
Außerdem gehören nur die Properties in den public-Abschnitt, die dazugehörigen Getter und Setter dagegen nach private.
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
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Mehrere Listboxen

  Alt 17. Mär 2011, 09:44
Außerdem gehören nur die Properties in den public-Abschnitt, die dazugehörigen Getter und Setter dagegen nach private.
Kann ich noch ändern .. Danke.
Ändert aber nichts an meinem Problem.

gruss
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Mehrere Listboxen

  Alt 17. Mär 2011, 09:42
Ja, das ist eine Klasse, aber warum hast du die Props in einem Record (als globale Variable?)?
Die gehören doch zu der (in die) Klasse ... weil pro Instanz ja andere Werte gespeichert werden sollen (deine Frage).

Die Prop Top ist z.B. in der Klasse und im Record.

Sieht auf jeden Fall sehr merkwürden aus
Ich wollte die Properties nicht über das Interface nach außen weiterleiten.
Sondern nur für das Zeichnen nötige Variaben incl das Handle natürlich.

Deshalb ist das Top und DrawStyle im Interface und dem Record..
Die Rückgabe ist dann logischerweise ListBoxTyp.Top, ListBoxTyp.DrawStyle.

Ich sagte ja schon selbst beim erstellen eines Dynamischen Array TLB_TYPE = array of record
Wird mir das zuvor erstellte Handle ausgetauscht und ist mit InstrumentList.Handle nicht mehr abfragbar.
Komme also nur noch über
GetDlgItem(AppHandle, ID_INSTRUMENTLIST) an mein Windowhandle der Listbox heran.

Das geht zwar ist aber nicht die beste lösung.

gruss

gruss
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:05 Uhr.
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