Autor Beitrag
Luncustaf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Fr 13.12.02 15:56 
hi,

ich hab hier eine Pagecontrol auf dieser erzeuge ich zur laufzeit mehrere tabsheets. Auf diesen tabsheets sollen nun memofelder platziert werden klapptauch sehr gut wenn nicht gar einwandfrei. nur will ich in diese Meofelder nun eine textdatei laden und zwar in das memofeld das zur Zeit active ist. Da die memofelder immer verschiedene Anmen haben müssen, hab ich diese mit einem Zähler versehen so das das erste als ANme fenster0 hat das zweite Fenster1 das dritte Fenster2 usw.

wenn ich nun auf das memofeld zugreifen will dann bringt der compiler mir jedesmal eine zugriffsverletzung.

ich mache das mit diesem Code

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
    AssignFile(f,OpenD.FileName);
    {$i-} Reset(f); {$i+}
    if IOResult <> 0 then
    begin
       ShowMessage('Fehler...');
       Exit;
    end;
    while not eof(f) do begin
          Readln(f,s);
         TMemo(Page.ActivePage.FindComponent('Fenster'+Page.ActivePage.Caption));


ausblenden Quelltext
1:
         TMemo(Page.ActivePage.FindComponent('Fenster'+Page.ActivePage.Caption));					


hiermit suche ich auf der Activen seite des pageControls (Page) nach einer TMemo Komponente die den Namen Fenster + die Caption des Activen Fensters hat. zur Erklärung die Tabsheets haben die Gleiche bezeichnung wie die nummer der Memofelder.

Also Fenster0 gehört zu Tabsheet0, Fenster1 gehört zu Tabsheet1 usw.

ich weis nicht wo der FEhler eligt.

gr€€tz
foxy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 814

Ubuntu, Gentoo
C++, PHP, Java, Ruby, Perl (Eclipse)
BeitragVerfasst: Fr 13.12.02 16:00 
hmm mal ein vorschlag was ich mal versuchen würde .... mach doch ne spezielle abfrage if blaFenster.activ then bla bla ...

ka ob das dir hilft warscheins nicht =) aber ich hätte das mal versucht ...

_________________
"Only wimps use tape backup: real men just upload their important stuff on ftp, and let the rest of the world mirror it." (Linus Torvalds)
OperatingSystem Laptop (Ubuntu Hardy)
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Fr 13.12.02 16:01 
hi,

so wie ich Deine Frage und Deinen Quelltext verstehe suchst Du die Memokompo mit dem Namen, so wie das aktuelle TabSheet heißt. Nur was ich garnicht verstehe, steht oben im TabSheet jetzt "Tabsheet0" oder "Fenster0" :?: :?: :?
LCS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1305
Erhaltene Danke: 1

WIN 7, WIN 8
Delphi XE5, Delphi XE, Delphi 2007
BeitragVerfasst: Fr 13.12.02 16:08 
Hi
könnte auch sein, dass der Fehler bereits beim Erstellen der Memos passiert. Hast du mal kontrolliert, ob du dem Memo auch das jeweilige Tabsheet als Parent zuordnest? Wenn nicht, dann kann das mit FindComponent auch nicht funktionieren.

Gruss Lothar

_________________
Der BH ist für die Brust, der Plan ist für'n Ar...
Luncustaf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Fr 13.12.02 16:14 
hi,

der tabsheet heißt einfach 0, 1, 2 usw. die memos heißen dann Fenster0, Fenster1 usw.

die erzeugung funktioniert so.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
 
      pruefe := memozaehler;
      memozaehler := memozaehler +1;
       with TTabsheet.Create(Self) do
       begin
            PageControl := Page;
            Caption := IntToStr(memozaehler);
            Page.SelectNextPage(memozaehler > pruefe);
            Fenster := TMemo.Create(self);
            Fenster.Parent := Page.Pages[pruefe];
            Fenster.Align := alClient;
            Fenster.Name:='Fenster'+ IntToStr(memozaehler);
            Page.ActivePageIndex := memozaehler;
            Page.ActivePage.ShowHint := True;

       end;



gr€€tz
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Fr 13.12.02 17:55 
Hallo,

ausblenden Quelltext
1:
Page.ActivePage.FindChildControl('Fenster'+Page.ActivePage.Caption);					

_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
Luncustaf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 324

Win 2k
D7 Ent.
BeitragVerfasst: Mo 16.12.02 09:07 
hi,

danke für eure antworten smiegels lösung hat geholfen thx vielmals und wieder was gelernt :)


gr€€tz