AGB  ·  Datenschutz  ·  Impressum  







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

Probleme mit Elementen In Frames

Ein Thema von Real_Thunder · begonnen am 25. Apr 2006 · letzter Beitrag vom 5. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#1

Probleme mit Elementen In Frames

  Alt 25. Apr 2006, 14:27
Hallo erstamel.

Gleich vorweg möchte ich sagen das ich ein Delphi Neuling bin, und schon seit Tagen mit Google und in div. Foren Nach der Antwort Gesucht Habe... doch nichts gefunden....

Hier nun mein Problem:

Ich erstelle zur laufzeit Frames <= klappt Wundrbar;

beispiel:
Ich klicke auf button 1 und ein frame wird erstellt, wenn ich nun auf button 2 klicke soll der erste frame freigegeben werden, und der 2 erscheinen <= klappt auch wunderbar.

dies soll immer so weitergehen..
Also wenn ihc ein frame erstelle, soll das frame das gerade geöffnet ist freigegeben werden

ds Klappt auch, aber wenn ich nun auf ein element von dem Frame zugreifen möchte dann gibt es eine fehlermeldung
"Undefinierter Bezeichner".
Hier Poste ich mal den Quellcode der Unit

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, frame1, frame31, frame41;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;

    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  anz_frame: TFrame;


implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);
begin
  anz_frame.Free;
  anz_frame:=TFrame2.Create(self);
  with anz_frame do
  begin
     Parent:=Form1;
     Left:=16;
     Top:=48;
     width:=700;
     height:=400;
  end;
  anz_frame.edit1.text='Test';

end;

procedure TForm1.Button2Click(Sender: TObject);

  begin
  anz_frame.Free;
  anz_frame:=TFrame3.Create(self);
  with anz_frame do
  begin
     Parent:=Form1;
     Left:=16;
     Top:=48;
     width:=700;
     height:=400;
  end;
end;

procedure TForm1.Button3Click(Sender: TObject);
  begin
  anz_frame.Free;
  anz_frame:=TFrame4.Create(self);
  with anz_frame do
  begin
    Parent:=Form1;
    Left:=16;
    Top:=48;
    width:=700;
    height:=400;
  end;
end;

end.

das feld edit 1 Existiert auf der Frame.


ich danke Im Vorraus für eure Hilfe

MfG real_Thunder
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Probleme mit Elementen In Frames

  Alt 25. Apr 2006, 14:35
setz mal den Namen des Frames(name:='Framename')

Fast vergessen: Herzlich Willkommen in der DP
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Probleme mit Elementen In Frames

  Alt 25. Apr 2006, 14:41
Hallo Real_Thunder,

willkommen in der DP!

Du hast die Variable anz_frame als TFrame vereinbart, das ist der Grund für die Fehlermeldung. TFrame besitzt kein Edit-Feld, deine Instanz von Typ TFrame2 aber wohl.
Versuche es einmal mit folgender Vereinbarung:

var anz_frame : TFrame2; Gruß Hawkeye
  Mit Zitat antworten Zitat
Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#4

Re: Probleme mit Elementen In Frames

  Alt 25. Apr 2006, 15:24
Danke für die Antwort, habe es so gemacht, und ich habe zugriff auf die elemente.

Nun ist aber mein Schema Zusammengebrochen

ich möchte immer wenn ich ein frame erstelle, dass das frame was vorher geöffnet wurden ist, wieder freigegeben wird.


also quasi wenn ich auf den Button klicke, das erst anz_frame.free ausgeführt wird und dann eine neue form erstellt werden soll.

wenn ich nun aber anz_frame1 = anzframe xx benutze dann muß ich erst eine abfrage machen, welcher gerade geöffnet ist...

Also so wie ich das gemacht habe, wird das frame einfach nciht weider freigegeben...

wenn ich die anz_frame innerhalb der prozedur mit

var anz_frame : TFrame2; declariere dann nimmt er mir bei dem anz_frame.free den button raus....

bin i echt kurz vor dem Durchdrehen, mir ist von der logik her schon klar das ich anz_frame neu definiert habe , aber es muß noch die möglichkeit geben, auszulesen welcher frame gerade offen ist, und diesen dann wieder freigeben.....
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Probleme mit Elementen In Frames

  Alt 25. Apr 2006, 15:30
Deklariere anz_frame wieder als TFrame

in den Prozeduren verwendest du dann jeweils:

TFrame3(anz_Frame) anstatt dem normalen anz_frame
ausser bei
anz_Frame:=TFrame3.Create(Self);//hier bleibt es so also
TFrame3(anz_frame).Free; und
with TFrame3(anz_frame) do und das ganze noch für TFrame2 und TFrame4, gleiches Prinzip
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#6

Re: Probleme mit Elementen In Frames

  Alt 25. Apr 2006, 17:37
also komme ich theoretisch um eine If abfrage nicht drum rum, wenn ich selectieren möchte welcher frame geschlossen werden soll.

Ok, ich versuche mal mein bestes.

P.S.

Hier ist es um einiges freundlicher als in anderen Foren wo man erstmal zu hören bekommt:

darauf mußt du selbst kommen usw...

Vielen dank für die Hilfe
  Mit Zitat antworten Zitat
Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#7

Re: Probleme mit Elementen In Frames

  Alt 25. Apr 2006, 17:49
Wunderbar...

ES GEHT.......

Ihr seit hier echt super..

VIELEN DANK
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Probleme mit Elementen In Frames

  Alt 25. Apr 2006, 17:51
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Real_Thunder

Registriert seit: 25. Apr 2006
197 Beiträge
 
#9

Re: Probleme mit Frames

  Alt 3. Mai 2006, 12:19
Hallo ihc bin es wieder, irgendwie werde ich aus dem Frames nicht schlau,

das ich die frames alle auf der hauptform aus tauschen kann ist an sich kein poblem,
ich denke mein problem ist das ich das system hinter den frames nicht ganz verstehe , wegen den (anz_frame in klammern),

naja nun zu meinem hauptproblm, ich möchte aus einem frame heraus, das die aktuelle frame schließt, und sich eine andere frame einläd... an sich klapt es auch, wenn da nicht gleich eine fehlermeldung kommen würde

ic bekomme ene fehlermeldung, EAccess Violation, wenn ich dan alerdings auf fortfahren klicke, wechsle t er den frame, gehe ich nun wieder in den anderen frame, und mache das ganze noch mal, dann macht er es ohne fehlermeldung...

habe es auf verschiede weisen probiert, einmal genau so wie es oben beschrieben ist.... geht aber nicht...

dan hab ich es so versucht das er es von der form auf macht, mit

form1.KundeSuchen1.Click; Machmal bringt er mir auch den Fehler Abstracker Fehler...

Für einen Stupps in die richtige Richtung währe ich sehr Dankbar
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: Probleme mit Elementen In Frames

  Alt 3. Mai 2006, 12:35
Hallo.

Deine Frames solltest du besser so einbinden:

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Panel1: TPanel; // Left: 16; Top: 48; Height: 400; Width: 700
    procedure Button1Click(Sender: TObject);
  private
    FVisibleFrame: TFrame;
    procedure SetVisibleFrame(frame: TFrame);
  public
    property VisibleFrame: TFrame read FVisibleFrame write SetVisibleFrame;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SetVisibleFrame(frame: TFrame);
begin
  if Assigned(FVisibleFrame) then
    FVisibleFrame.Free;
  FVisibleFrame := frame;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  VisibleFrame := TFrame2.Create(self);
  with VisibleFrame as TFrame2 do
  begin
    Parent := Panel;
    Align := alClient;
    Edit1.Text := 'Test';
  end;
end;
Wenn du dann immernoch Probleme beim Wechseln der Frames hast, dann musst du mal deinen aktuellen Code zeigen.

Grüße vom marabu
  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 17:36 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