AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TPageControl: nach schliesen geht nicht mehr viel :/
Thema durchsuchen
Ansicht
Themen-Optionen

TPageControl: nach schliesen geht nicht mehr viel :/

Ein Thema von Red_Dragon · begonnen am 20. Nov 2004 · letzter Beitrag vom 21. Nov 2004
Antwort Antwort
Red_Dragon

Registriert seit: 23. Okt 2004
Ort: Germany
51 Beiträge
 
Delphi 7 Enterprise
 
#1

TPageControl: nach schliesen geht nicht mehr viel :/

  Alt 20. Nov 2004, 12:08
hi,

also mein problem ist das ich beim schliesen der Tabsheets zwar wieder neue öffnen kann aber eben funktionen wie copy & past oder OpenDialog nicht mehr funktionieren

Der Teil zum schliesen:
Delphi-Quellcode:
procedure TForm1.ToolButton15Click(Sender: TObject);
begin
PageControl1.Pages[PageControl1.ActivePageIndex].free;
end;

Der Teil zum Öffnen:
Delphi-Quellcode:
procedure TForm1.NewTabsheet;
begin
  INC (pagecount);
  SetLength (pages,pagecount);
  SetLength (edits,pagecount);
  pages[pagecount-1] := TTabSheet.Create(PageControl1);
  pages[pagecount-1].PageControl := PageControl1;
  pages[pagecount-1].Caption := 'Neu Datei';
  edits[pagecount-1] := TSynEdit.Create(pages[pagecount-1]);
  edits[pagecount-1].Align := alClient;
  edits[pagecount-1].Gutter.ShowLineNumbers := true;
  edits[pagecount-1].Parent := pages[pagecount-1];
  PageControl1.ActivePageIndex := PageControl1.pagecount-1;
end;

eine funktion die nach schliesen nicht geht:
Delphi-Quellcode:
procedure TForm1.Kopieren1Click(Sender: TObject);
begin
edits[PageControl1.ActivePageIndex].CopyToClipboard;
end;
Walter
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: TPageControl: nach schliesen geht nicht mehr viel :/

  Alt 20. Nov 2004, 13:55
Hmm.. dein Ansatz ist interessant.

Über TLists und Containerklassenklassen zu gehen wäre einfacher, aber mit einer simplen Modifikation sollte dein Ansatz auch Funktionieren. StattPageControl1.ActivePageIndex solltest duPageControl1.Pages[PageControl1.ActivePageIndex].Tag verwenden, dann sollte es deinem Willen entsprechend funktionieren.
  Mit Zitat antworten Zitat
Red_Dragon

Registriert seit: 23. Okt 2004
Ort: Germany
51 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: TPageControl: nach schliesen geht nicht mehr viel :/

  Alt 20. Nov 2004, 14:38
Zitat von Dax:
Hmm.. dein Ansatz ist interessant.

Über TLists und Containerklassenklassen zu gehen wäre einfacher, aber mit einer simplen Modifikation sollte dein Ansatz auch Funktionieren. StattPageControl1.ActivePageIndex solltest duPageControl1.Pages[PageControl1.ActivePageIndex].Tag verwenden, dann sollte es deinem Willen entsprechend funktionieren.
hmmm ich hab das jetzt mal beim schliesen gesetzt aber copy, past, cut etc.pp. gehen irgendwie immer noch net :/ dafür geht opendialog zum teil... er läd nur in das falsche tabsheet rein....
Walter
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: TPageControl: nach schliesen geht nicht mehr viel :/

  Alt 20. Nov 2004, 14:39
Wenn du es nur beim schliessen gesetzt hast, ist das kein Wunder. Du must es überall ersetzen.
  Mit Zitat antworten Zitat
Red_Dragon

Registriert seit: 23. Okt 2004
Ort: Germany
51 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: TPageControl: nach schliesen geht nicht mehr viel :/

  Alt 20. Nov 2004, 14:46
Zitat von Dax:
Wenn du es nur beim schliessen gesetzt hast, ist das kein Wunder. Du must es überall ersetzen.
hatte ich schon gemacht war aber irgendwie der selbe erfolg :/
Walter
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: TPageControl: nach schliesen geht nicht mehr viel :/

  Alt 20. Nov 2004, 21:50
Moin Red Dragon,

was mir auffällt:
Beim Schliessen korrgierst Du Dein Pages Array nicht.
Das enhält dann ja einen ungültigen Eintrag.

Wozu dient das überhaupt? Im PageControl ist ja schon ein TabSheet Array enthalten.

Öffnen könntest Du ja so machen:

Delphi-Quellcode:
procedure TForm1.NewTabsheet;

var
  tsWork : TTabSheet;

begin
  tsWork := TTabSheet.Create(PageControl1);
  tsWork.PageControl := PageControl1;
  tsWork.Caption := 'Neu Datei';
  with TSynEdit.Create(tsWork) do begin
    Align := alClient;
    Gutter.ShowLineNumbers := true;
    Parent := tsWork;
  end;
  PageControl1.ActivePageIndex := PageControl1.pagecount-1;
end;
Schliessen dann so wie gehabt,allerdins solltest Du noch prüfen, ob überhaupt noch ein Tabsheet da ist, das geschlossen werden könnte.

Funktionen wie kopieren so:

Delphi-Quellcode:
procedure TForm1.Kopieren1Click(Sender: TObject);

var
  cmpWork : TComponent;
  iIndex : integer;

begin
  for iIndex := 0 to PageControl1.Pages[PageControl1.ActivePageIndex].ComponentCount-1 do begin
    if PageControl1.Pages[PageControl1.ActivePageIndex].Components[iIndex] is TSynEdit then begin
      (PageControl1.Pages[PageControl1.ActivePageIndex].Components[iIndex] as TSynEdit).CopyToClipboard;
      break;
    end;
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Red_Dragon

Registriert seit: 23. Okt 2004
Ort: Germany
51 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: TPageControl: nach schliesen geht nicht mehr viel :/

  Alt 21. Nov 2004, 14:35
hmmm also chris einen unterschieb macht das leider auch net kommt immer noch der gleiche fehler ob ich das mit deinem source mache oder mit dem den ich nutze :/ ich hab mir schon überlegt das garnicht zu schliesen sondern nur optisch hervorzurufen in dem ich einfach das teil auf visible := flase stelle nur witzige weise taucht das wieder auf wenn ich nen anderen tab anklicke...
Walter
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: TPageControl: nach schliesen geht nicht mehr viel :/

  Alt 21. Nov 2004, 16:29
Moin Red Dragon,

ich kann das Problem nicht nachvollziehen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:19 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