Selektive Fliesen in Mdi-Editoren


Menüpunkt Fenster/Fliese ist nützlich, wenn nur zwei Dateien geöffnet sind. Dies
Code wird ein nützlicher 'Tile Top 2 der N Fenster', die nicht implementiert.
verlieren Sie andere Dateien, die geöffnet werden können.
Selektive Tiling in MDI-Editoren
Gen Fowler
[email protected]

28. Mai 2001 - Änderung Wenn ich Fenstertracking in einem Lter-Artikel hinzugefügt, Fenster Kontrollnummern in MDI-Editoren, ich fand, dass ich nicht Tagwerte gesetzt hatte, wenn die Dateien Wiedereröffnung, vor Fliesen geschlossen. Ich habe diese Änderung in der TFrameForm.Tile2ofN1Click:
Geliehene Mut von Open1Click zu ersetzen
ReopenIt in der eWriter komplexe Verflechtung
mit TEditForm.Create(Self)-do
beginnen
Open(TileTwo[i]);
Tag: = 3 + i;
Ende;
Ersetzt:
Geliehene Mut von Open1Click zu ersetzen
ReopenIt in der eWriter komplexe Verflechtung
mit TEditForm.Create(Self)-do
Open(TileTwo[i]);


Einige Hinzugefügter Code Wenn Sie Ziegel Top 2 von N Windows in TextEdit eingerichtet haben, betrachten Sie den Code arbeiten, werden Sie diese Routine SaveAs1Click MDIEdit.pas hinzufügen möchten. Sie bemerkt haben, dass wenn Sie eine neue Datei, gespeichert oder nicht, hatte Sie einige seltsame Ergebnisse bekommen. Fügen Sie diese und Sie erhalten nicht ungerade Ergebnisse, wenn Sie die Datei (geben sie einen Pfadnamen) speichern. Sie sollten dieses Menüelement nicht verwenden, wenn Sie eine neue ungespeicherte Datei haben.
Der Verlust der Größenanpassung wiederherstellen ist nicht einer der seltsamen Effekte. Tiling1 produziert, die Wirkung und ich nenne es in Ziegel Top 2 von N Windows.
Prozedur TEditForm.Saveas1Click(Sender: TObject);
beginnen
SaveFileDialog.FileName: = Pfadname;
Wenn SaveFileDialog.Execute dann
beginnen
Pfad: = SaveFileDialog.FileName;
Bildunterschrift: = ExtractFileName(PathName);
OpenFiles.Insert (Tag, Pfadnamen); Liste neuer Pfadname
Save1Click(Sender);
Ende;
Ende;


Warnung: Der Prüfstand für diesen Code ist Borlands TextEdit-Demo, die mit Delphi kommt. Wenn Sie in Delphi 5 oder 5.01 kompilieren, brauchen Sie die modifizierte forms.pas, die ich Ihnen in meinem früheren Artikel direkt Programmierung System/Next (Prev) in MDI-Editoren.

Wenn Sie kompilieren und Ausführen von Borlands TextEdit (Demos/Doc/TextEdit) und klicken Sie im Menü Fenster, finden Sie zwei Datei Vermittlung von Menüelementen: Fliesen und Cascade. Der Tile-Befehl ist ein Design-Wunder. Wenn Sie zwei Dateien geöffnet haben, werden sie vertikal gestapelt. Dies ist eine sehr nützliche Arbeit-Anordnung. Aber weitergehen können. Haben Sie drei Dateien öffnen, werden sie vertikal noch gestapelt. Nun, es gibt nicht viel Arbeitsfläche in jedem von ihnen. Haben Sie vier Dateien öffnen, besetzen sie Quadranten des Clientbereichs. Ich habe nicht gewagt, mit fünf Dateien öffnen versuchen. Ich fürchte die Pixel aus dem Bildschirm heraus knallen.
Fliese ist am nützlichsten, wenn Sie nur zwei Dateien geöffnet haben. Im Rahmen eines Projektes jedoch sollten Sie ein halbes Dutzend griffbereit zu haben. Was Sie brauchen, ist eine Möglichkeit, alle Dateien, die aber zwei beiseite, mit einem Mausklick festlegen und bringen sie später wieder mit einem Mausklick.
Sie wollen nicht zu kümmern, ob Dateien aufgeteilt werden oder nicht, wenn die zweite Klicken machen. Der folgende Code implementiert dies durch ein neues Element im Fenster unten Fliese. Klicken Sie auf Fliese besten 2 N Windows. Alle Dateien außer die ersten beiden sind geschlossen und die ersten beiden sind gefliest. Das Menüelement wird überprüft. Klicken Sie darauf getestet, und die Dateien sind wieder geöffnet, Dateien sind maxed und derjenige, der vor der Wiedereröffnung aktiv war ist an der Spitze.
Legen Sie auf TFrameForm ein Menüelement im Menü 'Fenster' zwischen Fliese und Cascade. An der Spitze des Abschnitts Code, gebe ich eine Beschriftung (für den Benutzer zu sehen) und daran erinnern, dass die Checked-Eigenschaft False sein sollte. Alles andere ist belassen werden (denn das ist, was ich getan habe beim überprüfen dies). Die Name-Eigenschaft kann verkürzt werden, wie gezeigt. Auf dem Blatt Veranstaltungen Doppelklick OnClick Handler erhalten. TFrameForm.Tile2ofN1Click ist hier in vollem Umfang gegeben. Zuerst werden alle Erklärungen (und Initialisierungen) gegeben.
Dies geht nicht, noch zu kompilieren. Ich habe diesen Thread aus einem komplexen 'Son of TextEdit' gearbeitet, und ich habe gearbeitet, um eine minimale Unterstützung Infrastruktur hier. Beachten Sie in der nachfolgenden Eigenschaften-Tabelle, dass TEditForm WindowState auf WsMaximized gesetzt haben sollte. Unter Support-Code gebe ich Ersatz-Routinen für TEditForm.FormClose und TEditForm.Open. Meine Änderungen sind notwendig für die Verfolgung der, welche Dateien geöffnet und immer Pfadnamen, wieder zu öffnen sind.
Weg nach unten am unteren Rand ist etwas, was ich in meinem ersten Artikel aufgenommen haben sollte. Alle Tests von meinen Code beinhalten eine Bande von Dateien in TextEdit zu bringen. Jeweils einzeln zu öffnen, ist ein zu ziehen. Also mache ich einen Ersatz TFrameForm.Open1Click Bande laden zu behandeln. Eine Note kurz vor der Routine beschreibt, wie Sie das Dialogfeld Eigenschaften ändern.
Code:
Einige Eigenschafteneinstellungen:

Fügen Sie ein neues Menüelement zwischen Fenster/Fliese und Fenster/Cascade, in TFrameForm.
Tile Top & 2 N Windows (Menübeschriftung Element)
Namen kann zu Tile2ofN1 gefällt
Geprüft ist falseTEditForm WindowState: Wsmaximized


TFrameForm
...
Var (global)
...
TileTwo: TstringList;
OpenFiles: TstringList;
Initialisierung
TileTwo ist für den Hauptcode
TileTwo: = TStringList.Create;
TileTwo.Text: = '';
OpenFiles ist ein Juri manipuliert-System für die Verfolgung von geöffneten Dateien
OpenFiles: = TStringList.Create;
OpenFiles.Text: = '';
{Hauptcode, eine Routine TFrameForm}
Prozedur TFrameForm.Tile2ofN1Click(Sender: TObject);
var
ich, j: Ganzzahl;
beginnen
Wenn MDIChildCount < 2 dann Ausfahrt;
Wenn (MDIChildCount = 2) und (Tile2ofN1.Checked = False) dann
beginnen
Tile1Click(Sender);

Ausfahrt;
Ende;
Wenn (MDIChildCount > 2) und dann nicht Tile2ofN1.Checked
beginnen
Tile2ofN1.Checked: = True;
für i: = 2 bis MDIChildCount - 1
beginnen
für j: = 0 to OpenFiles.Count - 1
Wenn pos (MDIChildren [i]. Beschriftung, OpenFiles.strings[j]) <> 0 dann
beginnen
TileTwo.Add(OpenFiles.strings[j]);
MDIChildren [i]. Schließen;
Zu brechen;
Ende;
Ende;
Tile2ofN1.Checked: = True;
MessageDlg ('In dieser Demo ich brauche' +
'eine Unterbrechung nach Schließen von Dateien und vor' +
'Tile1Click aufrufen, so dass Kind Count ist' +
' neu berechnet. Gehen Abbildung.', MtInformation, [MbOK], 0);
LockWindowUpdate(Handle);
Tile1Click(Sender);
LockWindowUpdate(0);
Ende
elseif Tile2ofN1.Checked und (TileTwo.Text <> '') dann
beginnen
LockWindowUpdate(Handle);
für i: = 0 to TileTwo.Count - 1
Geliehene Mut von Open1Click zu ersetzen
ReopenIt in der eWriter komplexe Verflechtung
mit TEditForm.Create(Self)-do
beginnen
Open(TileTwo[i]);
Tag: = 3 + i;
Ende;
MDIChildren [MDIChildCount - 2]. BringToFront;
LockWindowUpdate(0);
TileTwo.Text: = '';
Tile2ofN1.Checked: = False;
Ende;
Ende;
Support-Code:
{Diese beiden Routinen in TEDitForm verfolgen und behandeln Datei öffnet und schließt und ersetzen Routinen bereits dort}
Procedure TEditForm.FormClose (Sender: TObject; Var Aktion: TCloseAction);
var
i: Longint;
beginnen
für i: = 0 to OpenFiles.Count - 1
Wenn OpenFiles [i] = Pfadname dann
beginnen
OpenFiles.Delete(i);
zu brechen;
Ende;
Aktion: = CaFree;
Ende;
Procedure TEditForm.Open (const AFileName: String);
beginnen
PathName: = AFileName;
Bildunterschrift: = ExtractFileName(AFileName);
OpenFiles Liste Pfadnamen umgesetzt
OpenFiles.Add(Pathname);
mit Editor do
beginnen
Lines.LoadFromFile(PathName);
SelStart: = 0;
Geändert: = False;
Ende;
Ende;
{Dabei in mehrere Dateien zum Ausführen von Tests wird einfacher, wenn Sie TFrameForms OpenDialog1 auswählen und unter Optionen Mehrfachauswahl True machen. Dann ersetzen Sie die Routine unter Open1Click}
Prozedur TFrameForm.Open1Click(Sender: TObject);
var
i: Ganzzahl;
beginnen
Wenn OpenFileDialog.Execute dann
LockWindowUpdate(Handle);
Für i: = 0 to OpenFileDialog.Files.count - 1
mit TEditForm.Create(Self)-do
Open(OpenFileDialog.files[i]);
LockWindowUpdate(0);
Ende;

Zeilensprung-Bibliographie
Ich begann diesen Artikeln auf dabei einige der Dinge, die ich tun durchschlagender
in eWriter in der Delphi-Demo-TextEdit (aus denen ich eWriter gebaut).
Es ist natürlich all diese in eine Kopie von TextEdit zu sammeln. Und
Möglicherweise müssen Sie hin und her gehen, neue, füllen verpasst haben, oder
geänderte Unterstützung Routinen. Geschachteltes Hinweise erscheinen die meisten Orte. Abbildung
Es handelt sich um andauernde 'Shop' Gespräch...

  1. Programmierung von System/weiter (Prev) in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=143


  2. Selektive Tiling in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=147


  3. Kontrollnummern Fenster in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=154


  4. Absatz 'gießen', aus einem Texteditor

    https://www.HowToDoThings.com/showarticle.asp?article=178










Selektive Fliesen in Mdi-Editoren


Selektive Fliesen in Mdi-Editoren : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


Menüpunkt Fenster/Fliese ist nützlich, wenn nur zwei Dateien geöffnet sind. Dies
Code wird ein nützlicher 'Tile Top 2 der N Fenster', die nicht implementiert.
verlieren Sie andere Dateien, die geöffnet werden können.
Selektive Tiling in MDI-Editoren
Gen Fowler
[email protected]

28. Mai 2001 - Änderung Wenn ich Fenstertracking in einem Lter-Artikel hinzugefügt, Fenster Kontrollnummern in MDI-Editoren, ich fand, dass ich nicht Tagwerte gesetzt hatte, wenn die Dateien Wiedereröffnung, vor Fliesen geschlossen. Ich habe diese Änderung in der TFrameForm.Tile2ofN1Click:
Geliehene Mut von Open1Click zu ersetzen
ReopenIt in der eWriter komplexe Verflechtung
mit TEditForm.Create(Self)-do
beginnen
Open(TileTwo[i]);
Tag: = 3 + i;
Ende;
Ersetzt:
Geliehene Mut von Open1Click zu ersetzen
ReopenIt in der eWriter komplexe Verflechtung
mit TEditForm.Create(Self)-do
Open(TileTwo[i]);


Einige Hinzugefügter Code Wenn Sie Ziegel Top 2 von N Windows in TextEdit eingerichtet haben, betrachten Sie den Code arbeiten, werden Sie diese Routine SaveAs1Click MDIEdit.pas hinzufügen möchten. Sie bemerkt haben, dass wenn Sie eine neue Datei, gespeichert oder nicht, hatte Sie einige seltsame Ergebnisse bekommen. Fügen Sie diese und Sie erhalten nicht ungerade Ergebnisse, wenn Sie die Datei (geben sie einen Pfadnamen) speichern. Sie sollten dieses Menüelement nicht verwenden, wenn Sie eine neue ungespeicherte Datei haben.
Der Verlust der Größenanpassung wiederherstellen ist nicht einer der seltsamen Effekte. Tiling1 produziert, die Wirkung und ich nenne es in Ziegel Top 2 von N Windows.
Prozedur TEditForm.Saveas1Click(Sender: TObject);
beginnen
SaveFileDialog.FileName: = Pfadname;
Wenn SaveFileDialog.Execute dann
beginnen
Pfad: = SaveFileDialog.FileName;
Bildunterschrift: = ExtractFileName(PathName);
OpenFiles.Insert (Tag, Pfadnamen); Liste neuer Pfadname
Save1Click(Sender);
Ende;
Ende;


Warnung: Der Prüfstand für diesen Code ist Borlands TextEdit-Demo, die mit Delphi kommt. Wenn Sie in Delphi 5 oder 5.01 kompilieren, brauchen Sie die modifizierte forms.pas, die ich Ihnen in meinem früheren Artikel direkt Programmierung System/Next (Prev) in MDI-Editoren.

Wenn Sie kompilieren und Ausführen von Borlands TextEdit (Demos/Doc/TextEdit) und klicken Sie im Menü Fenster, finden Sie zwei Datei Vermittlung von Menüelementen: Fliesen und Cascade. Der Tile-Befehl ist ein Design-Wunder. Wenn Sie zwei Dateien geöffnet haben, werden sie vertikal gestapelt. Dies ist eine sehr nützliche Arbeit-Anordnung. Aber weitergehen können. Haben Sie drei Dateien öffnen, werden sie vertikal noch gestapelt. Nun, es gibt nicht viel Arbeitsfläche in jedem von ihnen. Haben Sie vier Dateien öffnen, besetzen sie Quadranten des Clientbereichs. Ich habe nicht gewagt, mit fünf Dateien öffnen versuchen. Ich fürchte die Pixel aus dem Bildschirm heraus knallen.
Fliese ist am nützlichsten, wenn Sie nur zwei Dateien geöffnet haben. Im Rahmen eines Projektes jedoch sollten Sie ein halbes Dutzend griffbereit zu haben. Was Sie brauchen, ist eine Möglichkeit, alle Dateien, die aber zwei beiseite, mit einem Mausklick festlegen und bringen sie später wieder mit einem Mausklick.
Sie wollen nicht zu kümmern, ob Dateien aufgeteilt werden oder nicht, wenn die zweite Klicken machen. Der folgende Code implementiert dies durch ein neues Element im Fenster unten Fliese. Klicken Sie auf Fliese besten 2 N Windows. Alle Dateien außer die ersten beiden sind geschlossen und die ersten beiden sind gefliest. Das Menüelement wird überprüft. Klicken Sie darauf getestet, und die Dateien sind wieder geöffnet, Dateien sind maxed und derjenige, der vor der Wiedereröffnung aktiv war ist an der Spitze.
Legen Sie auf TFrameForm ein Menüelement im Menü 'Fenster' zwischen Fliese und Cascade. An der Spitze des Abschnitts Code, gebe ich eine Beschriftung (für den Benutzer zu sehen) und daran erinnern, dass die Checked-Eigenschaft False sein sollte. Alles andere ist belassen werden (denn das ist, was ich getan habe beim überprüfen dies). Die Name-Eigenschaft kann verkürzt werden, wie gezeigt. Auf dem Blatt Veranstaltungen Doppelklick OnClick Handler erhalten. TFrameForm.Tile2ofN1Click ist hier in vollem Umfang gegeben. Zuerst werden alle Erklärungen (und Initialisierungen) gegeben.
Dies geht nicht, noch zu kompilieren. Ich habe diesen Thread aus einem komplexen 'Son of TextEdit' gearbeitet, und ich habe gearbeitet, um eine minimale Unterstützung Infrastruktur hier. Beachten Sie in der nachfolgenden Eigenschaften-Tabelle, dass TEditForm WindowState auf WsMaximized gesetzt haben sollte. Unter Support-Code gebe ich Ersatz-Routinen für TEditForm.FormClose und TEditForm.Open. Meine Änderungen sind notwendig für die Verfolgung der, welche Dateien geöffnet und immer Pfadnamen, wieder zu öffnen sind.
Weg nach unten am unteren Rand ist etwas, was ich in meinem ersten Artikel aufgenommen haben sollte. Alle Tests von meinen Code beinhalten eine Bande von Dateien in TextEdit zu bringen. Jeweils einzeln zu öffnen, ist ein zu ziehen. Also mache ich einen Ersatz TFrameForm.Open1Click Bande laden zu behandeln. Eine Note kurz vor der Routine beschreibt, wie Sie das Dialogfeld Eigenschaften ändern.
Code:
Einige Eigenschafteneinstellungen:

Fügen Sie ein neues Menüelement zwischen Fenster/Fliese und Fenster/Cascade, in TFrameForm.
Tile Top & 2 N Windows (Menübeschriftung Element)
Namen kann zu Tile2ofN1 gefällt
Geprüft ist falseTEditForm WindowState: Wsmaximized


TFrameForm
...
Var (global)
...
TileTwo: TstringList;
OpenFiles: TstringList;
Initialisierung
TileTwo ist für den Hauptcode
TileTwo: = TStringList.Create;
TileTwo.Text: = '';
OpenFiles ist ein Juri manipuliert-System für die Verfolgung von geöffneten Dateien
OpenFiles: = TStringList.Create;
OpenFiles.Text: = '';
{Hauptcode, eine Routine TFrameForm}
Prozedur TFrameForm.Tile2ofN1Click(Sender: TObject);
var
ich, j: Ganzzahl;
beginnen
Wenn MDIChildCount < 2 dann Ausfahrt;
Wenn (MDIChildCount = 2) und (Tile2ofN1.Checked = False) dann
beginnen
Tile1Click(Sender);

Ausfahrt;
Ende;
Wenn (MDIChildCount > 2) und dann nicht Tile2ofN1.Checked
beginnen
Tile2ofN1.Checked: = True;
für i: = 2 bis MDIChildCount - 1
beginnen
für j: = 0 to OpenFiles.Count - 1
Wenn pos (MDIChildren [i]. Beschriftung, OpenFiles.strings[j]) <> 0 dann
beginnen
TileTwo.Add(OpenFiles.strings[j]);
MDIChildren [i]. Schließen;
Zu brechen;
Ende;
Ende;
Tile2ofN1.Checked: = True;
MessageDlg ('In dieser Demo ich brauche' +
'eine Unterbrechung nach Schließen von Dateien und vor' +
'Tile1Click aufrufen, so dass Kind Count ist' +
' neu berechnet. Gehen Abbildung.', MtInformation, [MbOK], 0);
LockWindowUpdate(Handle);
Tile1Click(Sender);
LockWindowUpdate(0);
Ende
elseif Tile2ofN1.Checked und (TileTwo.Text <> '') dann
beginnen
LockWindowUpdate(Handle);
für i: = 0 to TileTwo.Count - 1
Geliehene Mut von Open1Click zu ersetzen
ReopenIt in der eWriter komplexe Verflechtung
mit TEditForm.Create(Self)-do
beginnen
Open(TileTwo[i]);
Tag: = 3 + i;
Ende;
MDIChildren [MDIChildCount - 2]. BringToFront;
LockWindowUpdate(0);
TileTwo.Text: = '';
Tile2ofN1.Checked: = False;
Ende;
Ende;
Support-Code:
{Diese beiden Routinen in TEDitForm verfolgen und behandeln Datei öffnet und schließt und ersetzen Routinen bereits dort}
Procedure TEditForm.FormClose (Sender: TObject; Var Aktion: TCloseAction);
var
i: Longint;
beginnen
für i: = 0 to OpenFiles.Count - 1
Wenn OpenFiles [i] = Pfadname dann
beginnen
OpenFiles.Delete(i);
zu brechen;
Ende;
Aktion: = CaFree;
Ende;
Procedure TEditForm.Open (const AFileName: String);
beginnen
PathName: = AFileName;
Bildunterschrift: = ExtractFileName(AFileName);
OpenFiles Liste Pfadnamen umgesetzt
OpenFiles.Add(Pathname);
mit Editor do
beginnen
Lines.LoadFromFile(PathName);
SelStart: = 0;
Geändert: = False;
Ende;
Ende;
{Dabei in mehrere Dateien zum Ausführen von Tests wird einfacher, wenn Sie TFrameForms OpenDialog1 auswählen und unter Optionen Mehrfachauswahl True machen. Dann ersetzen Sie die Routine unter Open1Click}
Prozedur TFrameForm.Open1Click(Sender: TObject);
var
i: Ganzzahl;
beginnen
Wenn OpenFileDialog.Execute dann
LockWindowUpdate(Handle);
Für i: = 0 to OpenFileDialog.Files.count - 1
mit TEditForm.Create(Self)-do
Open(OpenFileDialog.files[i]);
LockWindowUpdate(0);
Ende;

Zeilensprung-Bibliographie
Ich begann diesen Artikeln auf dabei einige der Dinge, die ich tun durchschlagender
in eWriter in der Delphi-Demo-TextEdit (aus denen ich eWriter gebaut).
Es ist natürlich all diese in eine Kopie von TextEdit zu sammeln. Und
Möglicherweise müssen Sie hin und her gehen, neue, füllen verpasst haben, oder
geänderte Unterstützung Routinen. Geschachteltes Hinweise erscheinen die meisten Orte. Abbildung
Es handelt sich um andauernde 'Shop' Gespräch...

  1. Programmierung von System/weiter (Prev) in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=143


  2. Selektive Tiling in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=147


  3. Kontrollnummern Fenster in MDI-Editoren

    https://www.HowToDoThings.com/showarticle.asp?article=154


  4. Absatz 'gießen', aus einem Texteditor

    https://www.HowToDoThings.com/showarticle.asp?article=178



Selektive Fliesen in Mdi-Editoren

Selektive Fliesen in Mdi-Editoren : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Selektive Fliesen in Mdi-Editoren
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung