2. Fenster öffnen[gelöst]

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
McCry
Beiträge: 42
Registriert: Mi 20. Jul 2011, 21:49
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Na Hier
Kontaktdaten:

2. Fenster öffnen[gelöst]

Beitrag von McCry »

Hallo Leute,
Ich hab da mal ne Frage:
Wie "sage" ich dem PC,
das er:
1. ein 2. Formular öffnet,
oder
2. alle Objekte eines Formulars durch
andere ersetzt.

Danke schonmal


Lg McCry
Zuletzt geändert von McCry am Do 16. Feb 2012, 21:07, insgesamt 1-mal geändert.

Code: Alles auswählen

Signatur[color=#FF0000]:=[/color]McCry
Website[color=#FF0000]:=[/color][color=#0000FF]ritualist.bplaced.net[/color]

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: 2. Fenster öffnen

Beitrag von u-boot »

Es möge helfen :).

http://www.lazarusforum.de/viewtopic.php?f=55&t=3768

Ersetzen = löschen und was neues an dessen Stelle setzen.
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

McCry
Beiträge: 42
Registriert: Mi 20. Jul 2011, 21:49
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Na Hier
Kontaktdaten:

Re: 2. Fenster öffnen

Beitrag von McCry »

Hallo u-boot,
erstmal Danke für die Antwort.
Ich habe Dies mal ausprobiert:

Code: Alles auswählen

procedure TForm1.ButtonClick(Sender: Tobjekt);
begin
 Form2.show
end;
Ich habe die Procedure in die Unit des Ersten Formulars geschrieben.Oder gehört sie in die Unit des zweiten
Formulars.
Auf jeden Fall wird die Zeile

Code: Alles auswählen

Form2.Show
als Fehler markiert.
u-boot hat geschrieben:Ersetzen = löschen und was neues an dessen Stelle setzen.
Ich glaube du hast da etwas falsch verstanden.
ich meinte das so:
Wenn ich auf einen Button klicke, sollen alle Objekte des
Formulars verschwinden und es sollen neue erscheinen.


Ich hoffe du hast trotzdem eine gute Antwort für mich.

LG McCry

Code: Alles auswählen

Signatur[color=#FF0000]:=[/color]McCry
Website[color=#FF0000]:=[/color][color=#0000FF]ritualist.bplaced.net[/color]

u-boot
Beiträge: 308
Registriert: Do 9. Apr 2009, 10:10
OS, Lazarus, FPC: Ubuntu 9.10 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 785..

Re: 2. Fenster öffnen

Beitrag von u-boot »

McCry hat geschrieben: Ich hoffe du hast trotzdem eine gute Antwort für mich.
Jop hoffe ich auch ... evtl wird meine Antwort aber nicht so aussehn, wie du dir das erhoffst.
McCry hat geschrieben:Auf jeden Fall wird die Zeile

Code: Alles auswählen

Form2.Show
als Fehler markiert.
Zu einem Fehler gehört hoffentlich eine Fehlermeldung .... lesen und verstehen dieser wäre von immenser Bedeutung.

u-boot hat geschrieben:Ersetzen = löschen und was neues an dessen Stelle setzen.
Hmm ok vielleicht geht Anstatt löschen auch verschieben.
Aber ich denk Informatiker könnten mir dennoch zustimmen, weil Speichertechnisch im verschieben auch eine Art löschen vorkommt....
McCry hat geschrieben: Wenn ich auf einen Button klicke, sollen alle Objekte des
Formulars verschwinden und es sollen neue erscheinen.
Wohingegen "verschwinden" eher Interpretationssache sein kann. (Mir fällt auf die Schnelle freigeben oder verstecken ein.)
Für meine Interpretation jedenfalls steht diese Aussage meiner obigen Aussage nicht entgegen und hat sogar eine wichtige Gemeinsamkeit: Aus einem Problem (ersetzen) werden 2 Teilprobleme ("verschwinden" + "neue erscheinen").
Ubuntu 9.10 (L 0.9.28 FPC 2.4.x)

Heinrich Wolf
Beiträge: 323
Registriert: Di 12. Apr 2011, 13:21
OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
CPU-Target: 1core 1,8GHz 32Bit
Wohnort: Fürth
Kontaktdaten:

Re: 2. Fenster öffnen

Beitrag von Heinrich Wolf »

Hallo McCry,

Du könntest mit der Visible Property arbeiten.

Gruß
Heiner

camper3000
Beiträge: 31
Registriert: Fr 8. Jan 2010, 16:29

Re: 2. Fenster öffnen

Beitrag von camper3000 »

Visible, genau
ich würde jedes einzelne 'Gesicht' des Programms, also für die verschiedenen Stadien auf je ein Panel packen.
Dann einfach via

Code: Alles auswählen

//gesicht:TPanel
gesicht1.visible:=false;  //die einzelnen Aussehen deaktivieren bzw. aktivieren
gesicht2.visible:=true;
ändern

vergiss nicht die Standardeinstellung von visible nur bei dem Panel true sein darf, dass am Anfang zu sehen ist.

Hoffe konnte helfen
mfg camper3000
Auch wenn man einen Hammer hat, ist nicht jedes Problem ein Nagel.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 2. Fenster öffnen

Beitrag von pluto »

Nun ja... Ich glaube wir verstehen dich noch nicht richtig.

Ein Programm kann aus mehreren Fenstern besteht. Ein Fenster besteht wiederum aus mehren Komponenten. Wobei ein Fenster auch nur eine Komponente ist. Mit einer bestimmten Aufgabe.
Jedes Fenster hat eine Liste unter anderem. Die Liste Components. Das ist ein Array. Das kannst du durchgehen und dann alle Einträge rückwärts löschen.

Aber ich verstehe denn Sinn und Zweck noch nicht. Schau dir mal ein TPageControl an oder ein Panel an. Was genau möchtest du damit erreichen?
MFG
Michael Springwald

camper3000
Beiträge: 31
Registriert: Fr 8. Jan 2010, 16:29

Re: 2. Fenster öffnen

Beitrag von camper3000 »

pluto hat geschrieben:Die Liste Components. Das ist ein Array.
Das ist ein bisschen komisch:
Erst sagst du Components ist eine Liste, dann sagst du Components ist ein Feld...

Aber zur Sachen:
Wähle Datei an-->Klicke auf Neues Formular-->bearbeite das neue Formular wie ein normales Formular

Ein paar sachen die Zu beachten sind:
Zur Form1 gehört unit1, zu form2 unit2.
Das heisst in der Unit1 musst du unter uses unit2 einbinden(muss im gleichen ordner sein):

Code: Alles auswählen

uses unit2{,...};
komponenten aus form2/unit2 sprichst du innerhalb von unit1/form1 mit

Code: Alles auswählen

form2.{Komponentenname};
und umgekehrt an.
bei noch mehr Fenstern musste gucken, am besten unit3 in unit2 einbinden, in unit2 unit1 usw.
Das sollte gehen.

EDIT:

Code: Alles auswählen

form1.hide; //form 1 verstecken
form2.show //form2 zeigen
hoffe konnte helfen
mfg camper3000
Auch wenn man einen Hammer hat, ist nicht jedes Problem ein Nagel.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 2. Fenster öffnen

Beitrag von pluto »

Erst sagst du Components ist eine Liste, dann sagst du Components ist ein Feld...
Ja. Beides triff zu.
MFG
Michael Springwald

camper3000
Beiträge: 31
Registriert: Fr 8. Jan 2010, 16:29

Re: 2. Fenster öffnen

Beitrag von camper3000 »

Nein.
Eine Array hat eine feste Anzahl an Komponenten, eine Liste nicht.

Wenn du jetzt mit einem "dynamischen Array" kommst:
Das ist auch eine Liste, wird von der Syntax her aber wie ein Feld benutzt.
Auch wenn man einen Hammer hat, ist nicht jedes Problem ein Nagel.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 2. Fenster öffnen

Beitrag von pluto »

Also: Die Komponenten verwenden intern die OOP. Und der Begriff kommt aus der OOP Welt.
Ein Feld kann auch eine Variable sein. Es kann auch ein Statischer Array sein. Es kann Praktisch alles sein, außer eine Methode. Eine Methode wiederum gehört zu einer Klasse. Diese Methode kann eine funktion oder eine procedur sein. Aber zusammengefasst ist es eine Methode.

So ist das auch wenn ich sage: Das Feld Components ist intern ein Array. Ich hätte auch schreiben können: Die Variable bzw. passender die Eigenschaft(Property) ist ein intern ein Array.

Z.B. die Klassen die du nutzt z.b. TForm, TButton oder so. Die sind alle nach den OOP Prinzip aufgebaut.
MFG
Michael Springwald

camper3000
Beiträge: 31
Registriert: Fr 8. Jan 2010, 16:29

Re: 2. Fenster öffnen

Beitrag von camper3000 »

Denkste
und Alles zusammen ist keine Methode, sondern nen Objekt ^^
außerdem kann es nicht beides sein: Feld und Liste
Da könnten wir in lazarus ja gleich den Typ void einführen

Es ist nur eins von beiden.
camper3000
Auch wenn man einen Hammer hat, ist nicht jedes Problem ein Nagel.

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: 2. Fenster öffnen

Beitrag von mse »

camper3000 hat geschrieben: Es ist nur eins von beiden.
Wie wäre es mit "Feld vom Typ Liste"? Wobei "Feld"(= "field") und "property" nicht unbedingt dasselbe sind.

Martin

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: 2. Fenster öffnen

Beitrag von pluto »

Denkste
und Alles zusammen ist keine Methode, sondern nen Objekt ^^
Nein.... Nein.... Nein....

Ich kann das leider nicht besser beschreiben. Ein Objekt ist es nicht. Es ist eine Klasse bzw. gehört zu einer Klasse. Eine Klasse kann aus Methoden bestehen und aus Feldern.
Wobei Felder sowas wie Variablen sind und Methoden halt sowas wie Funktionen oder Proceduren sein können.

Code: Alles auswählen

TTest = class
  Var1:String
  procedure test(const aVar1:integer);
nun ist Var1 ein Feld der Klasse TTest und Test ist eine Methode der Klasse TTest. Ein ganz einfaches Beispiel. Wobei Var1 natürlich eigentlich eine Variable da stellen. Vielleicht so:
Variablen = Feld. Im Grunde bedeutet es das selbe. Wenn ich es mir recht überlege. Jedenfalls sehe ich es so... muss natürlich nicht richtig sein.
MFG
Michael Springwald

camper3000
Beiträge: 31
Registriert: Fr 8. Jan 2010, 16:29

Re: 2. Fenster öffnen

Beitrag von camper3000 »

pluto hat geschrieben:Ein Objekt ist es nicht.
O M G
Es ist quasi alles ein Objekt.
Die Mutter von allen Klassen ist TObject, ein Objekt.
Und eine Klasse ist eine Tochter von TObject.
Damit ist eine Klasse ein Objekt.
Ein Feld ist keine Liste, ein Feld vom Typ Liste gibts nicht, weil Feld (=Typ) schon einen Typ hat, und somit nicht noch den Typ Liste haben kann.
du meinst wohl eher ein Feld dessen Komponenten listen sind.

Das das eine klasse und nicht eine Methode ist weiß ich ziemlich gut.
Und ich weiß auch was ein Feld ist. Falls es Jemand nicht weiß (das ist aus dem Kopf geschrieben):
Ein Feld ist eine Menge von Variablen des gleichen Typs, wobei das Feld eine einzige Variable ist.

Ein Feld ist eine Variable (oder Konstante).
Ein Feld kann praktisch nicht alles sein, siehe oben.
Ich hab mir die Lazarus sources gezogen, allerdings hab ich die Zeile in der Components deklariert wird nicht gefunden.
Vlt später mal

mfg camper3000
Auch wenn man einen Hammer hat, ist nicht jedes Problem ein Nagel.

Antworten