AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Probleme beim erstellen eines Listitems
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme beim erstellen eines Listitems

Offene Frage von "thomasdrewermann"
Ein Thema von thomasdrewermann · begonnen am 17. Jan 2007 · letzter Beitrag vom 17. Jan 2007
Antwort Antwort
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#1

Probleme beim erstellen eines Listitems

  Alt 17. Jan 2007, 21:05
Hallo,
ich bin gerade dabei zu verzweifeln. Ich habe Google schon leergegoogelt und bin immer noch nicht schlauer. Ich habe mit dem Nachfolgenden Code die Möglichkeit geschaffen, auf das Droppen eines Files auf ein bestimmtes Panel zu reagieren.
Nach dem Droppen des Files soll das Programm einen Eintrag in einen Listview machen, der sich auf dem selben Formular befindet wie das Panel, auf das ich das File fallen lasse.
Es existiert ein 2. Formular, auf dem sich ein ICON-Chooser und 2 Edit felder befinden. Dort ist allerdings nichts weiter programmiert. Beide Formulare werde beim Start erzeugt. Beim klick auf das Panel funktioniert das Anlegen eines Items. Wird die selbe Funktion wie oben beschrieben durch das Droppen ausgelöst kommt eine Schutzverletzung. Habe nun schon die Prozedur in den Public-Abschnitt geschoben, weil ich dachte, dass es daran liegt. Ohne Wirkung.

Weiss jemand worans liegt?

Gruß
THomas

Delphi-Quellcode:
unit Applet1Form;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls, ExtCtrls, Buttons, shellapi, checklst,IconDialog,
  ChangeIcDialog, IconCtls, controlpanel;

type
  TPanel = class(ExtCtrls.TPanel)
  private
    procedure FWM_DropFiles(var Msg: TMessage); message WM_DROPFILES;
  end;

type
  TfmApplet1 = class(TForm)
    btnOK: TButton;
    btnCancel: TButton;
    btnApply: TButton;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    prgpfad: TMemo;
    prgname: TMemo;
    Label2: TLabel;
    Label3: TLabel;
    prgicon: TPaintBox;
    CheckListBox1: TCheckListBox;
    ListView2: TListView;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Label4: TLabel;
    ListBox1: TListBox;
    Image2: TImage;
    ComboBox1: TComboBox;
    Label5: TLabel;
    Label6: TLabel;
    Edit1: TEdit;
    ListView1: TListView;
    procedure FormCreate(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure Panel1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
     item:TListItem;
    procedure addicon(name,pfad,param:string; icon:integer);
  end;

var
  fmApplet1: TfmApplet1;

implementation

uses Unit1;

{$R *.DFM}

procedure TfmApplet1.addicon(name,pfad,param:string; icon:integer);
  
begin
item:=self.listview1.items.add;
item.Caption:=name;
item.SubItems.Add(pfad);
item.subitems.add(param);
item.SubItems.add(inttostr(icon));
end;

procedure TPanel.FWM_DropFiles(var Msg: TMessage);
var i, anzahl, size: integer;
    Dateiname: String;
begin
  inherited;
  Dateiname := '';
  anzahl := DragQueryFile(Msg.WParam, $FFFFFFFF, nil, 0);
  for i := 0 to (anzahl - 1) do
  begin
    size := DragQueryFile(Msg.WParam, i , nil, 0) + 1;
    SetLength(Dateiname, size);
    SetLength(Dateiname, DragQueryFile(Msg.WParam,i , @Dateiname[1], size));
    //hier dein source - in "Dateiname" ist der name des droped objectes
    if (ExtractFileExt(dateiname)='.exe') or (ExtractFileExt(dateiname)='.com') then
      begin

        form1.dfsIconComboBox1.FileName:=dateiname;
        form1.dfsIconComboBox1.enabled:=true;
        if form1.showmodal=mrok then
          begin
           fmApplet1.addicon(form1.edit1.text,dateiname,form1.edit2.text,form1.dfsiconcombobox1.itemindex);
          end;
      end;
  end;
  DragFinish(Msg.WParam);
end;

procedure TfmApplet1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(panel1.handle, True);
panel1.Hint:='Hierhin muss die Anwendung gezogen werden, die eingerichtet'+chr(13)+'werden soll. Eine Verknüpfung funktioniert NICHT!';
end;

procedure TfmApplet1.BitBtn1Click(Sender: TObject);
begin
  if listview1.SelCount>0 then
    begin
      Messagebox(self.handle,pchar('Sind sie sicher, dass Sie das Programm '+listview1.selected.caption+' löschen wollen?'),'Frage',32);
      listview1.Selected.Delete;
    end else
    begin
      Messagebox(self.handle,'Es ist kein Programm gewählt!','Fehler',16);
    end;
end;




procedure TfmApplet1.Panel1Click(Sender: TObject);
begin
addicon('TEST','TEST','test',2);
end;

end.
Sport ist mord...
  Mit Zitat antworten Zitat
Benutzerbild von thomasdrewermann
thomasdrewermann

Registriert seit: 8. Jun 2002
Ort: Herne
575 Beiträge
 
Delphi 3 Professional
 
#2

Re: Probleme beim erstellen eines Listitems

  Alt 17. Jan 2007, 21:39
Hi,
mit der ändernung des aufrufs auf
self.click(); und dem Befehl im OnClick-Ereignis des Panels funktioniert es.

Aber wie übergebe ich nun die Parameter?
Sport ist mord...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Probleme beim erstellen eines Listitems

  Alt 17. Jan 2007, 21:41
Welche Parameter
Markus Kinzler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Probleme beim erstellen eines Listitems

  Alt 17. Jan 2007, 21:42
Moin Thomas,

also bei mir funktioniert das auch so.
Setz' doch mal auf die markanten Stellen einen Breakpoint, um festzustellen, wodurch die AV ausgelöst wird.
Irgendetwas scheint da nicht zu existieren.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 06:18 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