![]() |
Unit zu Unit.
Ich möchte auf eine procedure einer anderen Unit zugreifen.
unit DbDatesF;
Delphi-Quellcode:
Möchte gerne auch von meiner unit help das PageControll freigeben.
procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean); begin If (PageControl1.ActivePageIndex = 0) and (Edit3.Text <> 'key') Then AllowChange := False; end; Meine versuche sind alle gescheittert. |
Re: Unit zu Unit.
Da ja PageControl1Changing in TForm1 eingebunden ist, mußt du auch angeben, wo sich diese Prozedur befindet:
Delphi-Quellcode:
Unit Help;
... Implementation Uses DbDatesF; // Unit einbinden, auf die du zugreifen willst ... Begin Form1.PageControl1Changing(Sender, AllowChange); End; |
Re: Unit zu Unit.
Uses DbDatesF; hatte ich schon.
Mit Form1.PageControl1Changing(Sender, AllowChange); sagt er Undefinierter Bezeichner AllowChange. Kann es sein das ich in
Delphi-Quellcode:
Eintragen muß wie eine Klasse?
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; |
Re: Unit zu Unit.
Zitat:
schönen Gruß Sam |
Re: Unit zu Unit.
Fehler! Habe ich noch nie gehört!
Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen! |
Re: Unit zu Unit.
Delphi-Quellcode:
dann versuch das mal :-)
var aBoolVar : Boolean;
Begin aBoolVar := true; Form1.PageControl1Changing(Sender, aBoolVar); End; ächz...ich geh jetzt Kaffe holen.. |
Re: Unit zu Unit.
Der Fehler ist weg, aber das PageControl bleibt immer noch zu!
Jetzt liegt es an Edit3 das er nicht findet in unit DbDatesF;. Edit3 liegt in unit help. Habe aber uses help in DbDatesF gemacht. Muß Edit3 auch wieder auf From1 zuweisen? |
Re: Unit zu Unit.
Zitat:
|
Re: Unit zu Unit.
so geht das nicht!
TForm2.Edit3 wie dann? |
Re: Unit zu Unit.
Zitat:
|
Re: Unit zu Unit.
So geht es aber auch nicht.
If (PageControl1.ActivePageIndex = 0) and (Form2.Edit3.Text <> 'key') Then AllowChange := False; |
Re: Unit zu Unit.
Zur besser Übersicht!
Delphi-Quellcode:
unit help;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Label1: TLabel; Edit3: TEdit; Label2: TLabel; Button1: TButton; procedure FormCreate(Sender: TObject); procedure Edit3Change(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var f_help: TForm2; implementation uses DbDatesF; {$R *.dfm} procedure TForm2.FormCreate(Sender: TObject); begin label1.Caption:=form1.caption; end; procedure TForm2.Edit3Change(Sender: TObject); begin Edit3.PasswordChar := '*'; end; procedure TForm2.Button1Click(Sender: TObject); var aBoolVar : Boolean; Begin aBoolVar := true; Form1.PageControl1Changing(Sender, aBoolVar); close; End; end.
Delphi-Quellcode:
unit DbDatesF;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, Mask, DBCtrls, Db, DBTables, ExtCtrls, Grids, DBGrids, DBCGrids, IBDatabase, IBCustomDataSet, IBTable, IBQuery, ShellAPI, Menus, ToolWin, ActnMan, ActnCtrls, ActnMenus, ActnColorMaps, IBStoredProc, ActnList; type TForm1 = class(TForm) DataSource2: TDataSource; IBTable1: TIBTable; IBDatabase1: TIBDatabase; IBTransaction1: TIBTransaction; IBQuery1: TIBQuery; DataSource3: TDataSource; MainMenu1: TMainMenu; Datei1: TMenuItem; Beenden1: TMenuItem; Beenden2: TMenuItem; Hilfe1: TMenuItem; Timer1: TTimer; Timer2: TTimer; DataSource1: TDataSource; IBQuery2: TIBQuery; Kontakt1: TMenuItem; Help1: TMenuItem; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; PrintDialog1: TPrintDialog; DruckerEinstellungen1: TMenuItem; PrinterSetupDialog1: TPrinterSetupDialog; PageControl1: TPageControl; TabSheet2: TTabSheet; DBGrid2: TDBGrid; GroupBox2: TGroupBox; Edit2: TEdit; TabSheet3: TTabSheet; DBNavigator1: TDBNavigator; DBGrid4: TDBGrid; GroupBox3: TGroupBox; Edit1: TEdit; Button1: TButton; Button2: TButton; DBGrid1: TDBGrid; DataSource4: TDataSource; IBQuery3: TIBQuery; Timer3: TTimer; Timer4: TTimer; IBQuery4: TIBQuery; DataSource5: TDataSource; DBGrid3: TDBGrid; Beenden3: TMenuItem; Label2: TLabel; Label3: TLabel; procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure ffnen1Click(Sender: TObject); procedure Speichern1Click(Sender: TObject); procedure Beenden1Click(Sender: TObject); procedure Kontakt1Click(Sender: TObject); procedure Help1Click(Sender: TObject); procedure DruckerEinstellungen1Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure PageControl1Changing(Sender: TObject; var AllowChange: Boolean); procedure DBGrid2CellClick(Column: TColumn); procedure Edit2Change(Sender: TObject); procedure Timer4Timer(Sender: TObject); procedure Beenden3Click(Sender: TObject); procedure Beenden2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses u_hilfe, help; {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin IBTable1.Open; Button2Click(sender); end; /////////Button begin///////////////////////////////////////////////// procedure TForm1.Button1Click(Sender: TObject); begin IBTable1.Open; IBQuery1.SQL.Text:='select titel,datei from tabelle1 where suchbegriffe like ''%'+edit2.Text+'%'''; IBQuery1.Open; end; procedure TForm1.Button2Click(Sender: TObject); begin timer4.Enabled:=false; IBQuery4.SQL.Text:='select titel,datei from tabelle1 where memofeld like ''%'+edit1.Text+'%'''; IBQuery4.Open; end; procedure TForm1.Button3Click(Sender: TObject); begin label2.caption:= IntToStr(IBQuery3.recordcount); end; ///////Button ende//////////////////////////////////////////// ///////Timer begin////////////////////////////////////////////////// procedure TForm1.Timer1Timer(Sender: TObject); begin timer1.Enabled:=false; IBQuery1.SQL.Text:='select titel,datei from tabelle1 where suchbegriffe like ''%'+edit2.Text+'%'''; IBQuery1.Open; end; procedure TForm1.Timer3Timer(Sender: TObject); begin timer3.Enabled:=false; IBQuery3.SQL.Text:='select suchbegriffe from tabelle1 where suchbegriffe like ''%'+edit2.Text+'%'''; IBQuery3.Open; label2.caption:= 'Treffer '+IntToStr(IBQuery3.recordcount); end; procedure TForm1.Timer4Timer(Sender: TObject); begin timer4.Enabled:=false; IBQuery4.SQL.Text:='select titel,datei from tabelle1 where memofeld like ''%'+edit1.Text+'%'''; IBQuery4.Open; label3.caption:= 'Treffer '+IntToStr(IBQuery4.recordcount) end; ////////Timer ende///////////////////////////////////////////// //////Menü begin/////////////////////////////////////////////////// procedure TForm1.ffnen1Click(Sender: TObject); begin OpenDialog1.Execute; end; procedure TForm1.Speichern1Click(Sender: TObject); begin SaveDialog1.Execute; end; procedure TForm1.Beenden1Click(Sender: TObject); begin PrintDialog1.Execute; end; procedure TForm1.DruckerEinstellungen1Click(Sender: TObject); begin PrinterSetupDialog1.Execute; end; procedure TForm1.Beenden2Click(Sender: TObject); begin Application.CreateForm(TForm2,f_help); f_help.show; end; procedure TForm1.Beenden3Click(Sender: TObject); begin close; end; procedure TForm1.Kontakt1Click(Sender: TObject); begin Application.CreateForm(TF_hilfe,f_hilfe); f_hilfe.showmodal; F_hilfe.Free; end; procedure TForm1.Help1Click(Sender: TObject); begin ShellExecute(0, nil, 'HelpFile.hlp', nil, nil, 9); end; ////////Menü ende////////////////////////////////////////////////// ////////Edits begin////////////////////////////////////////////// procedure TForm1.Edit1Change(Sender: TObject); begin if Edit1.Text <> '' then DBGrid3.Visible:= true else DBGrid3.Visible:= false; timer4.Enabled:=false; timer4.Enabled:=true; end; procedure TForm1.Edit2Change(Sender: TObject); begin timer1.Enabled:=false; timer1.Enabled:=true; timer3.Enabled:=false; timer3.Enabled:=true; timer4.Enabled:=false; timer4.Enabled:=true; end; ///////Edits ende/////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// procedure TForm1.DBGrid2CellClick(Column: TColumn); var s: string; x: PAnsiChar; begin s:=IBQuery1.FieldByName('datei').AsString; x := PChar(s); if ShellExecute(0, nil, x, nil, nil, 9)< 33 then showmessage('Anwendung kann nicht geoeffnet werden '); end; procedure TForm1.PageControl1Changing(Sender: TObject; var AllowChange: Boolean); begin If (PageControl1.ActivePageIndex = 0) and (Form2.Edit3.Text <> 'key') Then AllowChange := False; end; end. |
Re: Unit zu Unit.
Moin Thomas,
hänge bitte so lange Codeabschitte als Datei an den Beitrag an. Danke. |
Re: Unit zu Unit.
Guten Morgen!
Habe immer noch das Problemm das mein PageControl nicht freigeschalten wird. Wenn ich mein Passwort von einen anderen Formular eingebe. Im selben Dokument geht es prima. |
Re: Unit zu Unit.
Wie kann ich es sagen das Edit3 in einer anderen Unit liegt.
Delphi-Quellcode:
procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean); begin If (PageControl1.ActivePageIndex = 0) and (TForm2.Edit3.Text <> 'key') Then AllowChange := False; end; |
Re: Unit zu Unit.
Moin!
Du hast selber die Instanzenvariable umbenannt in der anderen Unit, vielleicht kannst damit jetzt einen Bezug herstellen...
Delphi-Quellcode:
... Ok, hier der Code, sonst wird der Beitrag noch länger:
var
f_help: TForm2;
Delphi-Quellcode:
TForm2 ist nur der Name deiner Klasse. Diese beschreibt doch nur ihr Verhalten (mit den Komponenten auch ihr aussehen in Form eines Formulars). Du willst aber die Instanz ansprechen ...
procedure TForm1.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean); begin If (PageControl1.ActivePageIndex = 0) and (f_help.Edit3.Text <> 'key') Then AllowChange := False; end; MfG Muetze1 |
Re: Unit zu Unit.
Danke.
Ein Fehler weniger! Nur noch Inkompatible Typen String und Boolean? Was will er mit Anweisung erwartet aber Dateiende gefunden? |
Re: Unit zu Unit.
Delphi-Quellcode:
So einfach geht es.
if ((f_help.Edit3.Text) <> 'key') then AllowChange := False;
Und ich habe so viel zeit gebraucht! Trotzdem Danke an alle!!! |
Re: Unit zu Unit.
Zitat:
Delphi-Quellcode:
AllowChange := ((f_help.Edit3.Text) = 'key');
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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