AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme FileView Komponenten im Register System
Thema durchsuchen
Ansicht
Themen-Optionen

FileView Komponenten im Register System

Ein Thema von delphifan2004 · begonnen am 21. Jan 2005
Antwort Antwort
delphifan2004

Registriert seit: 26. Nov 2004
Ort: Dresden
266 Beiträge
 
Delphi 10.3 Rio
 
#1

FileView Komponenten im Register System

  Alt 21. Jan 2005, 13:17
Hallo!

Ich will mal die FileView Komponenten verwenden, die , wenn ich eine CLX Anwendung neu erstelle, auf dem Komponentenregister System zu finden sind. Mit einer DirectoryListView will ich das Verzeichnis auswählen, eine FileListView soll mir meine Dateien in diesem Verzeichnis anzeigen und eine dort ausgewählte Datei in FileEdit.Text übernehmen. Diesen Dateinamen will ich dann mit OK an die zukünftige Anwendung übergeben. Mein Problem:

Exception EAccessViolation: an Adresse 00469741

Hier der Quelltext:

{
FileListView.Location ::= DirectoryTreeView.Directory

FÜR FileHistoryComboBox.Files
type
PFileInfo = ^TFileInfo;
TFileInfo = record
SR: TSearchRec; Dateiinformation
ImageIndex: Integer; Index in Iconliste

Desc: string; Eine Beschreibung der aktuellen Datei (NICHT Name)
end;
Eigenschaft Items: TStrings auch gültig (ItemIndex)

}
unit QCLXDlg;

interface

uses
SysUtils, Types, Classes, Variants, QTypes, QGraphics, QControls, QForms,
QDialogs, QStdCtrls, QButtons, QComCtrls, QFileCtrls;

type
TQCLXDialog = class(TForm)
FileListView: TFileListView;
FileHistoryComboBox: TFileHistoryComboBox;
//In einer FileHistoryComboBox sollen später die im Verlauf einer Programmsitzung,evtl.
//auch über diese hinaus die ausgewählten Dateien als Liste für spätere schnellere Auswahl
//ohne Verzeichniswechsel gespeichert werden. Leider vermisse ich hier eine Eigenschaft
//Text, wie in der StandardComboBox. Wie kriege ich trotzdem die aktuelle Datei angezeigt?
//Und wie verbinde ich die FileHistoryComboBox mit der FileListView? Es gibt eine
//Eigenschaft Files, deren Handhabung mir aber zu umständlich ist. Funktioniert auch die
//Eigenschaft Items???

FilterComboBox: TFilterComboBox;

btnOk: TBitBtn;
btnCancel: TBitBtn;
btnHelp: TBitBtn;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
DirectoryTreeView: TDirectoryTreeView;
FileEdit: TFileEdit;
procedure FileIconViewDirectoryChange(Sender: TObject;
const NewDir: WideString);
procedure DirectoryTreeViewChange(Sender: TObject; Node: TTreeNode);
procedure FileListViewChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
procedure FormCreate(Sender: TObject);
private
{ Private-Deklarationen }
FDefaultExt: String; //*.ext
FFileName: String; //Der Dateiname
FFilter: String; //FileListView.FileMask
FFilterIndex: Integer;
FInitialDir: String; //FileListView.Directory.Location
FTitle: String; //Caption des Formulars

//Die folgenden setXXX und getXXX Methoden sollen später Eigenschaften setzen und lesen
//so dass ich diesen Dialog genauso verwenden kann, wie TOpen- und TSaveDialog.

procedure setDefaultExt(value: string);
procedure setFileName(value: string);
procedure setFilter(value: string);
procedure setFilterIndex(value: Integer);
procedure setInitialDir(value: string);
procedure setTitle(value: string);
function getDefaultExt: string;
function getFileName: string;
function getFilter: string;
function getFilterIndex: Integer;
function getInitialDir: string;
function getTitle: string;
public
{ Public-Deklarationen }

//Diese Eigenschften habe ich bewußt so benannt, wie die gleichnamigen in den
//Standarddialogen. Die haben auch diesebe Bedeutung

property DefaultExt: string read getDefaultExt write setDefaultExt;
property FileName: string read getFileName write setFileName;
property Filter: string read getFilter write setFilter;
property FilterIndex: Integer read getFilterIndex write setFilterIndex;
property InitialDir: string read getInitialDir write setInitialDir;
property Name; //Name der Komponente
property Title: string read getTitle write setTitle;
end;

var
QCLXDialog: TQCLXDialog;

implementation

{$R *.xfm}

procedure TQCLXDialog.setDefaultExt(value: string);
begin
//wird später implementiert
end;

procedure TQCLXDialog.setFileName(value: string);
begin
//wird später implementiert
end;

procedure TQCLXDialog.setFilter(value: string);
begin
//wird später implementiert
end;

procedure TQCLXDialog.setFilterIndex(value: Integer);
begin
//wird später implementiert
end;

procedure TQCLXDialog.setInitialDir(value: string);
begin
//wird später implementiert
end;

procedure TQCLXDialog.setTitle(value: string);
begin
//wird später implementiert
end;

function TQCLXDialog.getDefaultExt: string;
begin
//wird später implementiert
end;

function TQCLXDialog.getFileName: string;
begin
//wird später implementiert
end;

function TQCLXDialog.getFilter: string;
begin
//wird später implementiert
end;

function TQCLXDialog.getFilterIndex: Integer;
begin
//wird später implementiert
end;

function TQCLXDialog.getInitialDir: string;
begin
//wird später implementiert
end;

function TQCLXDialog.getTitle: string;
begin
//wird später implementiert
end;

//-------------------- die öffentlichen Methoden und Eigenschaften -------------

procedure TQCLXDialog.FileIconViewDirectoryChange(Sender: TObject;
const NewDir: WideString);
begin
Refresh;
end;

procedure TQCLXDialog.DirectoryTreeViewChange(Sender: TObject;
Node: TTreeNode);
begin
// DirectoryTreeView.Directory wird an
// von FileListView.Directory.Location übergeben
// Dann wird in FilListView.FileType -> ftDirectory
// ausgeschaltet. Directory kann dann nur noch mit
// der Directeóryliste ausgewählt werden. Es werden jetzt nur noch die reinen Dateinamen
// angezeigt. Wenn ich ftDirectory nicht ausschalte und in das übergeordnete Verzeichnis
// von FileListView aus wechseln will, funktioniert der Wechsel nicht. Deshalb habe ich
// ftDirectory auch deaktiviert
FileListView.Directory.Location := DirectoryTreeView.Directory;
end;

procedure TQCLXDialog.FileListViewChange(Sender: TObject; Item: TListItem;
Change: TItemChange);
begin
//Das klappt leider noch nicht
//DirectoryTreeView.Directory := FileListView.Directory.Location;

FileEdit.Text := FileListView.Selections[0].SR.Name; //HIER entsteht die Exception
//Obige Anweisung löst Exception aus -> Warum???

//FFileName := FileEdit.Text;
end;

procedure TQCLXDialog.FormCreate(Sender: TObject);
begin
FileListView.Directory.FileMask := FilterComboBox.Mask;
//Dateifilter an Liste übergeben -> funktionirt so
end;

end.

Kann mir jejmand helfen? Wozu hab ich denn schließlich diese Komponenten?

Delphifan2004
  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 15:42 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