Programmierung von System/weiter (Prev) in Mdi-Editoren


'How to' Programm das Systemmenü in der untergeordneten MDI-Fenster
ein MDI-Text-Editor oder Textwriter Next und Prev ändern
von Z-Stapel zu nützlicher Schreiben/Editieren Aufgaben ausgeführt
Programmierung von System/weiter (Prev) in MDI-Editoren
Gen Fowler
[email protected]

Schreiben erweitert Notizblöcke ist eine gängige Praxis und den neuen Notizblock
ist fast immer eine MDI-Anwendung. TextEdit ist ein 'Beispiel' oder
'Demo', die in jedem Paket Delphi wurde. Ich schrieb dieses für meine
eigenen erweiterten Editor die in TextEdit im Jahr 1997, also begann
Ich habe nicht einmal die Einheitennamen, damit Sie den Code ändern
Kompilieren Sie in TextEdit Quelle und führen Sie die Tests.
Systemmenü des untergeordneten MDI ist weiter unverändert Zeit seit
uralten. Es ist ein Programmierer 'Testlauf' Z-Stapel öffnen
Windows (Editoren, in unserem Fall). Öffnen Sie eine Anzahl von Dateien oder Editoren.
Halten, schlagen System/Next oder STRG + F6 und Sie halten oben setzen
Karte unten im Stapel. Verwenden Sie die (versteckte) System/Prev von
schlagend UMSCHALT + STRG + F6 und tun einem Reverse ausgeführt, indem man unten
Karte nach oben. Nützlich in Alphatests. Es ist nicht sinnvoll in eine
Editor. Nach dem springen unter Windows für eine Zeit, die Z-Stapel keine
mehr entspricht der laden (oder Fensternummer) bestellen, und Sie haben
eine Art zufällige Fenster Zugang.
Was wäre sinnvoll für einen Autor oder Herausgeber wäre zu halten
die beiden oberen Fenster tauschen und nachdem zu einem anderen Fenster springen
oder öffnen ein neues wieder diese beiden und gehen zum tauschen.
Der folgende Code implementiert dies. System/weiter 'oder' STRG + F6 wird tun
Das Vertauschen von der weiter nach oben an die Spitze zu bringen. Die letzte
zwei Positionen werden nach jedem Gebrauch weiter gedacht und, falls
Positionen werden verschoben, UMSCHALT + STRG + F6 wird die beiden wiederherstellen
Ihre Positionen nach dem letzten System/Next oder STRG + F6. Dies wird
Arbeiten Sie in einer 32-Bit-Delphi.
Wenn Sie TextEdit in Delphi 5.0 oder (nach der Anwendung kompilieren
Das Update Pack) 5.01, habt ihr eine unstable TextEdit zu setzen
Dies ist in. Alle MDI-Programm wie TextEdit mit zusammengeführten Menüs wird
brechen Sie und Sperren Sie ein, wenn Sie ausgeschöpft-Fenster zu wechseln. In Delphi 1
bis 4 ereignete sich ein weniger schwerwiegenden Folgen. Schaltfläche [X]
die neue oberste Editor wäre abgeblendet, aber funktionell. Dies war
Da keine 'wiederherstellen... Maximieren'eingeklammert den Schalter. Diese waren
wendete auf im Nachhinein, das Menü in eine nutzbare Kraft
Zustand. 5.0 wurde die 'zwingen'Code entfernt. Aber keine Belichtungsreihe
eingefügt wurde. Daher der totale Absturz. Lösungen für das Problem der D4
Erschienen in der Delphi-Bug-Liste (nicht Borland). Einer von denen
Lösungen werden das D5-Problem lösen. Nehmen Sie zu dieser URL
Punkt 0372 in der Delphi-Bug-Liste:
https://www.jrsoftware.org/buglist/generated/entry0372.htm
Kopieren Sie Greg Chapmans-Prozedur (TCustomForm.MergeMenu) in einem
Datei, und speichern Sie sie. Anfertigen Sie eine Kopie des forms.pas und ersetzen Sie, die
Verfahren in forms.pas mit Chapmans. Setzen Sie die geänderte forms.pas
in den TextEdit projizieren Verzeichnis und einen Build von TextEdit zu tun.
Ich habe gelesen, dass gelieferte VCL-Quelle entspricht nicht immer der
DCU, aber dies scheint nicht hier keinerlei Probleme. Dennoch ist es
eine gute Idee, darauf beschränken, die geänderte Einheit zu einzelnen MDI-Projekt
Verzeichnisse und nicht im Allgemeinen als eine neue forms.pas auf Ihre
Bibliothekspfad.
Der folgende Code ist einen Meldungshandler in MDIEdit.pas platzieren
und zwei Antwort-Routinen, im MDIFrame.pas zu platzieren. Die Deklarationen
auch sind hier.
Code:
{Diese Meldungshandler für im Bereich MDIEdit.pas ist die
Borland demo TextEdit als Prüfstand für dieses Projekt verwendet.
}
Typ
TEditForm = class(TForm)
...
Private
...
Procedure WMSysCommand (Var Msg: TWMSysCommand);
Nachricht WM_SYSCOMMAND;
...
Procedure TEditForm.WMSysCommand (Var Msg: TWMSysCommand);
beginnen
RS Msg.CmdType der
SC_NextWindow:
beginnen
FrameForm.GetNext;
Ende;
SC_PREVWINDOW:
beginnen
FrameForm.GetPrev;
Ende

sonst geerbt;
Ende;
Ende;
{Diese beiden Routinen sind in der MDIFrame.pas Einheit der
Borland demo TextEdit als Prüfstand für dieses Projekt verwendet.
}
Typ
TFrameForm = class(TForm)
...
Verfahrens GetNext;
Prozedur GetPrev;
...
var
...
IsMaxed: Boolean;
F6One: String;
F6Two: String;
Umsetzung
Prozedur TFrameForm.GetNext;
beginnen
Wenn MDIChildCount < 2 dann
beginnen
messageBeep(0);
Ausfahrt;
Ende;
LockWindowUpdate(Handle);
F6One: = ActiveMDIChild.Caption;
Wenn ActiveMDIChild.WindowState = WsMaximized then
beginnen
IsMaxed: = True;
ActiveMDIChild.WindowState: = WsNormal;
Ende;
MDIChildren [1]. BringToFront;
Wenn IsMaxed dann
beginnen
IsMaxed: = False;
ActiveMDIChild.WindowState: = WsMaximized;
Ende;
F6Two: = ActiveMDIChild.Caption;
LockWindowUpdate(0);
Ende;
Prozedur TFrameForm.GetPrev;
var
i: Ganzzahl;
beginnen
Wenn MDIChildCount < 2 dann
beginnen
messageBeep(0);
Ausfahrt;
Ende;
LockWindowUpdate(Handle);
Wenn ActiveMDIChild.WindowState = WsMaximized then
beginnen
IsMaxed: = True;
ActiveMDIChild.WindowState: = WsNormal;
Ende;
für i: = 0 to MDIChildCount - 1
Wenn MDIChildren [i]. Beschriftung = F6One then
MDIChildren [i]. BringToFront;
für i: = 0 to MDIChildCount - 1
Wenn MDIChildren [i]. Beschriftung = F6Two then
MDIChildren [i]. BringToFront;
Wenn IsMaxed dann
beginnen
IsMaxed: = False;
ActiveMDIChild.WindowState: = WsMaximized;
Ende;
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










Programmierung von System/weiter (Prev) in Mdi-Editoren


Programmierung von System/weiter (Prev) in Mdi-Editoren : Mehreren tausend Tipps, um Ihr Leben einfacher machen.


'How to' Programm das Systemmenü in der untergeordneten MDI-Fenster
ein MDI-Text-Editor oder Textwriter Next und Prev ändern
von Z-Stapel zu nützlicher Schreiben/Editieren Aufgaben ausgeführt
Programmierung von System/weiter (Prev) in MDI-Editoren
Gen Fowler
[email protected]

Schreiben erweitert Notizblöcke ist eine gängige Praxis und den neuen Notizblock
ist fast immer eine MDI-Anwendung. TextEdit ist ein 'Beispiel' oder
'Demo', die in jedem Paket Delphi wurde. Ich schrieb dieses für meine
eigenen erweiterten Editor die in TextEdit im Jahr 1997, also begann
Ich habe nicht einmal die Einheitennamen, damit Sie den Code ändern
Kompilieren Sie in TextEdit Quelle und führen Sie die Tests.
Systemmenü des untergeordneten MDI ist weiter unverändert Zeit seit
uralten. Es ist ein Programmierer 'Testlauf' Z-Stapel öffnen
Windows (Editoren, in unserem Fall). Öffnen Sie eine Anzahl von Dateien oder Editoren.
Halten, schlagen System/Next oder STRG + F6 und Sie halten oben setzen
Karte unten im Stapel. Verwenden Sie die (versteckte) System/Prev von
schlagend UMSCHALT + STRG + F6 und tun einem Reverse ausgeführt, indem man unten
Karte nach oben. Nützlich in Alphatests. Es ist nicht sinnvoll in eine
Editor. Nach dem springen unter Windows für eine Zeit, die Z-Stapel keine
mehr entspricht der laden (oder Fensternummer) bestellen, und Sie haben
eine Art zufällige Fenster Zugang.
Was wäre sinnvoll für einen Autor oder Herausgeber wäre zu halten
die beiden oberen Fenster tauschen und nachdem zu einem anderen Fenster springen
oder öffnen ein neues wieder diese beiden und gehen zum tauschen.
Der folgende Code implementiert dies. System/weiter 'oder' STRG + F6 wird tun
Das Vertauschen von der weiter nach oben an die Spitze zu bringen. Die letzte
zwei Positionen werden nach jedem Gebrauch weiter gedacht und, falls
Positionen werden verschoben, UMSCHALT + STRG + F6 wird die beiden wiederherstellen
Ihre Positionen nach dem letzten System/Next oder STRG + F6. Dies wird
Arbeiten Sie in einer 32-Bit-Delphi.
Wenn Sie TextEdit in Delphi 5.0 oder (nach der Anwendung kompilieren
Das Update Pack) 5.01, habt ihr eine unstable TextEdit zu setzen
Dies ist in. Alle MDI-Programm wie TextEdit mit zusammengeführten Menüs wird
brechen Sie und Sperren Sie ein, wenn Sie ausgeschöpft-Fenster zu wechseln. In Delphi 1
bis 4 ereignete sich ein weniger schwerwiegenden Folgen. Schaltfläche [X]
die neue oberste Editor wäre abgeblendet, aber funktionell. Dies war
Da keine 'wiederherstellen... Maximieren'eingeklammert den Schalter. Diese waren
wendete auf im Nachhinein, das Menü in eine nutzbare Kraft
Zustand. 5.0 wurde die 'zwingen'Code entfernt. Aber keine Belichtungsreihe
eingefügt wurde. Daher der totale Absturz. Lösungen für das Problem der D4
Erschienen in der Delphi-Bug-Liste (nicht Borland). Einer von denen
Lösungen werden das D5-Problem lösen. Nehmen Sie zu dieser URL
Punkt 0372 in der Delphi-Bug-Liste:
https://www.jrsoftware.org/buglist/generated/entry0372.htm
Kopieren Sie Greg Chapmans-Prozedur (TCustomForm.MergeMenu) in einem
Datei, und speichern Sie sie. Anfertigen Sie eine Kopie des forms.pas und ersetzen Sie, die
Verfahren in forms.pas mit Chapmans. Setzen Sie die geänderte forms.pas
in den TextEdit projizieren Verzeichnis und einen Build von TextEdit zu tun.
Ich habe gelesen, dass gelieferte VCL-Quelle entspricht nicht immer der
DCU, aber dies scheint nicht hier keinerlei Probleme. Dennoch ist es
eine gute Idee, darauf beschränken, die geänderte Einheit zu einzelnen MDI-Projekt
Verzeichnisse und nicht im Allgemeinen als eine neue forms.pas auf Ihre
Bibliothekspfad.
Der folgende Code ist einen Meldungshandler in MDIEdit.pas platzieren
und zwei Antwort-Routinen, im MDIFrame.pas zu platzieren. Die Deklarationen
auch sind hier.
Code:
{Diese Meldungshandler für im Bereich MDIEdit.pas ist die
Borland demo TextEdit als Prüfstand für dieses Projekt verwendet.
}
Typ
TEditForm = class(TForm)
...
Private
...
Procedure WMSysCommand (Var Msg: TWMSysCommand);
Nachricht WM_SYSCOMMAND;
...
Procedure TEditForm.WMSysCommand (Var Msg: TWMSysCommand);
beginnen
RS Msg.CmdType der
SC_NextWindow:
beginnen
FrameForm.GetNext;
Ende;
SC_PREVWINDOW:
beginnen
FrameForm.GetPrev;
Ende

sonst geerbt;
Ende;
Ende;
{Diese beiden Routinen sind in der MDIFrame.pas Einheit der
Borland demo TextEdit als Prüfstand für dieses Projekt verwendet.
}
Typ
TFrameForm = class(TForm)
...
Verfahrens GetNext;
Prozedur GetPrev;
...
var
...
IsMaxed: Boolean;
F6One: String;
F6Two: String;
Umsetzung
Prozedur TFrameForm.GetNext;
beginnen
Wenn MDIChildCount < 2 dann
beginnen
messageBeep(0);
Ausfahrt;
Ende;
LockWindowUpdate(Handle);
F6One: = ActiveMDIChild.Caption;
Wenn ActiveMDIChild.WindowState = WsMaximized then
beginnen
IsMaxed: = True;
ActiveMDIChild.WindowState: = WsNormal;
Ende;
MDIChildren [1]. BringToFront;
Wenn IsMaxed dann
beginnen
IsMaxed: = False;
ActiveMDIChild.WindowState: = WsMaximized;
Ende;
F6Two: = ActiveMDIChild.Caption;
LockWindowUpdate(0);
Ende;
Prozedur TFrameForm.GetPrev;
var
i: Ganzzahl;
beginnen
Wenn MDIChildCount < 2 dann
beginnen
messageBeep(0);
Ausfahrt;
Ende;
LockWindowUpdate(Handle);
Wenn ActiveMDIChild.WindowState = WsMaximized then
beginnen
IsMaxed: = True;
ActiveMDIChild.WindowState: = WsNormal;
Ende;
für i: = 0 to MDIChildCount - 1
Wenn MDIChildren [i]. Beschriftung = F6One then
MDIChildren [i]. BringToFront;
für i: = 0 to MDIChildCount - 1
Wenn MDIChildren [i]. Beschriftung = F6Two then
MDIChildren [i]. BringToFront;
Wenn IsMaxed dann
beginnen
IsMaxed: = False;
ActiveMDIChild.WindowState: = WsMaximized;
Ende;
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



Programmierung von System/weiter (Prev) in Mdi-Editoren

Programmierung von System/weiter (Prev) in Mdi-Editoren : Mehreren tausend Tipps, um Ihr Leben einfacher machen.
Programmierung von System/weiter (Prev) in Mdi-Editoren
Wiezutun
Freunden empfehlen
  • gplus
  • pinterest

Kommentar

Einen Kommentar hinterlassen

Wertung