AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Ausblenden des Hauptformulars(SDI), aber nicht daraus erzeugte Child Formulare
Thema durchsuchen
Ansicht
Themen-Optionen

Ausblenden des Hauptformulars(SDI), aber nicht daraus erzeugte Child Formulare

Ein Thema von dstein · begonnen am 16. Dez 2022 · letzter Beitrag vom 19. Dez 2022
Antwort Antwort
dstein

Registriert seit: 28. Jul 2005
Ort: Dormagen
57 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

AW: Ausblenden des Hauptformulars(SDI), aber nicht daraus erzeugte Child Formulare

  Alt 16. Dez 2022, 14:20
Vieleicht hilft das weiter warum mich frage. In meinem Beispiel habe ich ein simples PostIT Tool gebaut. Das Programm und Basisverhalten entspricht meiner Vorstellung wie ohne Kopfzeile und Rahmenloses Clientformular das per Maus halten verschoben werden kann, kleine Feature StayOnTop Farben für Font und Background, zentrales speichern der Notizen in einer einfachen SQLite Tabelle usw..
Nur das Mainform minimieren, weil es zum normalen Gebrauch ausser per Doppelklick oder PopupMenu einen neuen PostIT-Zettel erstellen, nicht benötigt wird, bekomme ich nicht hin. Das im Mainform ein Grid mit allen PostIT-Zettel enthalten ist, ist nur eine Spielerrei.
Am Rande bemerkt; Alles was ich mit Delphi mache ist Hobby weil es mir Spaß macht ohne kommerzielle Ambitionen.
Angehängte Grafiken
Dateityp: png MainBild.png (39,3 KB, 24x aufgerufen)
Angehängte Dateien
Dateityp: zip PostITSample.zip (3,11 MB, 5x aufgerufen)
Dirk
- Lang ist der Weg durch Lehren, kurz und wirksam durch Beispiele.
(Seneca, röm. Dichter u. Phil., 4 v. Chr. - 65 n.Chr.) -
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Ausblenden des Hauptformulars(SDI), aber nicht daraus erzeugte Child Formulare

  Alt 16. Dez 2022, 17:02
Ich weiß nicht genau ob es das ist wonach Du suchst aber zumindest kannst Du hiermit Dein Hauptfenster minimieren/verstecken und all Deine anderen Fenster bleiben offen.
Delphi-Quellcode:
{ -----------------------------------------------------------------------------
  Unit Name: frClient
  Unit Pfad: C:\DelphiSourceXE\PostIt_2022
  Projekt  : PostIt
  Plattform:

  Uses: CodeSiteLogging, DsUnitXE3,
  ### ChangeLog
  28.01.2021
  28.01.2021 Createdatum
  ----------------------------------------------------------------------------- }

unit frClient;

interface

uses //CodeSiteLogging,
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, System.Types,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Menus, Vcl.DBCtrls, Data.DB, DBAccess, Uni, MemDS;

type
  TfrmClient = class(TForm)
    PopMnu: TPopupMenu;
    nmuDelete: TMenuItem;
    DBMmo: TDBMemo;
    Qry: TUniQuery;
    ds: TUniDataSource;
    QryIDNR: TIntegerField;
    QryFrmName: TStringField;
    QrysNotiz: TStringField;
    QryBKColor: TStringField;
    QryclTop: TIntegerField;
    QryclLeft: TIntegerField;
    QryclHeight: TIntegerField;
    QryclWidth: TIntegerField;
    QryiStayOnTop: TIntegerField;
    nmuStayOnTop: TMenuItem;
    dlgColor: TColorDialog;
    nmuColor: TMenuItem;
    QryftColor: TStringField;
    nmuFtColor: TMenuItem;
    procedure nmuDeleteClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure DBMmoChange(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure nmuStayOnTopClick(Sender: TObject);
    procedure DBMmoMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure DBMmoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
    procedure DBMmoMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure nmuColorClick(Sender: TObject);
    procedure nmuFtColorClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  protected
    procedure CreateParams(var Params: TCreateParams); override;
  private
    FInitialPos: TPoint;

    procedure SaveSetUp;

    { Private-Deklarationen }
  public
    PubiIDNR: Integer;

    bDel: Boolean;

    procedure SetData(iIDNR: Integer);

  end;

var
  frmClient: TfrmClient; // frClient

implementation

uses frPostIt;

{$R *.dfm}

procedure TfrmClient.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;
  Params.WndParent := 0;
end;
CodeSiteLogging habe ich nicht, deine eigene DsUnitXE3 fehlt leider auch im Download.
Wenn ich beides auskommentiere und entsprechende Zeilen ändere kann ich Dein Projekt starten.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Ausblenden des Hauptformulars(SDI), aber nicht daraus erzeugte Child Formulare

  Alt 16. Dez 2022, 17:10
Ps: Zum testen hatte ich Deiner Hauptform einen Style mit minimieren Button ausgestattet
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Ausblenden des Hauptformulars(SDI), aber nicht daraus erzeugte Child Formulare

  Alt 16. Dez 2022, 17:15
Bin nicht sicher ob das auf einfache Art lösbar ist. Bin auch nicht sicher, ob das normales Windows- oder Delphi Verhalten ist (Minimierung des Hauptfensters). Ein Lösungsansatz könnte aber eventuell sein, ein spezielles unsichtbares Hauptformular zu untzen (ev. W=0/H=0, wenn Visble False nicht geht), welches dann das Anwendungshautpformular ist. Dein aktuelles Hauptformular würde dann auch zu einem "normalen" Formular und hätte keinen Einfluss mehr auf die anderen PostIt Fenster. Das ist mal so ein Ideenansatz, habe es selber aber nicht ausprobiert.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Ausblenden des Hauptformulars(SDI), aber nicht daraus erzeugte Child Formulare

  Alt 16. Dez 2022, 18:33
Bin nicht sicher ob das auf einfache Art lösbar ist. Bin auch nicht sicher, ob das normales Windows- oder Delphi Verhalten ist (Minimierung des Hauptfensters). Ein Lösungsansatz könnte aber eventuell sein, ein spezielles unsichtbares Hauptformular zu untzen (ev. W=0/H=0, wenn Visble False nicht geht), welches dann das Anwendungshautpformular ist. Dein aktuelles Hauptformular würde dann auch zu einem "normalen" Formular und hätte keinen Einfluss mehr auf die anderen PostIt Fenster. Das ist mal so ein Ideenansatz, habe es selber aber nicht ausprobiert.
Das ding ist, solange es nur ein button auf der taskbar gibt, verhalten sich alle fenster entsprechend des hauptfensters, mit meiner obigen methode wird dieses verhalten auf den kopf gestellt und jedes weitere fenster von dieser klasse bekommt sein eigenen taskbar button spendiert, entkoppelt vom hauptfenster, das einzige was die noch zusammenhält ist ein schließen des hauptfensters.
Gruß vom KodeZwerg
  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 19:25 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