MyMemoryDB (ein elektronischer Zettelkasten)

Vorstellungen von Programmen, welche mit Lazarus erstellt worden.

Re: MyMemoryDB (ein elektronischer Zettelkasten)

Beitragvon Aliobaba » 28. Feb 2019, 17:57 Re: MyMemoryDB (ein elektronischer Zettelkasten)

Hallo,

bei mir sieht es so aus:

Darstellung_unter_Linux.png

zuerst kommt der ganz normale Pfad
UND DANN macht nochmal die Linux-Version sein eigenes Ding und hängt nochmal 5 Zeilen in einem etwas anderen Format dran.

Der Code:
Code: Alles auswählen
procedure TF_Text.FormDropFiles(Sender: TObject;
  const FileNames: array of String);
var
  intI: integer = 0;
  sss : string;
begin
  sss := '';
  for intI := 0 to high(filenames) do
  NMemoText.lines.add(filenames[intI]);
end;                 
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
Aliobaba
 
Beiträge: 369
Registriert: 1. Mai 2012, 08:11

Beitragvon Aliobaba » 28. Feb 2019, 21:59 Re: MyMemoryDB (ein elektronischer Zettelkasten)

Hallo Michael,
Ich glaube, so geht's:

Code: Alles auswählen
 
procedure TF_Text.FormDropFiles(Sender: TObject;
  const FileNames: array of String);
var
  intI: integer = 0;
  sss : string;
  A_MemoText: string; //Eine variable für Memo1.Text
  Select: Integer; //Position des Selektionsbegins
begin
  {$IFDEF WINDOWS}
  sss := '';
  for intI := 0 to high(filenames) do
    sss := sss + (filenames[intI]) + ''#13#10'';
 
  A_MemoText := NMemoText.Text;
 
  Select:=NMemoText.SelStart; //Selektionsbeginn zwischenspeichern
 
  if NMemoText.SelLength>0 then
  begin
    Delete(A_MemoText, Select+1, NMemoText.SelLength); //Selektiertes löschen
  end;
 
  Insert( sss , A_MemoText, Select); //neuen Text einfügen    -->> oder Insert(InsertText, MemoText, Select+1); //neuen Text einfügen
  NMemoText.Text:=A_MemoText; //Text zurück zu Memo1
 
  NMemoText.SelStart:=Select+length( sss ); //Selektionsbeginn hinter neuem Text wiederherstellen
  NMemoText.SelLength:=0; //Selektion auf 0 beschränken
  {$ENDIF}
end;             

Ich werde das Programm auf Heise.de aber erst morgen updaten. Irgendwie seltsam, dass Linux diese obigen Code-Zeilen nicht braucht :?:

Viele Grüße
Alfons
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
Aliobaba
 
Beiträge: 369
Registriert: 1. Mai 2012, 08:11

Beitragvon fliegermichl » 1. Mär 2019, 08:30 Re: MyMemoryDB (ein elektronischer Zettelkasten)

Hallo Alfons,

Nimm statt #13#10 besser die Konstante LineEnding. Die passt je nach verwendetem System immer.
Linux nur #10, Windows #13#10, Mac nur #13

Viele Grüße
Michael
fliegermichl
 
Beiträge: 275
Registriert: 9. Jun 2011, 08:42

Beitragvon Aliobaba » 1. Mär 2019, 08:52 Re: MyMemoryDB (ein elektronischer Zettelkasten)

Guten Morgen Michael,
vielen, vielen Dank für Deine Tips und für Dein Testen von "MyMemoryDB"!
Bezüglich dieses Einfügen von File-Pfaden ist noch ein bisschen was zu tun; aber ich denke das wird :)
Ich sage Bescheid, wenn das Programm dies so macht, wie ich es gerne haben möchte. Heute schaffe ich es wahrscheinlich nicht mehr.

Ein schönes Wochenende!
Alfons
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
Aliobaba
 
Beiträge: 369
Registriert: 1. Mai 2012, 08:11

Beitragvon fliegermichl » 1. Mär 2019, 10:27 Re: MyMemoryDB (ein elektronischer Zettelkasten)

Hallo Alfons,

gerne.
kein Stress. Wir sind hier schliesslich auf der Arbeit und nicht auf der Flucht :-)

Ebenfalls ein schönes Wochenende
Viele Grüße
Michael
fliegermichl
 
Beiträge: 275
Registriert: 9. Jun 2011, 08:42

Beitragvon Aliobaba » 3. Mär 2019, 10:30 Re: MyMemoryDB (ein elektronischer Zettelkasten)

Hallo,

ich denke, das Programm "MyMemoryDB" funktioniert nun recht gut in beiden Welten, Linux und Windows.
Folgender Programmcode:

Code: Alles auswählen
procedure TF_Text.FormDropFiles(Sender: TObject;
  const FileNames: array of String);
var
  intI , A_Sel_Start : integer;         // A_Sel_Start: Integer; //Position des Selektionsbegins
  Pfadtext_Windows , A_MemoText : string;
begin
  intI := 0;
 
  {$IFDEF WINDOWS}
  A_Sel_Start := NMemoText.SelStart; //Selektionsbeginn zwischenspeichern
 
  Pfadtext_Windows := LineEnding       + '->'+ LineEnding;
  for intI := 0 to high(filenames) do  Pfadtext_Windows := Pfadtext_Windows + (filenames[intI]) + LineEnding ;
  Pfadtext_Windows := Pfadtext_Windows + '<-' + LineEnding;
 
  A_MemoText  := NMemoText.Text;
 
  Insert( Pfadtext_Windows , A_MemoText, A_Sel_Start ); //neuen Text einfügen
  NMemoText.Text:=A_MemoText; //Text zurück zu Memo
 
  NMemoText.SelStart:=A_Sel_Start + length( Pfadtext_Windows ); //Selektionsbeginn hinter neuem Text wiederherstellen
  NMemoText.SelLength:=0; //Selektion auf 0 beschränken
  {$ENDIF}
end;                   
 

Es ist schon ein wenig schade, dass in diesem Fall das kompilierte Programm bei identischem Lazarus-Quellcode verschiedene Verhalten aufweist, je nachdem ob man das Programm mit Linux oder mit Windows aufruft.
Optimal wäre es, wenn Lazarus bei der Aktion "DropFiles" die Linuxausgabe ebenfalls "abfangen" und nicht gleich in das Memo schreiben würde, so dass man mit diesem "abgefangenen" Text ähnlich flexibel programmieren könnte wie in der Windows-Welt.

Allseits noch einen schönen Tag und nochmals Vielen Dank an Michael ("fliegermichel")
Alfons
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
Aliobaba
 
Beiträge: 369
Registriert: 1. Mai 2012, 08:11

Beitragvon fliegermichl » 4. Mär 2019, 06:58 Re: MyMemoryDB (ein elektronischer Zettelkasten)

Danke für die schnelle Lösung.

Leider kann ich sie nicht testen. Ich habe die Version von Heise heruntergeladen. Da ist eine MyMemoryDB.exe drin, die sich beschwert, daß die sqlite3.dll zwar da sei aber nicht geladen werden kann (Evtl. 32 <> 64 Bit?). Wenn ich die Version von Deiner Seite herunterlade, dann ist da die Betaversion 225 drin die ich schon hatte.

Viele Grüße
Michael
fliegermichl
 
Beiträge: 275
Registriert: 9. Jun 2011, 08:42

Beitragvon Aliobaba » 4. Mär 2019, 15:05 Re: MyMemoryDB (ein elektronischer Zettelkasten)

Hallo Michael,

... das ist jetzt seltsam.
Eigentlich müsste schon die 64-bit sqlite3.dll mitgeliefert sein.

In Readme-Update.txt steht:
[i]Noch ein extrem weiterer Hinweis, wenn Sie auf die neue Version updaten:
Die neue Windows-Version benötigt für eine korrekte Datenbank-Funktion die richtige DLL für SQLite (sqlite3.dll). Es stellt sich heraus, dass es hier neue Versionen gibt und diese neue Version für die neue MyMemoryDB-Version nötig ist. Linux Programm haben - soweit ich es sehe - diese neue SQLite-Version schon als "Bordmittel" automatisch dabei, Windows nicht. Selbstverständlich liefere ich die neue Version jetzt mit aus, sollten Sie die alte SQLite-Version besitzen, dann tauschen Sie diese bitte aus! Sie erkennen die neue Version am einfachsten daran, dass die Dateigröße nun ca. 1,9 MB beträgt, während die alte Version nur 580,7kB groß war.

[/i]

Die Dateigröße ist > 1 MB, so dass eigentlich die 64-Bit Version dabei liegt. Und mit meinem Windows auf VirtualBox funktioniert die Version "MyMemoryDB_Beta302.exe" problemlos ???
Auf "meiner" Seite habe ich noch nicht die neueste Version "MyMemoryDB_Beta302.exe" drauf.

Viele Grüße
Alfons
"MyMemoryDB" ( https://www.heise.de/download/product/mymemorydb-89626 )
Aliobaba
 
Beiträge: 369
Registriert: 1. Mai 2012, 08:11

Beitragvon fliegermichl » 6. Mär 2019, 08:14 Re: MyMemoryDB (ein elektronischer Zettelkasten)

sorry mein Fehler, ich hab natürlich die Readme-Update.txt ignoriert.
funktioniert jezt einwandfrei.

Danke!
fliegermichl
 
Beiträge: 275
Registriert: 9. Jun 2011, 08:42

• Themenende •
Vorherige

Zurück zu Programme



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried