Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Tutorials und Kurse (https://www.delphipraxis.net/36-tutorials-und-kurse/)
-   -   [Artikel] Den ExitCode eines Dialogfensters nutzen (https://www.delphipraxis.net/68716-%5Bartikel%5D-den-exitcode-eines-dialogfensters-nutzen.html)

Luckie 4. Mai 2006 12:47

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Das klingt interessant. Wie ginge das genau mit SetPorp und GetPorp? Das kenne ich noch nicht.

NicoDE 4. Mai 2006 12:56

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Window Properties

Luckie 4. Mai 2006 13:01

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Klingt gut. ;)

TeronG 4. Mai 2006 13:41

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Nette Idee .... find ich gut.
Zitat:

Zitat von www.michael-puff.de
... Auch als Programmierer muss man eben kreativ sein ...

:gruebel: ich würd sogar sagen besonders als Programmierer muss man kreativ sein und darf sich seine Möglichkeiten nicht durch :oops: ohh ... ich schweif schon wieder ab (und auch noch OT) :roll:

Luckie 4. Mai 2006 14:10

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Zitat:

Zitat von NicoDE
Man könnte beim Aufruf von DialogBoxParam() auch den Zeiger auf eine Struktur übergeben (kommt in WM_INITDIALOG an, wenn ich mich recht erinnere).
Diesen Zeiger kann man sich dann im Dialog lokal speichern (SetProp/GetProp).

Ich habe mir das mal überlegt. Ich rufe also den Dialog auf und übergebe einen Zeiger auf eine Struktur. In WM_INITDIALOG speichere ich diesen Zeiger mit SetProp "im" Dialog so zu sagen. Mit GetProp hole ich ihn mir, fülle die Struktur mit Werten und dann schließe ich den Dialog. Aber wie komme ich aus dem Hauptpriggramm an die Daten dran? In dem Moment wo der Dialog geschlossen wird, sind ja auch die an ihm gebundenen Daten futsch. OPder denkst du an eine Kombination aus deiner Möglichkiet und meiner mit dem ExitCode? Also die Struktur als parameter übergeben und mit dem ExitCode wieder zurückgeben?

NicoDE 4. Mai 2006 14:35

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Zitat:

Zitat von Luckie
Aber wie komme ich aus dem Hauptpriggramm an die Daten dran? In dem Moment wo der Dialog geschlossen wird, sind ja auch die an ihm gebundenen Daten futsch.

Nope, die Daten gehören dem aufrufenden Code...
Delphi-Quellcode:
var
  //...
  SelCmpData: TSelCmpData;
  //...
begin
  //...
  Ret := DialogBoxParam(HInstance, MAKEINTRESOURCE(200), hDlg, @ChooseCompDlgFunc, LPARAM(@SelCmpData));
  //... hier ist die lokale Struktur durch den Dialog gefüllt worden (oder eben nicht, je nach Exit-Code)

Luckie 4. Mai 2006 14:42

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Ach so. Und wo kommt da jetzt SetProp und GetProp ins Spiel? Aber wie wird denn dann die Struktur gefüllt? Sie ist doch nur im Hauptprogramm bekannt.

WoGe 4. Mai 2006 14:47

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Hi,
nur mal so als Einwurf: Früher habe ich solche Daten immer mit SendMessage oder besser mit PostMessage verschickt.
Ist das keine sinnvolle Möglichkeit mehr?

Gruß
wo

NicoDE 4. Mai 2006 14:51

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Zitat:

Zitat von Luckie
Und wo kommt da jetzt SetProp und GetProp ins Spiel?

Die jeweilige Instanz des Dialogs kennt (innerhalb der Dialog-Funktion) immer nur ihr Fenster-Handle. Deshalb muss es den Zeiger auf die zu füllende Struktur 'irgendwo am Fenster-Handle' speichern. Hierzu wird der Zeiger auf die Struktur bei WM_INITDIALOG als Property gespeichert (SetProp). Und immer wenn der Dialog die Struktur benötigt, dann holt es sich den Zeiger mittels GetProp.
(ps: RemoveProp nicht vergessen :))

Ergo, keine globalen Variablen und kein Mißbrauch des Exit-Codes.

Zitat:

Zitat von WoGe
Früher habe ich solche Daten immer mit SendMessage oder besser mit PostMessage verschickt.
Ist das keine sinnvolle Möglichkeit mehr?

DialogBoxParam kejrt erst zurück wenn der Dialog geschlossen wird.

Luckie 4. Mai 2006 14:53

Re: [Artikel] Den ExitCode eines Dialogfensters nutzen
 
Ja wer holt sich den Zeiger, aber er kennt doch die Struktur nicht, die dahinterliegt, weil diese Struktur doch nur im Hauptprogramm definiert ist oder wo hast du sie definiert?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:40 Uhr.
Seite 2 von 5     12 34     Letzte »    

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