AGB  ·  Datenschutz  ·  Impressum  







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

Mainmenu

Ein Thema von Hansa · begonnen am 21. Jan 2003 · letzter Beitrag vom 21. Jan 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Jan
Jan

Registriert seit: 24. Sep 2002
Ort: Magdeburg
491 Beiträge
 
Delphi 7 Enterprise
 
#11
  Alt 21. Jan 2003, 13:42
Hallo Hansa,

ich blicke durch das was du da gerade gesagt hast jetzt nicht ganz durch.
Ich glaube du hast absolut nicht verstanden was ich gemacht habe, ich habe lediglich das form2.show in die unit2 verschoben und eine Procedure, die das form2.show verwendet von unit1 aus aufgerufen.

Zitat:
jetzt habe ich es einfach mal so machen wollen

Code:
Form2.Create ()
Was soll denn das sein?

Von form2.create war garnicht die Rede.

Das Form1.create event erzeugst du, wenn du im form1 im OI unter Eigenschaften das oncreate event doppelklickst. darein schreibst du dann das, was ich oben schon geschrieben habe, und du musst auch keine neue Klasse erstellen, theoretisch kannst du die bereits vorhandene Form2-klasse aus unit2 auch verwenden und die Procedure einfach dieser Klasse hinzufügen, aber vergiss dann nicht die klasse auch zu in unit 1 zu definieren:

Code:
var
  classvar: tform2;
und:


Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
classvar:tform2.create;
end;
Ich hoffe, dass das jetzt verständlicher war, was ich gemeint habe.
Gruß
Jan
Jan
Wenn die Sonne der Kultur tief steht, werfen auch kleine Gestalten lange Schatten.
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#12
  Alt 21. Jan 2003, 15:31
Ich weiss nicht ob das hilft, aber ich create meine Forms erst wenn ich sie brauche und schmeiss sie weg, wenn ich sie nicht mehr brauche.

Also erstmal werden alle Forms(ausser das Hauptformular) aus Projekt/Optionen/Forms/AutoCreate entfernt bzw rechts rüber geschoben. Anschliessend erstell ich das jeweilige Formular, wenn ich es z.B. über ein Menü aufrufe, mit:

Code:
  Form1 := TForm1.Create(Application);
  if Form1.ShowModal = mrOK then
    Form1.Release;
.. und schliesse es mit einem Schliessen-Button dem ich den Wert "ModalResult := mrOK" mitgebe, bzw direkt im Programmcode (in OnClose), wenn vorher noch was anderes ausgeführt werden soll.

Bei mir hat es sich zumindest schon mehrfach bewährt und die Programme startet auch noch schneller, da nur das geladen wird was man wirklich braucht.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13
  Alt 21. Jan 2003, 18:44
Hi,

das da sieht gut aus. So müßte das einwandfrei gehen. Werde es vielleicht heute noch testen. Nur : Wieso soll das Programm schneller starten ? Die EXE wird durch den zusätzlichen Code doch wohl nicht kleiner, oder worauf willst Du hinaus ?

Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14
  Alt 21. Jan 2003, 18:52
Die Exe wird nicht kleiner, aber so werden die Formulare erst geladen, wenn sie benötigt werden und nicht gleich alle beim Start deiner Anwendung.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#15
  Alt 21. Jan 2003, 18:54
Hi,

ist das so zu verstehen wie ein Overlay früher ?

Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#16
  Alt 21. Jan 2003, 19:16
Hi X-Dragon,

als ich den Quelltext gesehen habe, ach hab ich doch schon gesagt, daß das für mich gut aussieht. Konnte es deshalb nicht lassen, das direkt auszuprobieren und sieh an zumindest die Form, die ich haben wollte ist da. Danach kommt zwar eine Exception, aber das ist bei StartTransaction. Vermute den Fehler deshalb eher bei SQL. Aber noch eine Frage : Wieso brauche ich das Release nur, falls ShowModal. Das blöde ShowModal kriege ich einfach nicht gepeilt. Kann mir das vielleicht mal einer so einfach erklären, daß ein absoluter NewBie es verstehen würde.

Gruß
Hansa
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#17
  Alt 21. Jan 2003, 19:21
Hi,

der Fehler ist wahrscheinlich geklärt. Datenbank-Pfad ist noch nicht definiert. Das kann ja nicht gehen. Das ShowModal kapiere ich irgendwie trotzdem nicht richtig.

Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von X-Dragon
X-Dragon

Registriert seit: 14. Jan 2003
Ort: Schortens
289 Beiträge
 
Delphi 6 Enterprise
 
#18
  Alt 21. Jan 2003, 20:00
Wenn man ein Fenster "Modal" öffnet, ist automatisch nur dieses aktiv. Es ist also kein zugreifen aufs Hauptformular mehr möglich, bis das modal-geöffnete Unterformular geschlossen ist.

Zusätzlich kann man z.B. 2 Button aufs Fenster plazieren und diesen mit der Eigenschaften "ModalRessult" im Objektinspektor, ein Ergebniss mitgeben (mrOK/mrCancel/...).

Also wenn ein Button mit ModalResult auf "mrOK" und der andere auf "mrCancel" eingetellt ist, wird automatisch beim drücken eines der Button, das Fenster geschlossen und dieser Wert jeweils übergeben.

In meinem Beispiel wird bei "mrOK" der Befehl "Release" ausgeführt der das Fenster schliesst und vollständig aus dem Speicher entfernt.

Man kann aber auch erstmal den normalen Programmcode abarbeiten, beim drücken eines Schliessen-Buttons (z.B. Daten speichern), und das Fenster dann mit
Code:
ModalResult := mrOK;
schliessen (wobei dann natürlich das Feld "ModalResult" bei dem Button leer sein muss).
  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:15 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