AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Screenshots von 2 übereinanderliegenden Forms
Thema durchsuchen
Ansicht
Themen-Optionen

Screenshots von 2 übereinanderliegenden Forms

Ein Thema von Helmi · begonnen am 6. Jan 2015 · letzter Beitrag vom 9. Jan 2015
Antwort Antwort
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.119 Beiträge
 
Delphi 2009 Professional
 
#1

AW: Screenshots von 2 übereinanderliegenden Forms

  Alt 6. Jan 2015, 20:45
Ohne Fensterrahmen des Unterfensters kann man das ganz einfach mit Copyrect machen.

Delphi-Quellcode:
Temp := Point(Subform.Left + (SubForm.Width - SubForm.ClientWidth) div 2, Subform.Top + SubForm.Height - SubForm.ClientHeight - (SubForm.Width - SubForm.ClientWidth) div 2); // angenommen, das Fenster hat unten so viel Rahmen wie links und rechts
Bitmap.CopyRect(Rect(Temp.X, Temp.Y, Temp.X + SubForm.ClientWidth, Temp.Y + SubForm.ClientHeight), SubForm.Canvas, Rect(0, 0, SubForm.ClientWidth, SubForm.ClientHeight));
Setzt voraus, dass das Unterfenster im Überfenster liegt. Wenn nicht, muss man das auch abfangen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Screenshots von 2 übereinanderliegenden Forms

  Alt 6. Jan 2015, 20:57
so bekomm ich jetzt nur ein weisses Rechteck, in der Größe der MainForm und da drauf die 2. Form

vermutlich hab ich irgendwas falsch übernommen
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.119 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Screenshots von 2 übereinanderliegenden Forms

  Alt 6. Jan 2015, 21:47
Du musst das nach dem bestehenden CopyRect in deinen Quelltext einfügen (und den TPoint deklarieren natürlich). Wenn einfach nur das Bild der ersten Form fehlt, scheint das ja nicht ganz falsch zu sein so weit.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Screenshots von 2 übereinanderliegenden Forms

  Alt 6. Jan 2015, 21:54
Dank dir - jetzt hab ich beides drauf
nur die Position der 2. Form im Bitmap entspricht nicht der eigentlichen Position

Das bekomm ich aber noch raus
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.344 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Screenshots von 2 übereinanderliegenden Forms

  Alt 9. Jan 2015, 20:08
bei mir schaut jetzt die Erweiterung für die 2. Form (MessageForm) so aus:

Delphi-Quellcode:
    If MessageForm.Visible then
      begin
        Rahmenbreite_MaskForm := (MaskForm.Width - MaskForm.ClientWidth) div 2;

        X := MessageForm.Left - (MaskForm.Left + Rahmenbreite_MaskForm);
        Y := MessageForm.Top - (MaskForm.Top + (MaskForm.Height - Rahmenbreite_MaskForm - MaskForm.ClientHeight));

        DestRect := Rect(X, Y, X + MessageForm.ClientWidth, Y + MessageForm.ClientHeight);
        SourceRect := Rect(0, 0, MessageForm.ClientWidth, MessageForm.ClientHeight);

        Bitmap.Canvas.CopyRect(DestRect, MessageForm.Canvas, SourceRect);
      end;
damit wird die 2. Form im Bitmap genau an die gleiche Stelle gesetzt, wie auch im Programm.
Dummerweise muss man etwas rumprogrammieren um die Höhe der Titelleiste der 1. Form (MaskForm) rauszubekommen
Code:
(Höhe Titelleiste = Form.Höhe - Rahmenbreite - Form.ClientHöhe)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi (10. Jan 2015 um 13:50 Uhr)
  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 17:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz