Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   String einem Integer zuordnen (https://www.delphipraxis.net/190137-string-einem-integer-zuordnen.html)

strom 2. Sep 2016 11:02

String einem Integer zuordnen
 
Hallo,

habe einen Globalen Zähler, wo der letzte Stand (Zahl) über ein Edit gespeichert wird.
Beim Programmstart wir diese Zahl im Edit wieder eingelesen.

Jetzt habe ich hier natürlich einen "String", und möchte es dem Zähler "Integer" zuordnen.
Geht das?:(


Delphi-Quellcode:
var
  Form1: TForm1;
  Zaehler : Integer = Edit2.Text;

DeddyH 2. Sep 2016 11:05

AW: String einem Integer zuordnen
 
Mir scheint, Du solltest beim Urschleim anfangen: https://www.delphi-treff.de/tutorial...gen-tutorials/

himitsu 2. Sep 2016 11:05

AW: String einem Integer zuordnen
 
Zitat:

Zitat von strom (Beitrag 1346567)
habe einen Globalen Zähler, wo der letzte Stand (Zahl) über ein Edit gespeichert wird.

Wie kommt diese "Zahl" in das Edit?
Tja, und raus geht genau andersrum. :stupid:

Aber an DIESER Stelle von deinem Codeausschnitt geht das Zuweisen so oder so niemals. (der Compiler sagt dir das warum)

strom 2. Sep 2016 11:21

AW: String einem Integer zuordnen
 
Hier der restliche Urschleim :-)

Delphi-Quellcode:
 Zaehler := Zaehler +1;
Edit2.Text := Format('%.7d',[Zaehler]);
Delphi-Quellcode:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
var
 SL: TStrings;
begin
 SL := TStringList.Create;
  try
   SL.Add(Edit2.Text);
   SL.SaveToFile(ExtractFilePath(ParamStr(0)) + 'Identifikator.dat');
  finally
    SL.Free;
  end;
end;

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
 SL: TStrings;
begin
   SL := TStringList.Create;
  try
    SL.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'Identifikator.dat');
    if SL.Count>0 then
      Edit2.Text:=SL[0];
  finally
    SL.Free;
  end;

Hatte einen Fehler in meiner Beschreibung oben!

Delphi-Quellcode:
Zaehler : Integer = StrToInt(Edit2.Text); // was auch nicht funktoniert! :-)

strom 2. Sep 2016 11:43

AW: String einem Integer zuordnen
 
Läuft, habe den Fehler :-)

Danke für Eure Hilfe

Sherlock 2. Sep 2016 11:45

AW: String einem Integer zuordnen
 
Na, was war denn falsch? Der nächste, der dieses Problem hat, würde eventuell gerne die Lösung wissen.

Sherlock

himitsu 2. Sep 2016 11:57

AW: String einem Integer zuordnen
 
Zitat:

Delphi-Quellcode:
Zaehler : Integer = StrToInt(Edit2.Text); // was auch nicht funktoniert! :-)

Und wie vorher hast du schon wieder vergessen auf das zu hören, was dir der Compiler sagt.

A: DAS ist keine Konstante

B: und zu dem Zeitpunkt existiert die Form-Instanz noch garnicht, also selbst wenn es compilieren würde, kann man da noch nichts auslesen.

C: "globale Variable" ... alleine dafür gehört jeder gesteinigt :twisted:

p80286 2. Sep 2016 12:06

AW: String einem Integer zuordnen
 
Noch umständlicher geht's kaum noch.
Aber gut wenn Du meinst....

Alte Säcke würden das Problem u.U so angehen:
Delphi-Quellcode:

procedure SaveIntToFile(MeinWert:integer);
const
  FILENAME='c:\Meine.Datei';
var
   f : file of integer;

 
begin
  assignfile(f,FN);
  rewrite(f);
  write(f,MeinWert);
  closefile(f);
end;

function ReadIntFromFile:integer;
const
  FILENAME='c:\Meine.Datei';
var
   f : file of integer;
 
begin
  assignfile(f,FN);
  reset(f);
  Read(f,Result);
  closefile(f);
end;
Nur so als Anregung, so etwas ähnliches wirst Du auch in der Hilfe finden.

Gruß
K-H

p80286 2. Sep 2016 12:11

AW: String einem Integer zuordnen
 
Zitat:

Zitat von himitsu (Beitrag 1346586)
C: "globale Variable" ... alleine dafür gehört jeder gesteinigt :twisted:

Auch Form.Variablen haben einen globalen Charakter und ein TEdit oder TLabel als Zwischenspeicher für einen Wert ist ja nun auch nicht sooooo dolle.

Gruß
K-H

stahli 2. Sep 2016 12:38

AW: String einem Integer zuordnen
 
Freunde, Tropfen einnehmen und Füße still halten.

Es handelt sich offenbar um einen Delphi-Einsteiger. Also...
...Mann, bitte!?

dGeek 2. Sep 2016 12:42

AW: String einem Integer zuordnen
 
Ich habe bis heute nicht verstanden, warum man für globale Variablen gesteinigt wird.
Was ist technisch gesehen so schlimm daran?

stahli 2. Sep 2016 12:53

AW: String einem Integer zuordnen
 
Es ist schon sinnvoll, Variablen möglichst nur dort zur Verfügung zu stellen, wo sie gebraucht werden - sie also möglichst zu kapseln.
Das ist eine Frage der Übersichtlichkeit.

Stell Dir eine globale Variable I: Integer vor.

In irgendeiner Methode verwendest for I := ... und vergisst, eine Variable I anzulegen.
Schon benutzt Du die globale Variable, die ja eigentlich für etwas ganz anderes gedacht ist.

Globale Variablen bergen Risiken und umgehen ggf. ein vernünftiges Klassendesign.

Für bestimmte Zwecke kann man sie einsetzen, sollte es aber nach Möglichkeit eher vermeiden. Jedenfalls, wenn man komplexere Anwendungen erstellt, die ggf. noch erweitert werden müssen. Dann können sie schnell zu Fehlern führen.

dGeek 2. Sep 2016 12:59

AW: String einem Integer zuordnen
 
Ich mache das aktuell so, dass ich eine Unit habe mit mehreren namentlich natürlich verschiedenen Records die gewisse Variablen beinhalte.

Auf diese Art und Weise habe ich die Variablen mehr oder weniger fast global und miss-verwenden kann ich sie nicht.

Christian Seehase 2. Sep 2016 13:23

AW: String einem Integer zuordnen
 
Moin Zusammen,

um Probleme bei eventuellen globalen Variablen zum minimieren,
fasse ich diese in einer Unit zusammen, und versehe sie mit
dem Prefix G.
Damit ist dann, bei jeder Verwendung klar, dass es sich um eine
globale Variable handelt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf