![]() |
Abstrakter Fehler bei Instanzenübergabe
Hallo!
Ich habe folgenden Code:
Delphi-Quellcode:
Hier tritt in Zeile 3 ein Abstrakter Fehler auf. Aber wieso? :gruebel:
procedure Add(var List: TStrings);
begin List.Add('Value'); end; procedure TForm1.Button1Click(Sender: TObject); var List: TStrings; begin List := TStrings.Create; Add(List); List.Free; end; Könnte mir das jemand erklären und auch ev. eine Lösung des Problems posten? Danke schon mal. Grüße Faux |
Re: Abstrakter Fehler bei Instanzenübergabe
Der Fehler liegt in Zeile 10: TStrings ist abstrakt müßte etwa so heißen:
Delphi-Quellcode:
List := TStringList.Create;
|
Re: Abstrakter Fehler bei Instanzenübergabe
Zitat:
Grüße Faux |
Re: Abstrakter Fehler bei Instanzenübergabe
Manche sehen es auch gern als Bug von Delphi an, überhaupt Instanzen mit abstrakten Methoden (mehr kann bei Delphi ja nicht abstrakt sein :mrgreen:) zu erlauben...
|
Re: Abstrakter Fehler bei Instanzenübergabe
Zitat:
|
Re: Abstrakter Fehler bei Instanzenübergabe
Zitat:
PS: Einen Bug würde ich das nicht nennen, schließlich verhält es sich "As Designed". Bezeichnen wir es lieber als - ehm - kleine Designschwäche :mrgreen: . |
Re: Abstrakter Fehler bei Instanzenübergabe
Zitat:
Zitat:
Zitat:
|
Re: Abstrakter Fehler bei Instanzenübergabe
Zitat:
Delphi-Quellcode:
property Foo: string; read; abstract;
|
Re: Abstrakter Fehler bei Instanzenübergabe
Zitat:
reichen dir diese Warnungen nicht wenn du eine Instanz einer abstrakten Klasse erzeugst?? Code
Delphi-Quellcode:
Was der Compiler dazu sagt:
procedure TForm1.Test;
var s: TStrings; begin inherited; s := TStrings.Create; end;
Delphi-Quellcode:
Man sollte sich die Warnungen die der Compiler ausspuckt auch durchlesen und zu Herzen nehmen :-D
[Warning] Form1.pas(43): W1020 Constructing instance of 'TStrings' containing abstract method 'TStrings.Get'
[Warning] Form1.pas(43): W1020 Constructing instance of 'TStrings' containing abstract method TStrings.GetCount' [Warning] Form1.pas(43): W1020 Constructing instance of 'TStrings' containing abstract method 'TStrings.Clear' [Warning] Form1.pas(43): W1020 Constructing instance of 'TStrings' containing abstract method 'TStrings.Delete' [Warning] Form1.pas(43): W1020 Constructing instance of 'TStrings' containing abstract method 'TStrings.Insert' Ciao, Ralf |
Re: Abstrakter Fehler bei Instanzenübergabe
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:28 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