AGB  ·  Datenschutz  ·  Impressum  







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

Find Window und FindForm

Ein Thema von Cylence · begonnen am 14. Nov 2008 · letzter Beitrag vom 17. Nov 2008
Antwort Antwort
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#1

Find Window und FindForm

  Alt 14. Nov 2008, 09:13
Hi,

ich hab einige Menuitems die nur eine Form anzeigen on Click also nur FormXYZ.Show;
Jetzt hab ich mir gedacht wär doch einfacher ich mach nur eine Prozedur für alle... und geb den Namen der Form als Hint beim Menuitem ein, damit würde ich mal wieder einen haufen sparen... aber es mag leider nich so ganz wie ich will...

Delphi-Quellcode:

procedure TForm1.Gargle2Click(Sender: TObject);
var
  ClassName : PAnsiChar;
  WindowName : PAnsiChar;
begin
  WindowName := PChar((Sender as TMenuitem).Hint);
  ClassName := PChar('T'+ (Sender as TMenuitem).Hint);
  FindForm(FindWindow(ClassName,WindowName)).Show;
  //frmDVDDMOGargle.Show;
end;
Ich krieg nur eine Zugriffsverletzung... aber Syntax passt ebenfalls hab ich Klassennamen und WindowName korrekt im Debugger also TfrmDVDDMOGargle und frmDVDDMOGargle aber findWindow funzt nicht... FindWindow gibt immer 0 zurück

kennt sich einer von euch damit aus?
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Find Window und FindForm

  Alt 14. Nov 2008, 09:37
Hi,

habs rausgefunden...

das FindWindow meint zwar das es einen WindowNamen will aber...das ist nicht richtig... mit der Caption gehts:

FindForm(FindWindow(nil,Pchar((Sender as TMenuitem).Hint))).Show;

Gruß

tom
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Find Window und FindForm

  Alt 14. Nov 2008, 09:47
Zitat von Cylence:
das FindWindow meint zwar das es einen WindowNamen will aber...das ist nicht richtig... mit der Caption gehts:
In welcher Dokumentation steht das? Im Windows SDK steht eindeutig, dass der erste Paramter die Fensterklasse und der zweite Parameter der Fenstertitel ist.
Aber warum so kompliziert? Das TApplication Objekt, müsste doch alle Forms kennen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Find Window und FindForm

  Alt 14. Nov 2008, 10:26
Hi,

keine ahnung in welcher Dokumentation das steht aber mit Fensternamen hat FindWindow niemals was gefunden jetzt geb ich da die Caption ein und siehe da das ganze funktioniert...

achja und ich mach das so kompliziert weil ich das sehr viel schöner find als 30 einzelne Prozeduren mit nur irgendneForm.Show
is ne sehr schöne art so find ich... spart mal kurz wieder 6 Kb von meiner exe ein jetzt
Tom
Just DO it
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Find Window und FindForm

  Alt 14. Nov 2008, 10:35
Das meine ich nicht. Du kannst der Methode ja den Formularnamen übergeben, welchen du als zusätzliche Information in den Menüitems hinterlegst.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#6

Re: Find Window und FindForm

  Alt 14. Nov 2008, 11:49
also wenn du nur beim klicken n form anzeigen willst, dann könntest du in dem tag feld das entsprechende form speichern
TMenuItem(xxx).Tag := Integer(Form2); und in der onclick dann entsprechend so anzeigen
Delphi-Quellcode:
  with Sender as TMenuItem do
    TForm(Tag).Show;
  Mit Zitat antworten Zitat
Benutzerbild von Cylence
Cylence

Registriert seit: 2. Sep 2004
Ort: Allgäu
246 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Find Window und FindForm

  Alt 17. Nov 2008, 14:45
Hi,

das hört sich auch nich schlecht an, aber da müsst ich ja auch ncoh an die Tags die Handles übergeben on popup oder so und damit würde es dann die ersparnis von vorher wieder weg machen, aber trotzdem schöne lösung
Tom
Just DO it
  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 13:25 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