Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit listbox (verstehe die warnung nicht) (https://www.delphipraxis.net/25232-problem-mit-listbox-verstehe-die-warnung-nicht.html)

G G 3. Jul 2004 09:08


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.

phlux 3. Jul 2004 09:13

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 ;)

Nicodius 3. Jul 2004 09:14

Re: Problem mit listbox (verstehe die warnung nicht)
 
statt
Delphi-Quellcode:
FindAll('c:/', TStringList);
musst du

Delphi-Quellcode:
FindAll('c:/', Den_namen_einer_TStringlist_komponente);

G G 3. Jul 2004 09:20

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:

Chewie 3. Jul 2004 09:22

Re: Problem mit listbox (verstehe die warnung nicht)
 
List.Items ist vom Typ TStringList.

G G 3. Jul 2004 09:25

Re: Problem mit listbox (verstehe die warnung nicht)
 
hm da kommt jetzt der fehler
[Fehler] Unit1.pas(30): Inkompatible Typen: 'TStringList' und 'TStrings'

Alexander 3. Jul 2004 09:31

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;

Nicodius 3. Jul 2004 09:35

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 ;)

G G 3. Jul 2004 09:51

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

Dani 3. Jul 2004 10:03

Re: Problem mit listbox (verstehe die warnung nicht)
 
Tach! :)
Vorher die Komponente auf deinem Formular mit dem Designer in "Listbox1" umbenennen...

Delphi-Quellcode:
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: Ups...hab was übersehen
Edit Nr5: Okay TListbox.items ist vom Typ TStrings und nicht TStringlist


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:57 Uhr.
Seite 1 von 2  1 2      

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