AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Frams in Delphi

Ein Thema von fredi · begonnen am 4. Nov 2005 · letzter Beitrag vom 8. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2   
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#1

Frams in Delphi

  Alt 4. Nov 2005, 12:07
die Delphi-Hilfe und auch das mitgelieferte Beispiel sind leider nicht wirklich Aussagekräftig, deshalb suche ich nach einem Beispiel wo das Handling mit Frames gut ersichtlich ist.

Was ich machen möchte:
Ich gestalte ein Frame mit allen objekten wie TEdit, TMemo, etc und möchte darauf auch gleich alle Funktionalitäten für das Datenhandling vom editieren bis zum Speichern und Löschen unterbringen.

Nun möchte ich aus einer Haupliste heraus beliebig viele Fenster zum Bearbeiten der Daten erstellen.

zum Beispiel: Kunde1-->Frame1, Kunde2-->Frame2 usw.
Wobei ich jedes Frame als eigene Form am Bildschirm darstellen möchte, wo man die Form dann herumschieben kann, etc.

geht das?
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Frams in Delphi

  Alt 4. Nov 2005, 12:15
Warum nimmst du dann nicht gleich ein Form, anstelle eines Frames? Frames sind sozusagen "Forms im Form", so dass du ähnliche Benutzeroberflächen, die alle gewisse gemeinsame Elemente haben, nicht jedesmal neu erstellen musst, sondern sozusagen in einem Frame zentral speichern kannst.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#3

Re: Frams in Delphi

  Alt 4. Nov 2005, 13:10
das ist ja genau der Punkt.
Auf einem Frame plaziere ich alle Steuerelemente, mache dann mehrer Form und weise diesen Forms das Frame zu.
Wenn ich jetzt von meiner Mainform die einzelnen Forms aufrufe: form1.show, Form2.show haben diese Forms alle Steuerelemente drauf.

Aber wie kann ich jetzt z.B. ein TEdit auf Form1 das vom Frame kommt ansprechen. Werte zuweisen?
fredi
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Frams in Delphi

  Alt 4. Nov 2005, 13:14
Für den Frame existiert doch ein Objekt. Darüber kannst Du dann zugreifen, z.B.:
frameKunde.EditKdnr.Text := tblKundenKdnr.AsString;
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#5

Re: Frams in Delphi

  Alt 4. Nov 2005, 13:29
das habe ich ja probiert, aber delphi kennt das frame nicht

uses Frame2Unit2, Form1Unit, Frame2Unit;


{$R *.DFM}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
Frame2.Label1.Caption := 'jetzt bin ich auf Form1';
Form1.Show;
end;
  Mit Zitat antworten Zitat
tigerman33

Registriert seit: 30. Jul 2005
Ort: München
423 Beiträge
 
Delphi 2005 Professional
 
#6

Re: Frams in Delphi

  Alt 4. Nov 2005, 14:38
Zitat von fredi:
das ist ja genau der Punkt.
Auf einem Frame plaziere ich alle Steuerelemente, mache dann mehrer Form und weise diesen Forms das Frame zu.
Wenn ich jetzt von meiner Mainform die einzelnen Forms aufrufe: form1.show, Form2.show haben diese Forms alle Steuerelemente drauf.
Eben, das ist ja genau der Punkt.
Wenn du einfach die Formklasse TEingabeForm erstellst (ganz normal im Objektinspektor) kannst du von dieser Klasse zur Laufzeit beliebig viele Instanzen erzeugen:
Delphi-Quellcode:
var AForm: TEingabeForm;
begin
  ...
  AForm := TEingabeForm.Create(nil);
  // Sachen initialisieren, wenn nötig
  AForm.Show;
end;
Musst nur aufpassen, dass die Instanzen nach dem Schließen auch wieder freigegeben werden. Das lässt sich glaub ich mit dem Parameter CloseAction im OnClose-Event des Forms erreichen.
Das Frame ist ein Umweg hier, und "einem Form ein Frame zuweisen" funktioniert schon mal nicht, bzw. hat zumindest nicht den von dir gewünschten Effekt.
Christian
Der Computer hilft mir, Probleme zu lösen, die ich ohne Computer nicht hätte.
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#7

Re: Frams in Delphi

  Alt 7. Nov 2005, 11:58
ja das erstellen der neuen Instanzen und das Abspeichern der diversen Informationen der einzelnen Instanzen geht ja ganz gut, nur das freigeben der einzelnen Instanzen beim FormClose geht nicht. Ich bekomme immer eine Fehlermeldung.

ich habe folgende Versuche gemacht:
1. beim OnClose Ereignis
Delphi-Quellcode:
   procedure TEingabeForm.FormClose(Sender: TObject;
     var Action: TCloseAction);
   begin
    Free;
   end;
2. CloseQuery Ereignis:
Delphi-Quellcode:
procedure TEingabeForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
if isChange then
   begin
   if Application.MessageBox('schließen ohne speichern ?', 'Frage', mb_YESNO)= IDYES then canClose := true else
      canClose := false;
   end else canClose := true;

if canClose then free;
end;
Ich bekomme dabei eine Zugriffsverletzung.

Wenn ich das free weglasse, kann ich ohne Probleme die Form schließen, jedoch vermute ich, daß die Instanz im Hintergrund offen bleibt.

Wie kann ich die einzelnen Form auflösen?

fredi

[edit=MrSpock]Delphi Codes eingefügt. Mfg, MrSpock[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Frams in Delphi

  Alt 7. Nov 2005, 12:01
Bitte Delphi-Tags verwenden!

Im Formclose darfst Du kein Free aufrufen. Das Objekt wird normalerweise in Destroy zerstört. Wenn es dort aber schon weg ist, kommt es zu dem Fehler.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
fredi

Registriert seit: 6. Aug 2003
43 Beiträge
 
Delphi 5 Professional
 
#9

Re: Frams in Delphi

  Alt 7. Nov 2005, 12:05
Ok wenn ich also weder im OnClose noch im OnCloseQuery ein free verwenden kann, wo dann?

Kannst'ma ein Beispiel geben?

danke
Fredi
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Frams in Delphi

  Alt 7. Nov 2005, 12:09
Ein Objekt wird im Destruktor freigegeben (sollte normalerweise so programmiert sein). Dass der aufgerufen wird, teilst Du in FormClose durch Setzen der var CloseAction auf caFree mit. Du kannst ansonsten ein Objekt nicht aus sich selbst heraus "free-en".
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:22 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