![]() |
Problem mit listbox (verstehe die warnung nicht)
hi also ich hab folgenden code, aber da kommt zb da wo ich die proz aufrufe ein fehler,usw?
wie macht man das den richtig, muss ich bei uses noch was hinzufügen etc... der fehler lautet : [Fehler] Unit1.pas(30): Inkompatible Typen: 'TStringList' und 'Class reference' vielen dank
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) List: TListBox; BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); procedure FindAll(Path: String; List: TStringList); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); begin FindAll('c:/', TStringList); end; procedure FindAll(Path: String; List: TStringList); var SearchRec: TSearchRec; begin List.Clear; if FindFirst(Path + '*.*', faAnyFile, SearchRec) = 0 then repeat List.Add(SearchRec.Name); until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; end. |
Re: Problem mit listbox (verstehe die warnung nicht)
Weil du deiner Procedure einen Klassennamen TStringList übergibst...
Edit: Da muss ein Object vom Typ TStringList rein, aber nicht der Klassenname ;) |
Re: Problem mit listbox (verstehe die warnung nicht)
statt
Delphi-Quellcode:
musst du
FindAll('c:/', TStringList);
Delphi-Quellcode:
FindAll('c:/', Den_namen_einer_TStringlist_komponente);
|
Re: Problem mit listbox (verstehe die warnung nicht)
hm danke, aber irgendwie weiß ich nicht so recht was der name meiner "Den_namen_einer_TStringlist_komponente" was ist das, weil "list" als nahme meiner listbox kann ich nicht verwenden.
sorry das ich so dumm frag hab erst knapp über 2 wochen delphi :roll: |
Re: Problem mit listbox (verstehe die warnung nicht)
List.Items ist vom Typ TStringList.
|
Re: Problem mit listbox (verstehe die warnung nicht)
hm da kommt jetzt der fehler
[Fehler] Unit1.pas(30): Inkompatible Typen: 'TStringList' und 'TStrings' |
Re: Problem mit listbox (verstehe die warnung nicht)
Dann ändere einfach den Typ in der Finall-Procedure in TStrings um (statt TStringlist).
Delphi-Quellcode:
procedure FindAll(Path: String; List: TStrings);
begin ... end; |
Re: Problem mit listbox (verstehe die warnung nicht)
mit dem "Den_namen_einer_TStringlist_komponente" meinte ich zumbeispiel Stringlist1(oben vereinbart var Stringlist1 : TStringlist)
.. ;) aber list geht nicht weil es ein reserviertes Wort ist! also ... anderer Name ;) |
Re: Problem mit listbox (verstehe die warnung nicht)
boa ich blicks grad garnicht :lol: is einer vielleicht so nett und schreibt mir einfach mal meinen geposteten code, in richtiger form hin. wär echt super... vielen vielen dank :P
|
Re: Problem mit listbox (verstehe die warnung nicht)
Tach! :)
Vorher die Komponente auf deinem Formular mit dem Designer in "Listbox1" umbenennen...
Delphi-Quellcode:
Edit: Ups...hab was übersehen
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) Listbox1: TListBox; BitBtn1: TBitBtn; procedure BitBtn1Click(Sender: TObject); private { Private-Deklarationen } public procedure FindAll(Path: String; Items: TStrings); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); begin Listbox1.Clear; FindAll('c:/', Listbox1.items); end; procedure TForm1.FindAll(Path: String; Items: TStrings); var SearchRec: TSearchRec; begin If not Assigned(Items) then exit; if FindFirst(Path + '*.*', faAnyFile, SearchRec) = 0 then repeat Items.Add(SearchRec.Name); until FindNext(SearchRec) <> 0; SysUtils.FindClose(SearchRec); end; end. Edit Nr5: Okay TListbox.items ist vom Typ TStrings und nicht TStringlist |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:27 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 by Thomas Breitkreuz