Einzelnen Beitrag anzeigen

Benutzerbild von Assun
Assun

Registriert seit: 3. Feb 2005
Ort: Hilzingen am Bodensee
469 Beiträge
 
Delphi 2005 Personal
 
#5

Re: [ListView] hilfe bei speichern der Items etc.

  Alt 29. Dez 2005, 18:52
das is der code...sry wenn er lang is aber warscheinlich brauch man den ganzen code um den fehler zu finden.

Delphi-Quellcode:
unit MultiKey_uMain;

interface

uses
  Inifiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, XPMan, ComCtrls, jpeg, ExtCtrls, Menus, ButtonComps,
  ExtDlgs;

type
  TForm1 = class(TForm)
    ImageButton1: TImageButton;
    ImageButton2: TImageButton;
    ImageButton3: TImageButton;
    Image1: TImage;
    Image2: TImage;
    ImageButton4: TImageButton;
    ImageButton5: TImageButton;
    ImageButton6: TImageButton;
    ImageButton7: TImageButton;
    ImageButton8: TImageButton;
    ListView1: TListView;
    Tasten: TEdit;
    Bezeichnung: TEdit;
    Typ: TComboBox;
    offnen: TEdit;
    ImageButton9: TImageButton;
    OpenDialog1: TOpenDialog;
    procedure ImageButton9Click(Sender: TObject);
    procedure ImageButton6Click(Sender: TObject);
    procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure ImageButton4Click(Sender: TObject);
    procedure ImageButton2Click(Sender: TObject);
    procedure ImageButton1Click(Sender: TObject);
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private

  public
    procedure WMHotKey(var msg: TMessage); message WM_HOTKEY;
  end;

var
  Form1: TForm1;
  Spalte : TListColumn;
  Zeile : TListItem;
implementation

{$R *.dfm}

//HotKeys in Datei speichern
procedure WriteSettings();
var
  i: Integer;
  Section: String;
begin
  with TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini') do
  begin
    for i := 0 to ListView1.Items.Count -1 do
    begin
      Section := Format('Zeile_%d', [i]);
      WriteString(Section, 'Name', ListView1.Items[i].Caption);
      WriteString(Section, 'Aktion', ListView1.Items[i].SubItems[0]);
      WriteString(Section, 'Tasten', ListView1.Items[i].subItems[1]);
    end;
    Free;
  end;

end;

// Auf die HotKeys reagieren
procedure TForm1.WMHotKey(var msg: TMessage);
begin
  Case msg.WParam of
    01: ShowMessage('F1');
    02: ShowMessage('F2');
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
// HotKeys registrieren
RegisterHotKey(Handle,01,0,vk_F1);
RegisterHotKey(Handle,02,0,vk_F2);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
// HotKeys wieder freigeben
UnregisterHotKey(Handle,01);
UnregisterHotKey(Handle,02);
end;


procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
//Form bzw Image verschiebbar machen
ReleaseCapture;
Form1.Perform(WM_SYSCOMMAND, $F012, 0);
end;

procedure TForm1.ImageButton1Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm1.ImageButton2Click(Sender: TObject);
begin
Application.Minimize;
end;


procedure TForm1.ImageButton4Click(Sender: TObject);
begin
if Application.MessageBox('Wenn Sie MultiKey beenden, stehen Ihnen die HotKeys nicht mehr zur Verfügung !' + #13 + 'Sind Sie sicher dass sie das Programm beenden wollen?','Information',MB_ICONQUESTION or MB_YESNO) = ID_YES then Application.Terminate;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Application.MessageBox('Wenn Sie MultiKey beenden, stehen Ihnen die HotKeys nicht mehr zur Verfügung !' + #13 + 'Sind Sie sicher dass sie das Programm beenden wollen?','Information',MB_ICONQUESTION or MB_YESNO) = ID_YES then
 CanClose := True
 else
   CanClose := False;
end;

procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
TListView(Sender).Selected:=TListView(Sender).GetItemAt(5,Y);
end;

procedure TForm1.ImageButton6Click(Sender: TObject);
begin
  ListView1.Columns.Clear; // Spalten löschen
  // Spalte 0 erzeugen
  Spalte := ListView1.Columns.Add;
  Spalte.Caption := 'Name';
  Spalte.Width := 97;
  // Spalte 1 erzeugen
  Spalte := ListView1.Columns.Add;
  Spalte.Caption := 'Aktion';
  Spalte.Width := 170;
  // Spalte 2 erzeugen
  Spalte := ListView1.Columns.Add;
  Spalte.Caption := 'Tasten';
  Spalte.Width := 100;
  // Zeile 1 erzeugen
  Zeile := ListView1.Items.Add; // Neue Zeile
  Zeile.Caption := Bezeichnung.Text; // Spalte 0
  Zeile.SubItems.Add(Typ.Text); // Spalte 1 (Alles ausser Spalte 0 sind SubItems)
  Zeile.SubItems.Add(Tasten.Text);
  Tasten.SetFocus;
end;

procedure TForm1.ImageButton9Click(Sender: TObject);
begin
// Datei / Aktion lokalisieren...
If OpenDialog1.Execute then
begin
offnen.Text := OpenDialog1.FileName;
end
end;

end.
Sebastian Dietrich
http://Assun.de - bald komplett überarbeitet
  Mit Zitat antworten Zitat