Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Projektweit form suchen (https://www.delphipraxis.net/8529-projektweit-form-suchen.html)

Nimoee 7. Sep 2003 10:23


Projektweit form suchen
 
Hallo,
wie kann man Projektweit nach einer form suchen?
with suchmethode do
........

nimoee

Phoenix 7. Sep 2003 11:19

Re: Projektweit form suchen
 
Also ich verstehe nicht 100% was Du meinst.

Prinzipiell gibt es da zwei Möglichkeiten:

1.) Du bist noch am Coden:
Delphi-Suche (Bearbeiten / Suche), dort die tab-page "in Dateien Suchen" auswählen, als Suchstring: "TFormKlassenName = Class(" angeben und los gehts :)

2.) Runtime:
so gut wie gar nicht. Du müsstest über die RTTI (RunTime Type Information) über alle globalen Variablen iterieren und bei jeder globalen Variablen den Typ (Klassennamen) abfragen. Geht freilich nur, wenn Du Deine Forms auch als globale Variable deklariert hast.

Ist aber recht aufwendig.
Eine recht einfache Möglichkeit wäre (so mach ich das bei grösseren Projekten): Du erstellst ein var Array of var als globale variable.
Nach der Deklaration eiones Forms gehst Du im Implementation-Teil her, und trägst das Form in das Array ein. So brauchst Du hinterher nur noch in dem Array zu suchen und hast alle Deine Forms dort registriert.

Nimoee 7. Sep 2003 12:42

Re: Projektweit form suchen
 
hallo,

ich hab das problem, dass ich von einem Listfeld aus jede Menge editfelder, die in verschiedenen Forms liegen Focusieren muss.
Also erst Fenster auf, dann Focus auf das Edit-feld.

nimoee

Christian Seehase 7. Sep 2003 12:55

Re: Projektweit form suchen
 
Moin Nimoee,

probier's doch mal mit Application.FindComponent.

Beispiel:

Delphi-Quellcode:
var
  frmWork : TForm;

begin
  frmWork := Application.FindComponent('Form2') as TForm;
  if frmWork <> nil then frmWork.Show;
end;

Nimoee 7. Sep 2003 13:14

Re: Projektweit form suchen
 
hallo,
das hat mir gefehlt, habs immer mit findclass probiert.
Ich probiers.
Danke
nimoee

Nimoee 7. Sep 2003 13:22

Re: Projektweit form suchen
 
hallo,

das funktioniert prima.

nimoee

Nimoee 7. Sep 2003 14:19

Re: Projektweit form suchen
 
hallo,

jetzt barauch ich das Ganze noch um nach einem edt-feld zu suchen..

nimoee

CalganX 7. Sep 2003 15:33

Re: Projektweit form suchen
 
Dann nimmst du auch FindComponent. Nur dann auf einem Formular.
Delphi-Quellcode:
DeinForm.FindComponent('edtUsername');
Chris

PS: Schau dir auch mal die Hilfe von FindComponent an...

Nimoee 7. Sep 2003 15:37

Re: Projektweit form suchen
 
Hallo,

das ist nicht ganz so trivial, wie das aussieht. Ich jabe vorher die Form schon mit findcomponent gesucht.
Ich müsste also das 1. Ergenis für die Suche nutzen!

nimoee

CalganX 7. Sep 2003 15:42

Re: Projektweit form suchen
 
Hi,
das ist nicht viel schwieriger. Du speicherst das Formular aus der ersten Suche in eine Variable und suchst dann. So schwer ist das wirklich nicht. Siehe auch Hilfe.

Chris

Nimoee 7. Sep 2003 15:47

Re: Projektweit form suchen
 
Hallo,
was ist hier falsch? ( ich steh auf der Leitung ). Die Syntax an sich ist klar.
Delphi-Quellcode:
frmWork1:= Application.FindComponent(Lb1.items[lb1.itemindex]) as Tform;
  With frmwork1 do
       Begin
          frmWork := FindComponent(Lb2.items[n]) as Tedit;
       end;
Fehlermeldung: Ungültige Typumwandlung, bei der with Zeile.
frmwork1:tform
frmwork:tedit

nimoee

[edit=Luckie] Mfg, Luckie[/edit]

CalganX 7. Sep 2003 15:50

Re: Projektweit form suchen
 
Hi,
bitte formatiere deine Sourcecodestücke mit den [ delphi]-Tags.

Delphi-Quellcode:
frmWork1:= Application.FindComponent(Lb1.items[lb1.itemindex]) as Tform;
// With frmwork1 do <-- weg
// Begin
edtWork := frmWork1.FindComponent(Lb2.items[n]) as Tedit;
// end;
Chris

Nimoee 7. Sep 2003 15:54

Re: Projektweit form suchen
 
hallo,
ja, hab ich übersehen. Aber gleiches Problem.
Geht so nicht.
nimoee

Christian Seehase 7. Sep 2003 16:00

Re: Projektweit form suchen
 
Moin Nimoee,

also bei mir wird Dein Code akzeptiert (auch mit der With Konstruktion).
Der Fehler muss woanders liegen.
(die LBs hab' ich als TListBox deklariert, n als integer)

Nimoee 7. Sep 2003 16:04

Re: Projektweit form suchen
 
hallo Christian,

sobald ich in die Zeile mit Tedit einen string zum suchen einfüge gehts!

nimoee

Christian Seehase 7. Sep 2003 16:11

Re: Projektweit form suchen
 
Moin Nimoee,

:shock:

ich hab's 1:1 übernommen, ebenfalls mit D5, und bei mir geht's.

Nimoee 7. Sep 2003 16:14

Re: Projektweit form suchen
 
Ääähm, hallo Leute,

ich wags garnicht zu sagen! War mein Fehler. Das Edit Feld war nicht vom Typ Edit sondern tmaskedit. Jetzt funktioniert das Ganze.

Ich dank euch für die schnelle Hilfe.
nimoee


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 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