Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Eigener Dateimanager, Bei Klick oder Tastenbewegung Datei auswählen, wie? (https://www.delphipraxis.net/200215-eigener-dateimanager-bei-klick-oder-tastenbewegung-datei-auswaehlen-wie.html)

DualCoreCpu 29. Mär 2019 21:05

Delphi-Version: 2006

Eigener Dateimanager, Bei Klick oder Tastenbewegung Datei auswählen, wie?
 
Hallo,

Ich habe folgenden Code:

Delphi-Quellcode:
unit UGamedlg;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, FileCtrl;

type
  TForm1 = class(TForm)
    DirectoryListBox: TDirectoryListBox;
    DriveComboBox: TDriveComboBox;
    FileListBox: TFileListBox;
    FilterComboBox: TFilterComboBox;
    Label1: TLabel;
    lblFiletypes: TLabel;
    lblDescription: TLabel;
    mDescription: TMemo;
    btnOk: TBitBtn;
    btnCancel: TBitBtn;
    btnHelp: TBitBtn;
    lblFilename: TLabel;
    procedure FileListBoxKeyPress(Sender: TObject; var Key: Char);
    procedure btnOkClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btnOkClick(Sender: TObject);
var
  Filename: String;
  Filepart: String;
  Fileextn: String;
  ExtSepPos: Integer;
begin
  Fileextn := '.txt';
  Filename := FileListBox.FileName;
  FilePart := Filename;
  ExtSepPos := POS('.',FileName);
  if ExtSepPos>0 then System.Delete(Filepart,ExtSepPos,3);

  {if Key = #13 then}
    if ExtractFileExt(FileName) = '.rtf' then
    begin

      mDescription.Clear;
      Filename := ChangeFileExt(Filename,'.txt');
      mDescription.Lines.LoadFromFile(Filename);

    end;
end;

procedure TForm1.FileListBoxKeyPress(Sender: TObject; var Key: Char);
begin
  BtnOkClick(Sender); //funktioniert leider nicht wie gewünscht
end;

end.
Ich will auf Mausklick und Tastenbewegung mit den Cursortasten derart reagieren, dass bei Auswahl einer xxx.rtf Datei eine gleichnamige xxx.txt Datei in ein Memo geladen wird, die eine Beschreibung der .rtf Datei liefert.

Worin besteht der Sinn dafür?

Wenn ich eine PC Spielsammlung habe, will ich die .exe Datei davon anklicken und in der in das Memo geladenen .txt Datei soll eine Beschreibung des Spiels erscheinen.

Wenn ich mit obigem Code den Ok Butto klicke erhalte ich die Beschreibung, bei Bewegung der Cursortasten nicht. Mausklick habe ich noch nicht codiert.

Was muss ich anders machen?

DieDolly 29. Mär 2019 21:10

AW: Eigener Dateimanager, Bei Klick oder Tastenbewegung Datei auswählen, wie?
 
Nur ins Blaue geraten. Versuch mal KeyUp statt KeyPress.

HolgerX 29. Mär 2019 23:24

AW: Eigener Dateimanager, Bei Klick oder Tastenbewegung Datei auswählen, wie?
 
Hmm..

Wieso brauchst Du den MouseClick oder Keyevents?

Es geht doch darum, das wenn eine Datei in der FileListBox selektiert wird, egal ob mit CLick oder Key, zu dieser ausgewählten Datei eventuell etwas zusätzliches angezeigt wird..

Somit genügt doch eigentlich das OnChange Event der FileListBox.

Nach dem Schema

Delphi-Quellcode:
procedure TForm1.FileListBox1Change(Sender: TObject);
begin
  if UpperCase(ExtractFileExt(FileListBox1.FileName)) = '.EXE' then begin
    ShowMessage('Dies ist eine EXE und ich hole jetzt die Textdatei...');
  end;
end;

DualCoreCpu 30. Mär 2019 10:58

AW: Eigener Dateimanager, Bei Klick oder Tastenbewegung Datei auswählen, wie?
 
Danke Euch beiden, Sowohl das Change Ereignis als auch das KeyUp Ereignis funktionieren.

Ich mach das aber nun mit dem Change Ereignis.


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