AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit Fenster positionierung

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

Registriert seit: 4. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#11
  Alt 31. Jan 2003, 12: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
 


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 00:54 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