AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Position von Programmfenster in *.ini speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Position von Programmfenster in *.ini speichern?

Ein Thema von Tim.exe · begonnen am 14. Okt 2003 · letzter Beitrag vom 14. Okt 2003
Antwort Antwort
Seite 1 von 2  1 2      
Tim.exe

Registriert seit: 29. Apr 2003
186 Beiträge
 
#1

Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 10:33
Hallo,

ich versuche gerade die geänderte Position eines Formulars in eine *.ini zu speichern.
Das speichern an sich ist auch kein Problem und funktioniert, nur bei einem erneuten Aufruf soll das Programm wieder an der Position angezeigt werden an der es das letzte Mal beendet wurde und das tut es nicht.

Vielleicht kann man die Position "left" und "top" direkt in eine *.ini schreiben, ich bin aber den Umweg über 2 Edits gegangen die die Position auslesen und speichern.

Code:

Delphi-Quellcode:

procedure TForm1.FormCreate(Sender: TObject);
var savestat: TIniFile;
begin
savestat := TIniFile.Create(ExtractFilepath(Application.Exename)+'settings.ini');
try
Edit1.Text := savestat.ReadString('Left','Status1',Edit1.Text);
Edit2.Text := savestat.ReadString('Top','Status1',Edit2.Text);
finally
savestat.Free;
end;

If RadioBox1.Checked then
Form1.Left := StrToInt(Edit1.Text);
Form1.Top := StrToInt(Edit2.Text);

end;

procedure TForm1.FormDestroy(Sender: TObject);
var savestat: TIniFile;
begin
Edit1.Text := IntToStr(Form1.Left);
Edit2.Text := IntToStr(Form1.Top);
savestat := TIniFile.Create(ExtractFilepath(Application.Exename)+'settings.ini');
try
savestat.WriteString('Left','Status1',Edit1.Text);
savestat.WriteString('Top','Status1',Edit2.Text);
finally
savestat.Free;
end;

end;
!!! Sigs stinken !!!
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 10:50
Hallo Tim,

global
Delphi-Quellcode:
CONST
...
  SectionSystem = 'System';
  KeyFormLeft = 'FormLeft';
  KeyFormTop = 'FormTop';
...
(fMain = Hauptformular)

schreiben (z.B. in FormDestroy/Close)
Delphi-Quellcode:
  IniFile.WriteInteger(SectionSystem, KeyFormLeft, fMain.Left);
  IniFile.WriteInteger(SectionSystem, KeyFormTop, fMain.Top);
lesen (z.B. in FormCreate)
Delphi-Quellcode:
  fMain.Left:= IniFile.ReadInteger(SectionSystem, KeyFormLeft, 0);
  fMain.Top:= IniFile.ReadInteger(SectionSystem, KeyFormTop, 0);
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 10:56
Das Widerherstellen der Position kann nicht im OnCreate Ereignis erledigt werden, weiche einfach auf das OnActivate Ereignis aus, dann sollte es klappen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Tom

Registriert seit: 8. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#4

Re: Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 10:59
Zitat von sakura:
Das Widerherstellen der Position kann nicht im OnCreate Ereignis erledigt werden,
Wieso?
Delphi-Quellcode:
  form1.Left := 1;
  form1.Top := 1;
Kein Problem unter D6 im OnCreate-Ereignis.
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 11:02
Hallo,
bei mir funkts auch (D7Ent).
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Tim.exe

Registriert seit: 29. Apr 2003
186 Beiträge
 
#6

Re: Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 11:05
Hallo,

klappt leider immer noch nicht. Wobei ich sagen muss das Form1.Position auf "poDesktopCenter" steht.

Wenn ich die Position auf "poDesigned" stelle, wird es auch nicht an der geänderten Position angezeigt sondern bei Left: 1 / Top: 1 (obwohl es im Designmodi ca. in der Mitte steht)
!!! Sigs stinken !!!
  Mit Zitat antworten Zitat
Tom

Registriert seit: 8. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#7

Re: Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 11:08
Zitat von Tim.exe:
klappt leider immer noch nicht. Wobei ich sagen muss das Form1.Position auf "poDesktopCenter" steht.
Sehr witzig ...

Zitat:
Wenn ich die Position auf "poDesigned" stelle, wird es auch nicht an der geänderten Position angezeigt sondern bei Left: 1 / Top: 1 (obwohl es im Designmodi ca. in der Mitte steht)
Hast Du die Variante von Armin übernommen?
  Mit Zitat antworten Zitat
Tim.exe

Registriert seit: 29. Apr 2003
186 Beiträge
 
#8

Re: Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 11:19
Ja hab ich, und das OnCreate ist jetzt das OnActivate Ereignis. Form1.Pos ist auf "poDesigned" gestellt. Fenster wird aber immer wie designed angzeigt, auch wenn die Position geändert wurde.
!!! Sigs stinken !!!
  Mit Zitat antworten Zitat
Tom

Registriert seit: 8. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#9

Re: Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 11:29
Erstelle ein neues leeres Projekt. Mach ein Doppelklick auf onCreate und schreibe
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  form1.Left := 100;
  form1.Top := 100;
end;
und drücke F9. Wie ist das Ergebnis?
  Mit Zitat antworten Zitat
Tim.exe

Registriert seit: 29. Apr 2003
186 Beiträge
 
#10

Re: Position von Programmfenster in *.ini speichern?

  Alt 14. Okt 2003, 11:37
Ergebnis ist:

vom linken Bildschirmrand: 100
vom oberen Bildschirmrand 100
!!! Sigs stinken !!!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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