AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Memo.Lines.IndexOf() auf ein anderes Memo übertragen
Thema durchsuchen
Ansicht
Themen-Optionen

Memo.Lines.IndexOf() auf ein anderes Memo übertragen

Ein Thema von juergen · begonnen am 2. Sep 2008 · letzter Beitrag vom 3. Sep 2008
 
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Memo.Lines.IndexOf() auf ein anderes Memo übertragen

  Alt 3. Sep 2008, 06:36
Moin Jürgen,

wenn du nicht exquisite Gründe für den Einsatz der beiden Memos vorweisen kannst, dann möchte ich dir eine Lösung auf der Basis einer ListBox vorschlagen:

Delphi-Quellcode:
type
  TDemoForm = class(TForm)
    ListBox: TListBox;
    AddButton: TButton;
    OpenDialog: TOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure AddButtonClick(Sender: TObject);
    procedure ListBoxDblClick(Sender: TObject);
  private
    Pathes: TStrings;
  end;

var
  DemoForm: TDemoForm;

implementation

{$R *.dfm}

uses
  ShellApi;

function AddObject(strings: TStrings; const s: string; obj: Pointer = nil): Integer;
begin
  Result := strings.IndexOf(s);
  if Result < 0 then
  begin
    strings.BeginUpdate;
    Result := strings.AddObject(s, obj);
    strings.EndUpdate;
  end;
end;

procedure TDemoForm.FormCreate(Sender: TObject);
begin
  Pathes := TStringList.Create;
end;

procedure TDemoForm.FormDestroy(Sender: TObject);
begin
  Pathes.Free;
end;

procedure TDemoForm.AddButtonClick(Sender: TObject);
var
  fName, fPath: TFileName;
begin
  with OpenDialog do
    if Execute then
    begin
      fPath := ExtractFilePath(FileName);
      fName := ExtractFileName(FileName);
      ListBox.ItemIndex := AddObject(ListBox.Items, fName, Pointer(AddObject(Pathes, fPath)));
    end;
end;

procedure TDemoForm.ListBoxDblClick(Sender: TObject);
var
  h: THandle;
  fn: TFileName;
begin
  with ListBox do
    if ItemIndex >= 0 then
    begin
      fn := pathes[Integer(Items.Objects[ItemIndex])] + Items[ItemIndex];
      h := ShellExecute(Handle, 'open', PChar(fn), nil, nil, SW_SHOWNORMAL);
      if h <= 32 then
        ShowMessage(SysErrorMessage(h));
    end;
end;
Der Code lässt sich auch auf Memo umstricken. Übersetzen lässt sich das, Testen musst aber du.

Freundliche Grüße
  Mit Zitat antworten Zitat
 


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 23:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz