Autor Beitrag
Maa83
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 160

Win XP Pro
D6 Ent
BeitragVerfasst: Do 27.03.03 17:03 
Hallo ihr
ich hab folgendes Problem:

und zwar hab ich ein Fenster auf diesem befindet sich ein Button.
Klicke ich auf diesen Button öffnet sich ein Suchfenster in dem ich einen Datensatzt auswähle. Aus diesem Datensatzt lese ich die IdentNummer aus und geb diese zurück an das erste Fenster und schließe das SuchenDLG wieder.

Das Problem:
wenn ich das SuchenDLG aufrufe wird das erste Fenster auf NIL gesetzt da es sich um MDIChilds handelt...
deshalb muss ich mir den Pointer des Fensters merken.
Wenn ich den Pointer nun wieder zuweise habe ich auch das richtige Fenster wieder, kann die Variablen ansprechen usw.
Nur die Komponeten(Editfelder, ComboBoxen...) auf dem Fenster kann ich nicht ansprechen da diese immer noch aus mir unerfindlichen Gründen auf NIL gesetzt sind!
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Fr 28.03.03 10:57 
Hi,

Maa83 hat folgendes geschrieben:
wenn ich das SuchenDLG aufrufe wird das erste Fenster auf NIL gesetzt da es sich um MDIChilds handelt...

Sorry, aber das verstehe ich nicht. Erkläre doch mal bitte was genau Du jetzt machst und warum. Vielleicht gibt es ja eine bessere Möglichkeit Dein Ziel zu erreichen.

Gruß
Tino
Maa83 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 160

Win XP Pro
D6 Ent
BeitragVerfasst: Fr 28.03.03 12:44 
Ich habs jetzt doch schon selber hinbekommen... :D

man ist das ein sche*** mit den Zeigern in Delphi

Wenns interessiert:

Pointer-Variable vom Typ ^TFenstername deklarieren
PointerVar: ^TFenster;

Pointer zwischensepeichern mit:
PointerVar := @TFenster;

Pointer dem Fenster wieder zuweisen mit:
TFenster := PointerVar^;

Bei diesem Thema merkt man richtig das die Leute von Borland keinen Bock hatten und alles von C übernommen haben... :shock:
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Fr 28.03.03 13:49 
Objekte sind eigenlich schon Pointer, dh du kannst dir das ganz mit referenzieren/dereferenzieren eigentlich sparen!

TForm1 = class(TForm)
...
end;

var
pTempForm: TForm;

pTempForm := Form1; //zwischenspeichern
Form1 := pTempForm; // wieder zuweisen

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!