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 1 von 2  1 2      
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#1

Fensterpositionen speichern?

  Alt 5. Jul 2007, 10:26
Guten Morgen!

Wie kann man am einfachsten Fensterpositionen bei sehr vielen Formen speichern?

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Luke_83

Registriert seit: 22. Mai 2007
Ort: Rödermark
32 Beiträge
 
Delphi 7 Professional
 
#2

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 10:31
Delphi-Quellcode:
Am einfachsten über die Variablen

Form1.Top -> Abstand vom oberen Desktop Rand
Form1.Left -> Abstand vom Linken Desktop Rand
Form1.Width -> Breite der Fenster
Form1.Height -> Höhe der Fenster
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 10:41
Ich nehme mal an du willst die Position einer form abspeichern, so das sie an der gleichen Position erscheint wenn sie das naechste Mal wieder erstellt wird. Das nennt sich Persistenz von Daten. Die JVCL hat dazu geeignete Komponenten. Ich glaube das Beispiel JvAppStorage ist dafuer zustaendig. die Daten werden wahlweise in die Registry, ein INI-File oder ein XML File gespeichert.
  Mit Zitat antworten Zitat
Benutzerbild von smart
smart

Registriert seit: 19. Dez 2004
Ort: Bochum
1.266 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 10:44
Zitat von Luke_83:
Delphi-Quellcode:
Am einfachsten über die Variablen

Form1.Top -> Abstand vom oberen Desktop Rand
Form1.Left -> Abstand vom Linken Desktop Rand
Form1.Width -> Breite der Fenster
Form1.Height -> Höhe der Fenster
Hi.

Das ist Klar. Ich hatte mich bestimmt unklar ausgedrückt. Ich erzeuge dynamisch viele Formen. (Form1 .. Form20...) Die genaue Anzahl ist unbestimmt. Jetzt möchte ich die Position der Formen speichern. Jetzt ist es sehr umständlich z. B. 20 mal Form1.Top usw. zu coden. Vorallen wenn man das Ende nicht kennt.

Gruß
Heike
Heike Kretschmann
Viele Grüße aus Bochum

kaum denkt man alles ist fertig, da fängt man wieder von Vorn an.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 10:49
Du wirst deine Fenster ja irgendwie verwalten müssen in einem Array oder einer Liste. Diese Verwaltungsstruktur kannst du ja durchgehen. Oder du leitest deine Formulare von einem eignen Fomrluar ab, welches du schon um die gewünschten Eigenschaften und Methoden erweitert hast.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 10:52
Bei der RxLibrary sind zwei Komponenten dabei, die das unterstützen.
Beide speichern die Werte in einem ini-File oder in der Registry

TFormPlacement
- Kann die Grösse und Position des Forms speichern

TFormStorage
- Kann die Grösse und Position des Forms speichern
- Kann die Properties der anderen Komponenten auf dem Form speichern
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#7

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 11:15
Ansonsten schau die mal die Eigenschaften des Screen Objektes an. Wenn du die Formulare erstellst, dann sollte Screen.FormCount und Screen.Forms[] diese mit aufführen. Darüber kannst du iterieren und im Zusammenhang mit dem Namen/ClassName die Positionen speichern und wiederherstellen.
  Mit Zitat antworten Zitat
Luke_83

Registriert seit: 22. Mai 2007
Ort: Rödermark
32 Beiträge
 
Delphi 7 Professional
 
#8

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 11:20
Delphi-Quellcode:

Hallo hab mal folgenden Code geschrieben. Vielleicht hilft er dir ja ein wenig weiter.


procedure TForm1.Forms_spichern;
var Formen:TForm;
    i:Integer;
    F:TextFile;
    Temp:String;
    Max_Forms:Integer;
begin

Max_Forms:=4; //Anzahl der Formen
AssignFile(F,'C:\Forms.txt');
ReWrite(F);

 For i:=1 to Max_Forms do Begin
    Formen:= TForm ( FindComponent ('Form'+InttoStr(i) ));

    Temp:=Inttostr(Formen.Top); Writeln(F,Temp);
    Temp:=Inttostr(Formen.Left); Writeln(F,Temp);
    Temp:=Inttostr(Formen.Top); Writeln(F,Temp);
    Temp:=Inttostr(Formen.Height); Writeln(F,Temp);

  End;
  CloseFile(F);
end;
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 11:26
FindComponent() findet immer nur Unterelemente des Elementes, dessen FindComponent() aufgerufen wird. Da ich aber kein Element kenne, welches Formulare als Unterkomponenten hat, wüsste ich auch nicht, wie FindComponent() Formulare finden könnte/sollte.
  Mit Zitat antworten Zitat
hoika

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

Re: Fensterpositionen speichern?

  Alt 5. Jul 2007, 11:28
Hallo,

ich leite alle meine Forms von einem Basis-Form ab,
dort wird im OnClose die Position gespeichert (bei ModalResult mrOK)
und im FormCreate geladen.

Wie du Formulare ableitest, steht im Handbuch.
Bei deinen "alten" musst du wie folgt vorgehen

- dfm öffnen (nicht die pas)
ich geh davon aus, dass die dfm im TextFormat vorliegt,
sonst halt ändern
- object in inherited ändern
- speichern, Datei schliessen
- pas öffnen
- uses "unit das Basis-Forms"
- TForm1 = class(TForm) ändern in
TForm1 = class(TBaseForm)
- in FormCreate als 1. Zeile ein inherited
- bei OnClose-Benutzung im jeweiligen Form muss auch noch ein inherited rein

Die Benutzung eines Basisforms hat auch noch andere Vorteile,
z.B. Vista-spezifische Sachen einbauen (siehe die letzten Entwickler-Zeitungen),
bestimmte wiederverwendbare Routinen reinpacken usw.

Heiko
Heiko
  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 12:51 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