AGB  ·  Datenschutz  ·  Impressum  







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

Fensterpositionen speichern?

Ein Thema von smart · begonnen am 5. Jul 2007 · letzter Beitrag vom 5. Jul 2007
Antwort Antwort
Seite 2 von 2     12   
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 11:56
Wenn man die genannten (IMHO unnötig komplizierten) Ansätze mit dem letzten von hoika kombiniert, dann kommt so was dabei raus :

Delphi-Quellcode:
procedure Tfrm.FormShow(Sender: TObject);
var FensterIni : TIniFile;
begin
  inherited;
  try
    FensterIni := TIniFile.Create(FensterDateiName);
    Left := FensterIni.ReadInteger(Name,'Left',Left);
    Top := FensterIni.ReadInteger(Name,'Top',Top);
  finally
    FensterIni.Free;
  end;
end;

procedure Tfrm.FormClose(Sender: TObject;
  var Action: TCloseAction);
var FensterIni : TIniFile;
begin
  inherited;
  try
    FensterIni := TIniFile.Create(FensterDateiName);
    if not CDstart then begin // auf CD kann nicht gespeichert werden !
      FensterIni.WriteInteger(Name,'Left',Left);
      FensterIni.WriteInteger(Name,'Top',Top);
    end;
  finally
    FensterIni.Free;
  end;
  Action := caFree;
end;
Der Benutzer verschiebt die Forms nach Lust und Laune und die letzten Koordinaten werden immer im OnClose abgespeichert. Er wird sie also wieder genau dort auffinden, wo er sie hingeschoben hat. Um die paar Zeilen nun aber nicht jedesmal neu schreiben zu müssen schiebt man eine Basisform am Besten in die Objektablage und benutzt da dann bei new -> Forms -> Others "inherited". Das ist in etwa das, was hoika von Hand unnötig simuliert.

Edit : sehe gerade, die umständliche "hoika-Methode" bezieht sich auf alte Forms. Da muss mans wohl so umständlich machen. Besser ist, alles was gewisse Forms betrifft direkt in ein Basis-Form zu packen. Bei mir ist da alles drin. Auch Tastatur-Routinen etc.
Gruß
Hansa
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#12

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 12:20
Dein Quellcode ist unsauber. Verschiebe den Konstruktoraufruf vor das jeweilige Try. Bei einer Exception im Constructor würde Free auf die (nicht initialisierte, lokale) Instanzenvariable zugreifen und versuchen diese freizugeben - und das kracht dann. Wenn du das Create ausserhalb von Try/finally hast, dann hast du im Try/finally Block immer eine gültige Instanz (die er auch freigeben kann) und wenn der Konstruktuer eine Exception wirft, dann gibt er die nicht erstellte Instanz auch nicht frei...
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 12:45
Mütze, mach das Thema jetzt nicht zu sehr OT. Krachen tut mal nichts. Allerdings wurde das tatsächlich verkehrt aus der Delphi-Hilfe abgekupfert. @Fragesteller : die Antwort auf die Frage steht tatsächlich fast identisch in der Delphi-Hilfe zu TIniFile.
Gruß
Hansa
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#14

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 14:00
Hallo Hansa,

jepp umständlich, aber anderes geht es bei "alten" Forms nicht.


Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 05:50 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