AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi wie initialisiert man am besten Variablen-Typen?
Thema durchsuchen
Ansicht
Themen-Optionen

wie initialisiert man am besten Variablen-Typen?

Ein Thema von juergen · begonnen am 10. Sep 2005 · letzter Beitrag vom 19. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#1

wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 16:48
Hallo zusammen,
ich verwende relativ viele Variablen; vom Typ -> Integer, Char und String
Damit ich nun nicht in jeder Procedur die einzelnen Variablen initialisieren muss, würde ich das gern über 3 Funktionen machen. (pro Variablen-Typ eine Function)
Aber ich bekomme es nicht hin
Wahrscheinlich ist es ganz leicht und sehe den Wald vor lauter Bäumen nicht?!

Kann mir da jemand helfen

Gruß
Jürgen
Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#2

Re: wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 16:53
Zitat von juergen:
Damit ich nun nicht in jeder Procedur die einzelnen Variablen initialisieren muss, würde ich das gern über 3 Funktionen machen.
naja du initialisiert sie einfach vor der 1. benutzung, das ist ja wohl nicht so schwer, oder?

p.s.: um was für Variablen handelt es sich denn (Global, Lokal, Felder in Klassen etc.)?
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 17:02
Hallo BlackJack,
nun genau das möchte ich ja vermeiden!
Ich nutze PRO Procedure teilweise über 20 Variablen....
Die Anzahl der Proceduren wird relativ hoch sein....
Und da möchte ich eben
1.) wegen der Übersicht und
2.) natürlich der "Faulheit wegen
nicht jedesmal diese "Flut" der Variablen EINZELN neu initialisieren müssen....
Gruß Jürgen
Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 17:10
Zitat:
Ich nutze PRO Procedure teilweise über 20 Variablen....
DIE Procedure würde ich gerne sehen....
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#5

Re: wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 17:11
Zitat von juergen:
Ich nutze PRO Procedure teilweise über 20 Variablen....
also lokale variablen? und in vielen proceduren die gleichen lokalen variablen die das gleiche machen und die auch gleich initialisiert werden sollen?

hier ein paar vorschläge:

1. den Code überdenken, z.b. ob du die Variablen nicht Global machen oder z.b. in einem Record zusammenfassen kannst
2. eine unterprocedure erstellen, die die variablen initialisiert, und die dann C&P-en
3. den initialisierungscode direkt C&P-en
4. eine procedure erstellen, die die variablen initialisiert, und die varialben dann als var übergeben.
4.1. da die parameterliste bei 20 zu initialisierenden Parametern etwas lang werden würde, könntest du dann alle Chars, alle Integer und alle Strings jeweils in einem Record zusammenfassen, sodass du an die procedure aus 4. dann nur noch die 3 Records als var-parameter übergeben müsstest anstatt die 3*20 Vairablen einzeln übergeben zu müssen.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 17:18
Zitat von BlackJack:
1. den Code überdenken,
Guter Vorschlag.

Zitat:
z.b. ob du die Variablen nicht Global machen
Und damit haben wir es wieder versaut.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#7

Re: wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 17:20
Zitat von Luckie:
Zitat:
z.b. ob du die Variablen nicht Global machen
Und damit haben wir es wieder versaut.
*g*
naja so war das mit dem global eigentlich auch nicht gemeint, ich hatte eher an sowas gedacht, dass man die vielen proceduren so kapelst, dass sie alle zugriff auf die entsprechenden variablen haben, also z.b. das ganze als Klasse zu konstruieren.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 17:56
@ Sniper_W
nun, ich als Anfänger habe jetzt lange mit mir gerungen, ob ich eine der Proceduren hier posten sollte. (schäm..)
Aber vielleicht kann ich von der zu erwartenden konstruktiven Kritik und Schelte ja auch wieder einiges lernen, da ich mir bis jetzt alles (sehr mühevoll) erarbeiten musste. (mit sehr großer Hilfe dieses Forums übrigens )

Ein weiteres "Problem" ist eben auch die verwendeten Variablen in dieser einen Procedur zu ermitteln
Aber ich habe mir den Code genau angeschaut, es können tatsächlich ALLE Variablen bei jeder Procedur neu initialisert werden. Das macht dann alles einfacher.

Delphi-Quellcode:
procedure TSpezieller_Rechner.AdditionClick(Sender: TObject);

Begin
a := 0 ;
b := 0 ;
c := 0 ;
If Flset = false then begin
   try
a := strtofloat(InputA.text);
b := strtofloat(InputB.text);
c := a + b;
OutputC.text := formatfloat('#,##0.######',c);
Zwischenspeicher.text := floattostr(c);
   except
Windows.Beep(2000,250) ;
ShowMessage ('Bitte kontrollieren: Eingabe ist falsch!" ');
InputA.SetFocus
   end;
   end

else begin
  lsTime_a := Trim(InputA.Text);
  lcDelim_a := ':';
  liPos_a := Pos(lcDelim_a, lsTime_a);
  if (liPos_a = 0) then begin
  lcDelim_a := '.';
  liPos_a := Pos(lcDelim_a, lsTime_a);
  end;
  if (liPos_a = 0) then begin
    lcDelim_a := ',';
    liPos_a := Pos(lcDelim_a, lsTime_a);
  end;
  if (liPos_a = 0) then begin
    lsHour_a := lsTime_a;
    lsMinute_a := '';
  end
  else begin
    lsHour_a := Copy(lsTime_a, 1, liPos_a - 1);
    lsMinute_a := Copy(lsTime_a, liPos_a + 1, MaxInt);
  end;
  try // except
    if (lsHour_a = '') then begin
      liHour_a := 0;
    end
    else begin
      liHour_a := StrToInt(lsHour_a);
    end;
    if (lsMinute_a = '') then begin
      liMinute_a := 0;
    end
    else begin
      liMinute_a := StrToInt(lsMinute_a);
    end;

  except
    on EConvertError do begin
      ShowMessage('Eingabe falsch')
    end;
  end; // except

  lsTime_b := Trim(InputB.Text);
  lcDelim_b := ':';
  liPos_b := Pos(lcDelim_b, lsTime_b);
  if (liPos_b = 0) then begin
    lcDelim_b := '.';
    liPos_b := Pos(lcDelim_b, lsTime_b);
  end;
  if (liPos_b = 0) then begin
    lcDelim_b := ',';
    liPos_b := Pos(lcDelim_b, lsTime_b);
  end;
  if (liPos_b = 0) then begin
    lsHour_b := lsTime_b;
    lsMinute_b := '';
  end
  else begin
    lsHour_b := Copy(lsTime_b, 1, liPos_b - 1);
    lsMinute_b := Copy(lsTime_b, liPos_b + 1, MaxInt);
  end;
  try // except
    if (lsHour_b = '') then begin
      liHour_b := 0;
    end
    else begin
      liHour_b := StrToInt(lsHour_b);
    end;
    if (lsMinute_b = '') then begin
      liMinute_b := 0;
    end
    else begin
      liMinute_b := StrToInt(lsMinute_b);
    end;
  except
    on EConvertError do begin
      ShowMessage('Eingabe falsch')
    end;
  end; // except


If (liMinute_a + liMinute_b >59) then begin
Min_ := 1; //diesen Wert muss später in Variable "o" zu den Stunden dazu gezählt werden
end;

o := (liHour_a) + (liHour_b) + Min_; // Stundensumme
p := ((liMinute_a) + (liMinute_b)); // Minutensumme

If (p >=60) then begin // wenn die Minutensumme >=60 ist, so wird von der Variable "s" 60 Minuten abgezogen
   s := -60 + (p);
end
else begin
   s := (p);
end;

    try //except
OutputC.text := floattostr(o)+ ':' + formatfloat('00.##',s); //Anzeigen des Ergebnisses in Normalminuten


@ BlackJack
zu 1.) -> ich kanns net besser...
zu 2.) -> das hört sich doch interessant an! Wie kann man denn eine "Unterprocedur" erstellen und in einer Procedur dann verwenden? (ich meine, dass wäre doch genau das was ich will)
zu 3.) ist damit einfach zu unübersichtlich...
zu 4.) verstehe ich net ganz. Wenn keine weiteren Posts kommen die mir hier schneller weiter helfen, würde ich mich da mal "einarbeiten"


Gruß Jürgen
Jürgen
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 18:21
Moin Jürgen,

Zitat von juergen:
nun, ich als Anfänger habe jetzt lange mit mir gerungen, ob ich eine der Proceduren hier posten sollte. (schäm..)
Wenn man anfängt ist man nun mal Anfänger, und es wird hier demzufolge auch niemand "perfekte" Routinen erwarten (hoffentlich)
Als erstes solltest Du Dir mal Gedanken um die Benennung Deiner Bezeichner (speziell die der Variablen a,b und c) machen.
Ich bin mir nämlich ziemlich sicher, dass Du in einer Woche deren Bedeutung selber nicht mehr weisst
Bei den anderen Bezeichnern hast Du es ja auch gemacht (oder entstammen die von anderer Stelle).

Wenn Du viele Variablen brauchst wäre die Idee von BlackJack mit dem Record eine gute Idee.
Mal ein Beispiel mit Deinen drei Variablen:
Delphi-Quellcode:
type
  TjMyRecord = record
    a : integer;
    b : integer;
    c : integer;
  end;

procedure InitLocalVars(var ArVariablen : TjMyRecord);
begin
  ArVariablen.a := 1;
  ArVariablen.b := 2;
  ArVariablen.c := 3;
end;

procedure WasAuchImmer;

var
  rVariablen : TjMyRecord;

begin
  InitLocalVars(rVariablen);
  //....
end;
@BlackJack:
Zitat von BlackJack:
naja so war das mit dem global eigentlich auch nicht gemeint, ich hatte eher an sowas gedacht, dass man die vielen proceduren so kapelst, dass sie alle zugriff auf die entsprechenden variablen haben, also z.b. das ganze als Klasse zu konstruieren.
Damit wäre das Problem aber nicht beseitigt.
Wenn derzeit jede Prozedur die Variablen benötigt, und Du die Prozeduren in einer Klasse zusammenfasst, so dass die Felder nur einmal deklariert und initialisiert werden müssten, würden sich die verschiedenen Prozeduren gegenseitig ihre Variableninhalte zerstören, wenn sie sich gegenseitig aufrufen.
Sollte das ausgeschlossen sein, kann man es natürlich so machen, wie Du beschrieben hast.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.174 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: wie initialisiert man am besten Variablen-Typen?

  Alt 10. Sep 2005, 19:49
Hallo Christian,
ich werde deinen Vorschlag heute Nacht gleich testen wenn ich dann Zeit habe...und vor allem nachschauen WIE das so funktioniert.
Sieht aber schon mal sehr gut aus.
Hab also vielen Dank und Dir noch ein schönes Wochenende!

Gruß Jürgen

Ps.:

Ich bin mir nämlich ziemlich sicher, dass Du in einer Woche deren Bedeutung selber nicht mehr weisst Die Bezeichnungen der Variablen sind für mich eigentlich schlüssig:
- zum "aufbröseln" der eingegebenen Zeichen verwende ich (für mich) klare Bezeichnungen.
- zum eigentlichen Rechnen verwende ich grundsätzlich die einzelnen Buchstaben als Bezeichner der Variablen. Da die Rechenoperationen eigentlich immer recht simpel sind, braucht man IMHO an der Stelle keine genaueren Bezeichnungen...???
Jürgen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 04:34 Uhr.
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