AGB  ·  Datenschutz  ·  Impressum  







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

TEdit speichern und lesen

Ein Thema von Wikes · begonnen am 2. Jun 2015 · letzter Beitrag vom 5. Jun 2015
Thema geschlossen
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#1

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 09:02
Nein, in der Variable ist natürlich eine TStringList-Instanz, mit allen ihren Funktionen,
aber bei der Variable hat man (ohne einen Cast) auch nur Zugriff auf die öffentlichen Schnittstellen, welche in TStrings verfügbar sind, aber das reicht auch meistens aus.

Folgendes wäre falsch, aber das läst der Compiler eh nicht durch.
Delphi-Quellcode:
var
  List: TStringList;
begin
  List := TStrings.Create;
Das wäre "formal" richtig, aber hier bemängelt der Compiler dann natürlich zu Recht, daß die erstellte TStrings-Instanz viele abstrakte Methoden enthält.
Delphi-Quellcode:
var
  List: TStrings;
begin
  List := TStrings.Create;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 3. Jun 2015 um 09:04 Uhr)
 
Popov
(Gast)

n/a Beiträge
 
#2

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 11:13
Nein, in der Variable ist natürlich eine TStringList-Instanz, mit allen ihren Funktionen
Trotzdem, auch wenn es hier nicht der Grund ist, man sollte so was, zumindest wenn es nicht nötig ist, vermeiden.

Eine Frage, was kommt hier als Ergebnis raus?
Delphi-Quellcode:
type
  TTestBasis = class
    FWert: Integer;
    function GetWert: Integer;
  public
    property Wert: Integer read GetWert write FWert;
  end;

  TTest = class(TTestBasis)
    function GetWert: Integer;
  public
    property Wert: Integer read GetWert write FWert;
  end;

function TTestBasis.GetWert: Integer;
begin
  Result := FWert * 2;
end;

function TTest.GetWert: Integer;
begin
  Result := FWert div 2;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Test: TTestBasis;
begin
  Test := TTest.Create;
  try
    Test.Wert := 6;
    ShowMessage('Ergebnis: ' + IntToStr(Test.Wert));
  finally
    Test.Free;
  end;
end;
PS: ich weiß, dass das virtual und override fehlen, trotzdem.

Geändert von Popov ( 3. Jun 2015 um 11:20 Uhr)
 
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#3

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 11:29
Also ich rate mal,

42

mfg

frank
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
 
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 11:34
Zitat:
PS: ich weiß, dass das virtual und override fehlen, trotzdem.
Warum bringst Du dann das Beispiel, wenn es (wissentlich) falsch ist?
Abgesehen davon ist Dein Beispeil kein wirklichgen Grund, es gegen die allgemeine Praxis anders zu machen, weil der Fehler nicht am Typ sondern an einem (konstruierten) Designfehler liegt.
Markus Kinzler
 
Popov
(Gast)

n/a Beiträge
 
#5

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 11:53
Weil es vorkommen kann. An einer anderen Stelle, den Thered finde ich jetzt nicht, war es der Grund für den Fehler. Weil es eben so war.
 
Wikes

Registriert seit: 2. Jun 2015
17 Beiträge
 
#6

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 12:26
Gibt es eine Möglichkeit es ohne Textdatei zu machen?
 
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#7

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 12:32
Gibt es eine Möglichkeit es ohne Textdatei zu machen?
Es gibt viele Möglichkeiten: INI-Datei, XML-Datei, Datenbank

Wieso stört dich die Textdatei?
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
 
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 12:32
Ja Datenbank, Registry, Cloud, ...
Markus Kinzler
 
Popov
(Gast)

n/a Beiträge
 
#9

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 13:28
Gibt es eine Möglichkeit es ohne Textdatei zu machen?
z. B. in der Registry:
Delphi-Quellcode:
uses
  Registry;

function RegIniPath: string;
begin
  Result := 'Software\' + ExtractFileName(ChangeFileExt(ParamStr(0), ''));
end;

procedure TForm1.FormCreate(Sender: TObject);
var
  RegIni: TRegIniFile;
begin
  RegIni := TRegIniFile.Create(RegIniPath);
  try
    Edit1.Text := RegIni.ReadString('', 'Edit1', '');
  finally
    RegIni.Free;
  end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
var
  RegIni: TRegIniFile;
begin
  RegIni := TRegIniFile.Create(RegIniPath);
  try
    RegIni.WriteString('', 'Edit1', Edit1.Text);
  finally
    RegIni.Free;
  end;
end;
 
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.555 Beiträge
 
Delphi 12 Athens
 
#10

AW: TEdit speichern und lesen

  Alt 3. Jun 2015, 21:30
PS: ich weiß, dass das virtual und override fehlen, trotzdem.
Nicht "trotzdem", denn genau das verändert die Ausgangsfrage.

In TStrings und TStream sind nunmal die "Funktionalitäten" als Virtual deklariert und werden dann z.B. in TStringList/TMemoStrings und TFileStream/TMemoryStream überschrieben.
Wenn man eine Vererbung "falsch" implementiert, dann existiert dort natürlich nicht das gewohnte Standardverhalten einer Verwerbung.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 3. Jun 2015 um 21:32 Uhr)
 
Thema geschlossen


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 21:44 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-2025 by Thomas Breitkreuz