AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit Fenster positionierung

Ein Thema von Daniel B · begonnen am 30. Jan 2003 · letzter Beitrag vom 31. Jan 2003
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#11
  Alt 31. Jan 2003, 11:54
Hallo Daniel B,

ich habe die Ini-Datei noch mal gelöscht, Programm neu gestartet -> keine Fehler erzielbar.

Allerdings ist mir aufgefallen, daß dieser Teil in TMainFormMC2004.FormClose überflüssig ist:

Delphi-Quellcode:
    //.....
    end
    else //if FensterPosSave = False then
    begin
      ini.WriteInteger('Fensterdaten', 'Links', 0);
      ini.WriteInteger('Fensterdaten', 'Oben', 0);
      ini.WriteInteger('Fensterdaten', 'Breite', 641);
      ini.WriteInteger('Fensterdaten', 'Hoehe', 375);
    end;
weil in TMainFormMC2004.FormCreate immer der else-Zweig abgearbeitet wird, wenn FensterPosSave false gilt:

Delphi-Quellcode:
    FensterPosSave :=
             ini.ReadBool('Fensterdaten', 'Fensterposition', false);
    if FensterPosSave then begin
// MainFormMC2004.Left := ini.ReadInteger('Fenst....
// .... ('Fensterdaten', 'Hoehe', 0);
    end
    else begin // if FensterPosSave = False then begin
      MainFormMC2004.Position := poScreenCenter;
    end;
Du hast ja schon geschrieben, daß Du auf if-else-Konstruktionen stehst, aber vielleicht solltest Du Dir selbst das Leben erleichtern und so etwas:

Delphi-Quellcode:
  if Geoeffnete = True then
  begin
    CheckBox1.Checked := True;
  end
  else if Geoeffnete = False then
  begin
    CheckBox1.Checked := False;
  end;
doch besser so schreiben:

  CheckBox1.Checked := Geoeffnete; Ist doch irgendwie übersichtlicher und leichter verständlich.

Und wenn ich schon dabei bin, aus:

Delphi-Quellcode:
  if s = '2400then
  begin
    ComboBoxBaud.ItemIndex := 0;
  end
  else if s = '4800then
  begin
    ComboBoxBaud.ItemIndex := 1;
  end
  else if s = '9600then
  begin
    ComboBoxBaud.ItemIndex := 2;
  end
  else if s = '14400then
  begin
    ComboBoxBaud.ItemIndex := 3;
  end
  else if s = '19200then
  begin
    ComboBoxBaud.ItemIndex := 4;
  end
  else if s = '28800then
  begin
    ComboBoxBaud.ItemIndex := 5;
  end
  else if s = '38400then
  begin
    ComboBoxBaud.ItemIndex := 6;
  end;
hätte ich folgendes gemacht:

Delphi-Quellcode:
const
  maxB = 7;
  Bauds : array[0..maxB] of string =
     ('1200','2400','9600','14400','19200','28800','38400','55600');

//.....

  ComboBoxBaud.ItemIndex := NofStr(s, Bauds);

//....
Endlich mal eine sinnvolle Anwendung für diese Funktion, die ich aus einer Zeitung habe:

Delphi-Quellcode:
{liefert 0 ... n zurück, wenn s in sarr gefunden wurde, -1, wenn nicht}
function NofStr( s : string; sarr : array of string) : integer;
var
  erg, i : integer;
begin
  erg := -1;
  s := uppercase(s);
  for i := 0 to high(sarr) do begin
    if s = uppercase(sarr[i]) then begin
      erg := i;
      break;
    end;
  end;
  Result := erg;
end;
Wahrscheinlich wäre ich noch einen Schritt weiter gegangen und hätte statt String-Werte für die Baudrate Integer in meinem Array verwendet.

Vorsichtshalber:
Das soll kein Mäkeln an Deinem Programm sein, sondern nur ein Hinweis zum Reduzieren von Aufwand.

mfg
eddy
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#12
  Alt 31. Jan 2003, 11:59
Nachtrag:

Hallo Daniel B,

schau mal ins Thema "Mengen mit kompletten Strings?". Vielleicht sind diese Anregeungen für Deine Baudraten nützlich.

mfg
eddy
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#13
  Alt 31. Jan 2003, 15:02
Hello eddy,
Zitat von eddy:
schau mal ins Thema "Mengen mit kompletten Strings?". Vielleicht sind diese Anregeungen für Deine Baudraten nützlich.
Werd ich machen!
Und ich sollte wirklich auf "CheckBox1.Checked := Geoeffnete;" umsteigen.
Ich musss sowieso noch einiges "umkrempeln", da sich die Datenstruktur doch erheblich geändert hat.
Das mit den ComPorts ist auch nciht schlecht, wobei ich da noch ein Filter mit rein bauen werde, damit die ganzen AVM-Karten usw. nicht erkannt werden. Denn die brauch ich ja nicht, sondern nur die serielle mit meinen BaudRaten, die die Du aufgelistet hast sind für mich nciht ganz zu gebrauchen, da ich nur die verwenden kann/darf die ich im Source drin habe.
Aber ansonsten gefällt mir was Du geschrieben hast, vielleicht schaffe ich es doch noch unter 10.000 Zeilen zu bleiben.
Danke Dir, aber erst muss ich noch ein Film schauen.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 02:38 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