AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei öffnen

Ein Thema von Headi · begonnen am 5. Dez 2005 · letzter Beitrag vom 5. Dez 2005
Antwort Antwort
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#1

Datei öffnen

  Alt 5. Dez 2005, 16:30
Hallo leute,

Folgendes, Ich habe ein kleines Programm bei dem man per Klick
mit einem SaveDialog den inhalt von zwei Edit Feldern speichern kann.
Mit einem Klick auf einen OpenDialog kann man diese Datei dann wieder öffnen,
und die Daten werden wieder ins Edit Feld eingetragen.
Das funktioniert auch gut, nur wie mache ich das, wenn der Benutzer die gespeicherte
Datei in mein Programm zieht, über "öffnen mit" öffnet, oder doppelklick?
Bei "öffnen mit" wird mein Programm zwar geöffnet, aber es geschieht nichts.

Hier mein code:
Sry wenn das hier schon öfters gefragt wurde, aber ich konnte bisher noch nichts finden was mir geholfen hat.


Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
var
    Ini: TIniFile;
begin
if SaveDialog1.Execute then begin
 Ini:=TIniFile.Create(SaveDialog1.FileName);
 Ini.WriteString('edtxt','name',edit1.Text);
 Ini.WriteString('edtxt','nick',edit2.Text);
 Ini.Free;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var Ini: TIniFile;
begin
if OpenDialog1.Execute then begin
  Ini:=TIniFile.Create(OpenDialog1.FileName);
  Edit1.Text:=Ini.ReadString('edtxt','name','');
  Edit2.Text:=Ini.ReadString('edtxt','nick','');
  Ini.Free;
  end;
end;

end.
Ich hoffe ihr könnt mir helfen

mfg headi
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#2

Re: Datei öffnen

  Alt 5. Dez 2005, 16:36
Beim Doppelklick wird der Dateiname der geklickten Datei als Parameter an deine exe übergeben.
Versuchs mal so:

On Create (oder OnShow )

Delphi-Quellcode:
var
  Ini: TIniFile;
begin
  ini := TIniFile.Create(ParamStr(0));
  Edit1.Text:=Ini.ReadString('edtxt','name','');
  Edit2.Text:=Ini.ReadString('edtxt','nick','');
  Ini.Free;
end;
Edit: Delphi Tags vergessen
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Datei öffnen

  Alt 5. Dez 2005, 17:12
Das geht aber nur wenn im Dateinamen keine Leerzeichen angegeben werden.

Um den kompletten Parameter zu erhalten, musst du das so machen:
Delphi-Quellcode:
var
  i:integer;
  filename:string;
begin
  filename:='';
  i:=1;
  while paramstr(i)<>'do
  begin
    filename:=filename+paramstr(i)+' ';
    i:=i+1;
  end;
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Datei öffnen

  Alt 5. Dez 2005, 17:14
Ich habe mir mal ne Procedure geschrieben. Du musst noch oben bei uses "ShellApi" eintragen!

Delphi-Quellcode:
procedure TMainForm.ExecuteProgramm(const PFileName: string);
var
  SEInfo: TShellExecuteInfo;
  ExitCode: DWORD;
  ExecuteFile, ParamString, StartInString: string;
begin
  ExecuteFile:=PFileName;
  FillChar(SEInfo, SizeOf(SEInfo), 0);
  SEInfo.cbSize := SizeOf(TShellExecuteInfo);
  with SEInfo do begin
    fMask := SEE_MASK_NOCLOSEPROCESS;
    Wnd := Application.Handle;
    lpFile := PChar(ExecuteFile);
    nShow := SW_SHOWNORMAL;
  end;
  if ShellExecuteEx(@SEInfo) then begin
    repeat
      Application.ProcessMessages;
      GetExitCodeProcess(SEInfo.hProcess, ExitCode);
    until (ExitCode <> STILL_ACTIVE) or
      Application.Terminated;
  end
  else begin
  Application.MessageBox('Fehler beim Starten des Programms',
  'Programm Starten',
  mb_OK+mb_IconError);
  end;
end;
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Datei öffnen

  Alt 5. Dez 2005, 17:29
@Rastaman:

erst einmal danke, aber leider funktioniert das
weder bei "on create" noch bei "on show"!

Ich hab auch nochmals alles überprüft und es sollte so stimmen.
Aber irgendwie gehts halt einfach nicht

So hab jetzt alles wirklich nochmals durchgecheckt,
der Fehler bei deinem Code ist ganz einfach,
Es heisst:

ParamStr(1) und nicht

ParamStr(0) vielen dank!!

@Ichbins:

vielen dank, ich denke mal das ist genau das was ich gesucht habe!!

@robinWie:

auch dir vielen dank!
Aber wo kommt da mein code dann hin?
Also was passieren soll damit?
Schau da bei deinem code irgendwie nicht so durch...


mfg headi

EDIT:
@ichbins:

Ich habe den code von Rastaman nochmals auf herz und nieren getested, und muss sagen,
der geht sowohl auch mit leerzeichen im dateinamen

Interessant wäre nur mal zu wissen wies geht wenn man die datei auf die Form zieht,
also während der laufzeit...
Pascal
  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 07:37 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