Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Unit zu Unit. (https://www.delphipraxis.net/20791-unit-zu-unit.html)

thomasvonmuenster1 23. Apr 2004 10:21

Re: Unit zu Unit.
 
So geht es aber auch nicht.
If (PageControl1.ActivePageIndex = 0) and (Form2.Edit3.Text <> 'key') Then AllowChange := False;

thomasvonmuenster1 23. Apr 2004 10:23

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.

Christian Seehase 23. Apr 2004 22:35

Re: Unit zu Unit.
 
Moin Thomas,

hänge bitte so lange Codeabschitte als Datei an den Beitrag an.
Danke.

thomasvonmuenster1 26. Apr 2004 07:24

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.

thomasvonmuenster1 26. Apr 2004 08:06

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;

Muetze1 26. Apr 2004 08:12

Re: Unit zu Unit.
 
Moin!

Du hast selber die Instanzenvariable umbenannt in der anderen Unit, vielleicht kannst damit jetzt einen Bezug herstellen...

Delphi-Quellcode:
var
  f_help: TForm2;
... Ok, hier der Code, sonst wird der Beitrag noch länger:

Delphi-Quellcode:
procedure TForm1.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  If (PageControl1.ActivePageIndex = 0) and (f_help.Edit3.Text <> 'key') Then AllowChange := False;
end;
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 ...

MfG
Muetze1

thomasvonmuenster1 26. Apr 2004 10:53

Re: Unit zu Unit.
 
Danke.
Ein Fehler weniger!
Nur noch Inkompatible Typen String und Boolean?
Was will er mit Anweisung erwartet aber Dateiende gefunden?

thomasvonmuenster1 26. Apr 2004 11:08

Re: Unit zu Unit.
 
Delphi-Quellcode:
 if ((f_help.Edit3.Text) <> 'key') then AllowChange := False;
So einfach geht es.
Und ich habe so viel zeit gebraucht!
Trotzdem Danke an alle!!!

Sharky 26. Apr 2004 11:27

Re: Unit zu Unit.
 
Zitat:

Zitat von thomasvonmuenster1
...So einfach geht es...

Oder noch kürzer ;-)

Delphi-Quellcode:
  AllowChange := ((f_help.Edit3.Text) = 'key');


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:21 Uhr.
Seite 2 von 2     12   

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