mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 12:21:44 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			192 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			192 lines
		
	
	
		
			4.7 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
| {
 | |
|  ***************************************************************************
 | |
|  *                                                                         *
 | |
|  *   This source is free software; you can redistribute it and/or modify   *
 | |
|  *   it under the terms of the GNU General Public License as published by  *
 | |
|  *   the Free Software Foundation; either version 2 of the License, or     *
 | |
|  *   (at your option) any later version.                                   *
 | |
|  *                                                                         *
 | |
|  *   This code is distributed in the hope that it will be useful, but      *
 | |
|  *   WITHOUT ANY WARRANTY; without even the implied warranty of            *
 | |
|  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
 | |
|  *   General Public License for more details.                              *
 | |
|  *                                                                         *
 | |
|  *   A copy of the GNU General Public License is available on the World    *
 | |
|  *   Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also      *
 | |
|  *   obtain it by writing to the Free Software Foundation,                 *
 | |
|  *   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.        *
 | |
|  *                                                                         *
 | |
|  ***************************************************************************
 | |
| }
 | |
| unit DlgForm;
 | |
| 
 | |
| {$mode objfpc}
 | |
| {$H+}
 | |
| 
 | |
| interface
 | |
| 
 | |
| uses Classes, Forms, Buttons, Dialogs, Graphics, StdCtrls;
 | |
| 
 | |
| type
 | |
|   TSampleDialogs = class(TForm)
 | |
|   private
 | |
|   protected
 | |
|   public
 | |
|     closeButton : TButton;
 | |
|     openButton : TButton;
 | |
|     saveButton : TButton;
 | |
|     colorButton : TButton;
 | |
|     fontButton : TButton;
 | |
|     dirButton : TButton;
 | |
|     dirLabel : TLabel;
 | |
|     fileLabel : TLabel;
 | |
|     constructor Create(AOwner: TComponent); override;
 | |
|     procedure buttonClick(Sender : TObject);
 | |
|     procedure FormDestroy(Sender : TObject);
 | |
|   end;
 | |
| 
 | |
| var
 | |
|    SampleDialogs : TSampleDialogs;
 | |
| 
 | |
| implementation
 | |
| 
 | |
| constructor TSampleDialogs.Create(AOwner: TComponent);
 | |
| begin
 | |
|   inherited CreateNew(AOwner, 1);
 | |
|   Caption := 'Common Dialogs';
 | |
|   SetBounds(200, 200, 400, 230);
 | |
|   Color := clTeal;
 | |
| 
 | |
|   OnDestroy := @FormDestroy;
 | |
| 
 | |
|   dirLabel := TLabel.Create(Self);
 | |
|   with dirLabel do
 | |
|   begin
 | |
|     Parent := Self;
 | |
|     SetBounds(110, 40, 280, 35);
 | |
|     Caption := 'Directory';
 | |
|     Show;
 | |
|   end;
 | |
| 
 | |
|   fileLabel := TLabel.Create(Self);
 | |
|   with fileLabel do
 | |
|   begin
 | |
|     Parent := Self;
 | |
|     SetBounds(110, 80, 280, 35);
 | |
|     Caption := 'File';
 | |
|     Show;
 | |
|   end;
 | |
| 
 | |
|   closeButton := TButton.Create(Self);
 | |
|   with closeButton do
 | |
|   begin
 | |
|     Parent := Self;
 | |
|     OnClick := @buttonClick;
 | |
|     SetBounds(110, 145, 75, 32);
 | |
|     caption := 'Close';
 | |
|     Tag := 1;
 | |
|     Show;
 | |
|   end;
 | |
| 
 | |
|   openButton := TButton.Create(Self);
 | |
|   with openButton do
 | |
|   begin
 | |
|     Parent := Self;
 | |
|     OnClick := @buttonClick;
 | |
|     SetBounds(10, 10, 75, 32);
 | |
|     caption := 'Open';
 | |
|     Tag := 2;
 | |
|     Show;
 | |
|   end;
 | |
| 
 | |
|   saveButton := TButton.Create(Self);
 | |
|   with saveButton do
 | |
|   begin
 | |
|     Parent := Self;
 | |
|     OnClick := @buttonClick;
 | |
|     SetBounds(10, 52, 75, 32);
 | |
|     caption := 'Save';
 | |
|     Tag := 3;
 | |
|     Show;
 | |
|   end;
 | |
| 
 | |
|   fontButton := TButton.Create(Self);
 | |
|   with fontButton do
 | |
|   begin
 | |
|     Parent := Self;
 | |
|     OnClick := @buttonClick;
 | |
|     SetBounds(10, 94, 75, 32);
 | |
|     caption := 'Font';
 | |
|     Tag := 4;
 | |
|     Show;
 | |
|   end;
 | |
| 
 | |
|   colorButton := TButton.Create(Self);
 | |
|   with colorButton do
 | |
|   begin
 | |
|     Parent := Self;
 | |
|     OnClick := @buttonClick;
 | |
|     SetBounds(10, 136, 75, 32);
 | |
|     caption := 'Color';
 | |
|     Tag := 5;
 | |
|     Show;
 | |
|   end;
 | |
| 
 | |
|   dirButton := TButton.Create(Self);
 | |
|   with dirButton do
 | |
|   begin
 | |
|     Parent := Self;
 | |
|     OnClick := @buttonClick;
 | |
|     SetBounds(10, 178, 75, 32);
 | |
|     caption := 'Directory';
 | |
|     Tag := 6;
 | |
|     Show;
 | |
|   end;
 | |
| end;
 | |
| 
 | |
| procedure TSampleDialogs.FormDestroy(Sender : TObject);
 | |
| begin
 | |
| 
 | |
| end;
 | |
| 
 | |
| procedure TSampleDialogs.buttonClick(Sender : TObject);
 | |
| begin
 | |
| 
 | |
|   case TButton(Sender).Tag of
 | |
|     1 : Close;
 | |
|     2 : with TOpenDialog.Create(Self) do
 | |
|         begin
 | |
|           Filter := '*.pp';
 | |
|           Options := Options + [ofAllowMultiSelect];
 | |
|           if Execute then fileLabel.Caption := FileName;
 | |
|           Free;
 | |
|         end;
 | |
|     3 : with TSaveDialog.Create(Self) do
 | |
|         begin
 | |
|           Filename := 'untitled.pp';
 | |
|           if Execute then fileLabel.Caption := FileName;
 | |
|           Free;
 | |
|         end;
 | |
|     4 : with TFontDialog.Create(Self) do
 | |
|         begin
 | |
|           Font.Assign(fontButton.Font);
 | |
|           if Execute then fontButton.Font.Assign(Font);
 | |
|           Free;
 | |
|         end;
 | |
|     5 : with TColorDialog.Create(Self) do
 | |
|         begin
 | |
|           Color := Self.Color;
 | |
|           if Execute then Self.Color := Color;
 | |
|           Free;
 | |
|         end;
 | |
|     6 : with TSelectDirectoryDialog.Create(Self) do
 | |
|         begin
 | |
|           if Execute then dirLabel.Caption := FileName;
 | |
|           Free;
 | |
|         end;
 | |
|   end;
 | |
| 
 | |
| end;
 | |
| 
 | |
| end.
 | 
