Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Ini-Inhalt wird nicht genutzt (https://www.delphipraxis.net/2130-ini-inhalt-wird-nicht-genutzt.html)

CalganX 8. Jan 2003 12:23


Ini-Inhalt wird nicht genutzt
 
Hi,
im OnMoved-Ereignis eines Splitters versuche ich mit
Delphi-Quellcode:
with TIniFile.Create(MAIN_PATH+'options.ini') do begin
  {...}
  writeInteger('main', 'SplitterLeft', Splitter1.Left);
  Free;
end;
die Positon eines Splitters zu speichern. Wenn ich aber in Form.OnCreate schreibe
Delphi-Quellcode:
  with TIniFile.Create(MAIN_PATH+'options.ini') do begin
    Splitter1.Left := readInteger('main', 'SplitterLeft', 249);
    Free;
  end;
So bleibt der Splitter auf der im OI eingestellten Position sitzen.

Wer hat Rat?

Chris

Christian Seehase 8. Jan 2003 12:38

Moin Chris,

versuch's mal mit einem Flag, das der OnMoved Prozedur anzeigt, dass der Wert gerade im OnCreate gesetzt wird, so dass für diesen Fall die Abarbeitung der OnMoved Routine unterbunden wird.

Ansonsten könntest Du mal versuchen nicht Splitter.Left zu setzen, sonder die Breite der Kompo, an die der Splitter andockt.

RomanK 8. Jan 2003 12:43

Hoi,
versuchs doch mal mit einem Ereignis dass später auftritt.
Siehe auch:
http://www.delphipraxis.net/viewtopic.php?t=200

sakura 8. Jan 2003 12:51

Speichere NICHT die Position des Splitters, sondern die Breite des Objektes, welches sich links vom Splitter befindet ;)

harrybo 8. Jan 2003 13:44

Hi Chris,

sakura hat definitiv recht. Der Splitter "lehnt" sich ja, je nach Alignment an ein Objekt an, so dass nicht die Splitterposition, sondern die entsprechende Abmessung des benachbarten Objects die Splitterposition bestimmt.

Allerdings: warum im OnMoved Ereignis? Wenn Du die INI Datei ihrem Zweck gemäß benutzt, d.h. sie wird beim nächsten Programmstart ausgelesen, reicht es völlig aus, die aktuelle Position beim Schließen des Fensters (<Form>.OnClose) zu speichern. Ansonsten werden ständig unnötigerweise Momentanzustände überschrieben.

gruß, harrybo

CalganX 8. Jan 2003 14:12

So, jetzt läufts...

Chris

harrybo 8. Jan 2003 15:57

im OnMoved oder im Form.OnClose?

gruß, harrybo


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 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