AGB  ·  Datenschutz  ·  Impressum  







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

Fenster erstellt bzw. sichtbar !?

Ein Thema von dor557 · begonnen am 19. Apr 2007 · letzter Beitrag vom 24. Apr 2007
Antwort Antwort
Benutzerbild von dor557
dor557

Registriert seit: 24. Okt 2004
Ort: Walldorf
197 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

Re: Fenster erstellt bzw. sichtbar !?

  Alt 20. Apr 2007, 05:17
Ich denke ich habe das Problem Gefunden.

Ich kann ja nicht auf die Variablen in der ersten instanz zugreifen richtig ??

Falls ja dann müsste ich wissen wie !!

die momentane basis ist folgender Code :

Delphi-Quellcode:
procedure ProcessCommandline(lpData: Pointer);
begin
   MainForm.RichEdit1.Lines.Clear;
   MainForm.RichEdit1.text := ParamBlobToStr(lpData);
   if not (length(MainForm.RichEdit1.Lines[0]) > 1) then
   begin
     MainForm.RichEdit1.Lines.Add(ParamStr(1));
   end;
   if (length(MainForm.RichEdit1.lines[0]) > 2) then
   begin
     MainForm.XMLopenF.FileName := MainForm.RichEdit1.Lines[0];
     MainForm.AuswahlPanel.Visible := false;
if xmlDatenF = nil then
     begin
       xmlDatenF := TxmlDatenF.create(Application);
       xmlDatenF.Show;
    end
else
    begin
      MessageDlg('xmlDatenF ist nicht nil',mtInformation , [mbOK],0);
      xmlDatenF := TxmlDatenF.create(Application);
      xmlDatenF.Show;
    end;
   end;
end;

{ Eine zweite Instanz hat uns ihre Kommandozeilenparameter geschickt }
procedure TMainForm.WMCopyData(var Msg: TWMCopyData);
begin
  if (Msg.CopyDataStruct.dwData = SecondInstMsgId) and (SecondInstMsgId <> 0) then
    ProcessCommandline(Msg.CopyDataStruct.lpData)
  else
    { Tcha wohl doch nicht ID - stimmte nicht }
    inherited;
end;

{----------------------------------------------------------------------------}
{ Wir überschreiben den DefaultHandler, der alle Nachrichten zuerst bekommt, }
{ damit wir auf die Nachricht mit der ID SecondInstMsgId reagieren können.   }
{ (Dies ist notwendig, da wir jetzt noch nicht wissen welchen Wert           }
{  die ID haben wird, weswegen wir keine statische Message-Prozedure,        }
{  so wie bei WM_COPYDATA, schreiben können.)                                }
{----------------------------------------------------------------------------}
procedure TMainForm.DefaultHandler(var Message);
begin
  if TMessage(Message).Msg = SecondInstMsgId then
    { Eine zweite Instanz hat uns nach dem Handle gefragt }
    { Es wird in die Message-Queue des Threads gepostet.  }
    PostThreadMessage(TMessage(Message).WParam, SecondInstMsgId, Handle, 0)
  else
    { Ansonsten rufen wir die geerbte Methode auf }
    inherited;
end;

procedure TMainForm.FormShow(Sender: TObject);
var
  lpData: Pointer;
  cbData: DWORD;
begin
  lpData := ParamStrToBlob(cbData);
  try
    ProcessCommandline(lpData);
  finally
    FreeMemory(lpData);
  end;
end;
Der Fehler passiert wenn das XMLDatenF mit release geschlossen werden soll und nicht nil ist ! also im klartext mit folgendem code bekomme ich die meldung :

  XMLDatenF.Release; wahlweise auch Destroy...

das ist egal.....

Bekomme die meldung dann immer wenn ich XMLDatenF.Release schreibe.

in der OnClick anweisung muss ich ohne XMLDatenF den befehl Release machen ansonsten bekomme ich die gleiche Fehlermeldung.

Anscheinend muss die Frage also lauten wie kann ich ein Fenster mit Release schliessen ohne das XMLDatenF bzw. den Formularnamen zu benutzen !?

Gruss Sascha
Sascha Nickel
  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 00:34 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 by Thomas Breitkreuz