AGB  ·  Datenschutz  ·  Impressum  







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

Dialog wird nicht angezeigt

Ein Thema von originalhanno · begonnen am 19. Mär 2006 · letzter Beitrag vom 20. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#1

Dialog wird nicht angezeigt

  Alt 19. Mär 2006, 19:17
Hallo zusammen,
kann mir bitte jemand erklären, warum der Dialog nicht angezeigt wird?

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function DlgFunc(hwnd: HWND; umsg: UINT; wparam: WPARAM; lparam: LPARAM): BOOL; stdcall;
begin
  Result := True;
  case umsg of
  WM_INITDIALOG:
      begin
      SetDlgItemText(hwnd, 1001, 'Here the text will be received')
      end;
    WM_CLOSE:
      begin
      end;
    WM_COMMAND:

  else

  end;
end;

begin

  DialogBoxParam(hInstance, MakeIntResource(1001), 0, @dlgfunc, 0);

end.
  Mit Zitat antworten Zitat
C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Dialog wird nicht angezeigt

  Alt 19. Mär 2006, 20:25
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function DlgFunc(hwnd: HWND; umsg: UINT; wparam: WPARAM; lparam: LPARAM): BOOL; stdcall;
begin
  Result := True;
  case umsg of
  WM_INITDIALOG:
      begin
      SetDlgItemText(hwnd, 1001, 'Here the text will be received')
      end;
    WM_CLOSE:
      begin
      end;
    WM_COMMAND:

  else

  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
   DialogBoxParam(hInstance, MakeIntResource(1001), 0, @dlgfunc, 0);
end;

end.

IMHO müsste es so aussehen damit überhaupt etwas aufgerufen wird, aber wo ruftst du die Funktion DlgFunc auf?
wird die in DialogBoxParam aufgerufen?
  Mit Zitat antworten Zitat
originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#3

Re: Dialog wird nicht angezeigt

  Alt 19. Mär 2006, 21:05
Ich weiss nicht, ob ich DlgFunc schon aufrufe, indem ich den Pointer darauf in DialogParam verwende?

Kann mir das jemand erklären?
  Mit Zitat antworten Zitat
originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#4

Re: Dialog wird nicht angezeigt

  Alt 19. Mär 2006, 21:40
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function DlgFunc(hwnd: HWND; umsg: UINT; wparam: WPARAM; lparam: LPARAM): BOOL; stdcall;
begin
  Result := True;
  case umsg of
  WM_INITDIALOG:
      begin
      SetDlgItemText(hwnd, 1001, 'Here the text will be received')
      end;
    WM_CLOSE:
      begin
      end;
    WM_COMMAND:

  else

  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
   DlgWnd:Hwnd;
   Msg: TMSG;
   i:integer;
begin
  DlgWnd:=CreateDialog(hInstance, MakeIntResource(1), 0, @dlgfunc);
  if IsWindow(DlgWnd) then
  begin
       ShowWindow(DlgWnd,SW_SHOWNORMAL);
       UpdateWindow(DlgWnd);
       while GetMessage(Msg,0,0,0) do
             if not IsDialogMessage(DlgWnd, Msg) then
             begin
                  TranslateMessage(Msg);
                  Dispatch(Msg);
             end;
       end
  else
  begin
       i:=integer(GetLastError);
       showmessage(inttostr(i));
  end;
  end;
end.
Ich habe es nun so modifiziert, leider gibt nun "GetLastError" einen Fehler 1813 raus.
Das bedeutet :"The specified resource type cannot be found in the image file"

Wie funktioniert der Aufruf von CreateDialog, was muss ich bei MakeIntResource angeben?

Bin für Antworten sehr dankbar....
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Dialog wird nicht angezeigt

  Alt 19. Mär 2006, 22:39
Stimmt die RessourcenID? Häng mal den Code und alles was dazu gehört von deiner ersten Version an, dann gucke ich mir das mal an.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#6

Re: Dialog wird nicht angezeigt

  Alt 19. Mär 2006, 23:33
ich weiß nicht ob die Resourcen-Id stimmt, denn ich habe keine woher ich die bekomme / was das ist !
Ich währe sehr dankbar, wenn Du es mir erklären könntest.

Zitat:
Häng mal den Code und alles was dazu gehört von deiner ersten Version an, dann gucke ich mir das mal an.
Das ist der Code den ich geschrieben habe, um die Sache mit den Dialogen überhaupt zu verstehen, da ich doch langsam am verzweifeln bin.
Mein eigentiches Problem ist aber, das ich aus einem Maus-Hook, der sich ja in einer DLL befindet einen Dialog / Label aufrufen möchte, der mir x- und y Position anzeigen soll.
Ich weiss nicht, ob ich mittels IPC die Nachricht an das aufrufende Proramm senden soll, oder ob ich direkt aus der DLL einen Dialog starten kann.

Bitte um HILFE !!!

Auch werde ich noch Fragen zu IPC stellen müssen, da mein globaler Maus-Hook wohl so nicht geht.
Ich währe ÜBERAUS DANKBAR für ein Beispiel, dass meine Aufgabe umsetzt, so dass ich sehen kann, was ich nicht verstanden habe, da ich michh im Moment irgendwie im Kreis bewege, und auch nicht mehr weiß was ich fragen soll / was sinnvoll ist zu fragen, was nicht...




Vielen Dank schon mal an alle Geduldigen...


LG

Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Dialog wird nicht angezeigt

  Alt 19. Mär 2006, 23:48
Nun ja, du wirst ja irgendwo mit einem RessourcenEditor einen Dialog erstellt haben und dort wirst du ja ein IDE vergeben haben. Aber warum mischt du VCL und nonVCL so komisch?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#8

Re: Dialog wird nicht angezeigt

  Alt 19. Mär 2006, 23:55
Ich habe mit keinem Resourcen-Editor einen Dialog geschrieben...
Muss ich das?
Wie geht das??

Im Moment ist es mir noch egal, ob ich VCL und NON-VCL mische. Ich weiss zwar das das nicht sehr cool ist, jedoch möchte ich nur die Funktion von meinem Maus-Hook verstehen, und dazu muss ich sehen was / ob was passiert.
Also, ich möchte auf dem einfachsten Wege, die Werte die mein Maus Hook verarbeitet sehen können....

LG Michael
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Dialog wird nicht angezeigt

  Alt 20. Mär 2006, 00:07
Äh, deswegen heißt es ja DialogRessource, weil der Dialog aus einer Ressource geladen wird.

Und einfach mal im MSD unter MSDN-Library durchsuchenDialogBoxParam gucken.

nonVCL Tutorials: http://delphitutorials.michael-puff.de
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
originalhanno

Registriert seit: 20. Feb 2006
33 Beiträge
 
#10

Re: Dialog wird nicht angezeigt

  Alt 20. Mär 2006, 00:15
aha,
ja die Funktionsdefinition hab ich gelesen, versteh aber nicht was ein template ist?

Kannst Du es mir erklären?

Hast Du vielleicht ein einfaches Beispiel, ohne zusätzliche Funktionen. Bei Assarbad gibt es auch ein Hook Tutorial, allerings sind da viele Sachen auf einmal drinnen, finde ich schwer zu verstehen.

Wie erstelle ich einen Dialog?
  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 10:57 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