Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Items in TComboBox überschreiben (https://www.delphipraxis.net/167054-items-tcombobox-ueberschreiben.html)

emailantbgmxde 11. Mär 2012 15:14

Delphi-Version: 6

Items in TComboBox überschreiben
 
Hallo!

Ich habe eine Klasse geschrieben, die von TStringList abgelitten ist und ein paar extra Prozeduren wie z.B. deleteDublicates enthält:

Delphi-Quellcode:
type
    TStringListX = class(TStringList)
    public
        procedure DeleteText(text:string);
        procedure DeleteDublicates;
    end;
Die möchte ich jetzt gerne für den Inhalt einer TComboBox nutzen.
Also habe ich eine neue Klasse erstellt

Delphi-Quellcode:
type
  TComboExt = class(TComboBox)
  end;
Wie kann ich nun die items der TComboBox mit neuen items vom Typ TStringListX überschreiben? Geht das überhaupt so einfach? Override geht ja nur für Prozeduren und Funktionen?

Besten Dank schon mal,
Thomas

Bummi 11. Mär 2012 15:54

AW: Items in TComboBox überschreiben
 
Über Classhelper oder Casts...
Delphi-Quellcode:
type
   TStrings=Class(Classes.TStrings)
    public
        procedure DeleteText(text:string);
        procedure DeleteDublicates;
    end;
  TForm1 = class(TForm)

...
 TStrings(Combobox1.Items).deletetext('Nase21');

emailantbgmxde 11. Mär 2012 19:06

AW: Items in TComboBox überschreiben
 
Etwas umständlicher als gedacht (mit dem extra TStrings() ) aber es funktioniert, besten Dank!

Thomas

jaenicke 11. Mär 2012 19:46

AW: Items in TComboBox überschreiben
 
Ein class helper wäre auch sinnvoller, weil man den einfach in einer externen Unit deklarieren und überall einbinden kann. Dann braucht man auch keine Casts:
Delphi-Quellcode:
type
  TMyStringsClassHelper = class helper for TStrings
    procedure DeleteText(const AText: String);
    procedure DeleteDuplicates;
  end;
Dann kannst du einfach ComboBox1.Items.DeleteText aufrufen. Den Parameter solltest du auch nicht ausgerechnet text nennen, da die Eigenschaft auch in TStrings schon existiert...
Und nebenbei schreibt man Duplikate auch im englischen mit p. ;-)

Furtbichler 12. Mär 2012 07:38

AW: Items in TComboBox überschreiben
 
Class Helper gibt es in Delphi 6 doch gar nicht.

Bezüglich der 'Duplicates'-Geschichte könnte es ausreichen, die Eigenschaft 'Duplicates' auf 'dupIgnore' zu setzen.

DeddyH 12. Mär 2012 07:44

AW: Items in TComboBox überschreiben
 
Duplicates gibt es erst ab TStringlist, aber nicht in TStrings.

jaenicke 12. Mär 2012 08:29

AW: Items in TComboBox überschreiben
 
Zitat:

Zitat von Furtbichler (Beitrag 1156088)
Class Helper gibt es in Delphi 6 doch gar nicht.

Ich übersehe die Versionsangabe da oben jedesmal. :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 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