AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MDI und eigene Taskleiste

Ein Thema von Karstadt · begonnen am 22. Jun 2006 · letzter Beitrag vom 23. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#1

MDI und eigene Taskleiste

  Alt 22. Jun 2006, 09:03
Hallo. Habe eine Frage. Wie kann ich beim ertellen eines CHILD Fenster eine Knopf in meine interne taskleiste erzeugen und später beim klick auf diesen Knopf das fenster in Vordergrund hollen?

...wie man das in Vordergrund hollt, weis ich. Ich weis aber nicht wie ich bei 10 Knoöfen das richtige Fenster ansprechen kann.

Habe den Code im Anhang.

Ich muss erlich gestehen, ich weis nicht welche Komponente ich für die Taskleite benutzen soll, ich habe mir die TToolbar genommen.
Angehängte Dateien
Dateityp: zip taskleiste_180.zip (219,4 KB, 22x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: MDI und Taskleiste

  Alt 22. Jun 2006, 10:04
Ich habe mal was ähnliches für Menü-Punkte gemacht:
Delphi-Quellcode:
procedure TfrmMain.mnuFensterClick(Sender: TObject);
var
  cnt : Integer;
  mnuItem : TMenuItem;
begin
  while mnuFenster.count > 1 do
  begin
    mnuFenster.Delete(mnuFenster.Count-1);
  end;
  for cnt := MDIChildCount downto 1 do
  begin
    mnuItem := TMenuItem.Create(mnuFenster);
    mnuItem.Caption := MDIChildren[cnt-1].Caption;
    mnuItem.OnClick := FensterMenuItemClick;
    mnuFenster.Add(mnuItem);
  end;
end;
Etwas ähnliches müsstest du mit deinen Button machen. Allerdings müsstest du den Eintrag für die Button beim Erstellen, bzw. beim Zerstören des MDI-Childs machen. Bei meiner Variante über das Menü ist das einfacher. Ich schaue beim Klick auf das Fenster-Menü einfach nach, welche Menü-Einträge ich erstellen muss.
Peter
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#3

Re: MDI und Taskleiste

  Alt 22. Jun 2006, 10:12
was hällst du von meine Lösung?
Angehängte Dateien
Dateityp: zip taskleiste_lsng_244.zip (226,6 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#4

Re: MDI und Taskleiste

  Alt 22. Jun 2006, 10:14
was ich immer noch nicht im Griff habe, ist diese MAXIMIEREN EFFEKT. Ich möchte das ohne diese ANIMATION machen. Geht das überhaupt? (schaut bitte mein Code an).


PS: Optimierungen in Code nehme ich gerne entgegen.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: MDI und eigene Taskleiste

  Alt 22. Jun 2006, 11:19
Du musst im FormCreate diese Zeile rausnehmen:
WindowState := wsMaximized; Und hier solltest du die Liste rückwärts durchlaufen. Statt:
Delphi-Quellcode:
Procedure Tf_hauptfenster.Titelleisteknopf_entfernen(Knopfname:String);
var i: Integer;
begin
  for i := 0 to tb_taskleiste.ComponentCount-1 do
  begin
    IF tb_taskleiste.Components[i].Name = Knopfname Then tb_taskleiste.Components[i].Free;
  end;
end;
besser:
Delphi-Quellcode:
Procedure Tf_hauptfenster.Titelleisteknopf_entfernen(Knopfname:String);
var i: Integer;
begin
  for i := tb_taskleiste.ComponentCount-1 downto 0 do
  begin
    IF tb_taskleiste.Components[i].Name = Knopfname Then tb_taskleiste.Components[i].Free;
  end;
end;
Sonst greifst du unter Umständen auf Objekte zu, die nicht mehr existieren.
Peter
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#6

Re: MDI und eigene Taskleiste

  Alt 22. Jun 2006, 11:30
Zitat von Jasocul:
Du musst im FormCreate diese Zeile rausnehmen:
WindowState := wsMaximized;
Das soll schon maximiert werden aber ohne diesen "efekt", dass das fenster ihre größe verändert. (ohne es zu sehen).
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#7

Re: MDI und eigene Taskleiste

  Alt 22. Jun 2006, 11:32
Zitat:
was ich immer noch nicht im Griff habe, ist diese MAXIMIEREN EFFEKT. Ich möchte das ohne diese ANIMATION machen. Geht das überhaupt? (schaut bitte mein Code an).
Wenn Du damit das (von Windows) animierte Vergrößern meinst,
schau mal hier
  Mit Zitat antworten Zitat
Karstadt

Registriert seit: 8. Nov 2005
788 Beiträge
 
#8

Re: MDI und eigene Taskleiste

  Alt 22. Jun 2006, 16:01
genau das! was ich noch nicht gefunden habe ist, wie ich z.B. das zweite Fenster von 30 maximieren kann.

ich kann das zwar in vordergrund hollen aber nicht maximieren.
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.891 Beiträge
 
Delphi 12 Athens
 
#9

Re: MDI und eigene Taskleiste

  Alt 22. Jun 2006, 16:07
Wenn Du das zweite Fenster in den Vordergrung holen kannst, dann hast Du ja schon zugriff auf dieses.
Dann setz den WindowState dieses Fensters auf wmMaximized und das wars.

hope it helps

onlinekater
Thomas Breitkreuz
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: MDI und eigene Taskleiste

  Alt 22. Jun 2006, 16:10
Das Problem bei einer MDI-Anwendung ist dann aber, dass alle MDI-Childs maximiert sind. Echt ätzend.
Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:45 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