![]() |
Ini-Inhalt wird nicht genutzt
Hi,
im OnMoved-Ereignis eines Splitters versuche ich mit
Delphi-Quellcode:
die Positon eines Splitters zu speichern. Wenn ich aber in Form.OnCreate schreibe
with TIniFile.Create(MAIN_PATH+'options.ini') do begin
{...} writeInteger('main', 'SplitterLeft', Splitter1.Left); Free; end;
Delphi-Quellcode:
So bleibt der Splitter auf der im OI eingestellten Position sitzen.
with TIniFile.Create(MAIN_PATH+'options.ini') do begin
Splitter1.Left := readInteger('main', 'SplitterLeft', 249); Free; end; Wer hat Rat? Chris |
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. |
Hoi,
versuchs doch mal mit einem Ereignis dass später auftritt. Siehe auch: ![]() |
Speichere NICHT die Position des Splitters, sondern die Breite des Objektes, welches sich links vom Splitter befindet ;)
|
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 |
So, jetzt läufts...
Chris |
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