Lazarus zweite unabhängige Instanz?

Für Installationen unter Windows

Lazarus zweite unabhängige Instanz?

Beitragvon br_klaus » 7. Feb 2015, 20:35 Lazarus zweite unabhängige Instanz?

Hallo,
ist es wohl möglich, mehrere Versionen von Lazrus-FPC gleichzeitig laufen zu lassen, die aber auch unterschiedliche Projektdateien haben können sollten (also in Windows zB in {users\<Name>\appdata\local\temp\lazarus1} bzw {...lazarus2})?
Wo (in welcher Unit, welcher Prozedur) wird denn dieses Verzeichnis im Programm geladen bzw erstellt? Vielleicht könnte man da ja noch eine Option einbauen für einen individuellen Namen, der dann in einer Optionen-Datei im {Lazaurus}-Verzeichnis gespeichert wird.
Bin inzwischen schon bei Lazarus 1.5 - FPC 3.1.1, heruntergeladen aus der Dropbox von Martok
(http://www.entwickler-ecke.de/topic_Laz ... 183,0.html bzw.
https://www.dropbox.com/sh/dx4p4869s5wq ... 1O39Mfob1a)

Herzlichen Dank!
br_klaus
 
Beiträge: 244
Registriert: 21. Jan 2010, 23:33
Wohnort: z.z. Brasilien, sonst 82335 Berg-Leoni (südlich von München)
OS, Lazarus, FPC: Windows Vista (L 0.9.31 FPC 2.5.1) | 
CPU-Target: 32Bit
Nach oben

Beitragvon theo » 7. Feb 2015, 20:40 Re: Lazarus zweite unabhängige Instanz?

Meinst du --primary-config-path ?

http://wiki.freepascal.org/Multiple_Lazarus
theo
 
Beiträge: 8173
Registriert: 11. Sep 2006, 19:01

Beitragvon Lion » 7. Feb 2015, 20:46 Re: Lazarus zweite unabhängige Instanz?

1.5? Es wird ja noch am 1.3 gearbeitet, oder irre ich mich da? Und wann ist endlich die 1.4 raus?
Lion
 
Beiträge: 177
Registriert: 24. Mär 2014, 10:58

Beitragvon theo » 7. Feb 2015, 20:54 Re: Lazarus zweite unabhängige Instanz?

Lion hat geschrieben:1.5? Es wird ja noch am 1.3 gearbeitet, oder irre ich mich da? Und wann ist endlich die 1.4 raus?

Nein, 1.3 ist jetzt 1.5 und die 1.4 ist im Anmarsch (RC1).
theo
 
Beiträge: 8173
Registriert: 11. Sep 2006, 19:01

Beitragvon Lion » 7. Feb 2015, 20:56 Re: Lazarus zweite unabhängige Instanz?

theo hat geschrieben:
Lion hat geschrieben:1.5? Es wird ja noch am 1.3 gearbeitet, oder irre ich mich da? Und wann ist endlich die 1.4 raus?

Nein, 1.3 ist jetzt 1.5 und die 1.4 ist im Anmarsch (RC1).


Kann man 1.5 nicht offiziell irgendwie runterladen?
Lion
 
Beiträge: 177
Registriert: 24. Mär 2014, 10:58

Beitragvon br_klaus » 7. Feb 2015, 20:58 Re: Lazarus zweite unabhängige Instanz?

Lion hat geschrieben:1.5? Es wird ja noch am 1.3 gearbeitet, oder irre ich mich da? Und wann ist endlich die 1.4 raus?


Jedenfalls kann man sie unter ftp://freepascal.dfmk.hu/pub/lazarus/snapshots/ schon herunterladen (die letzten beiden Zeilen).
br_klaus
 
Beiträge: 244
Registriert: 21. Jan 2010, 23:33
Wohnort: z.z. Brasilien, sonst 82335 Berg-Leoni (südlich von München)
OS, Lazarus, FPC: Windows Vista (L 0.9.31 FPC 2.5.1) | 
CPU-Target: 32Bit
Nach oben

Beitragvon br_klaus » 7. Feb 2015, 21:00 Re: Lazarus zweite unabhängige Instanz?

theo hat geschrieben:Meinst du --primary-config-path ?

http://wiki.freepascal.org/Multiple_Lazarus


Das, aber noch mehr. -pcp ist ja nur das Startverzeichnis für Lazarus. Aber die Programdateien mit environments.xml (oder so ähnlich) werden (zumindest in Windows) immer in einem Temp-Verzeichnis abgespeichert (eben unter C:\Users\...\lazarus. Diesen Verzeichnisnamen "lazarus" sollte man auch ändern können. Da sehe ich aber keine Möglichkeit dazu, oder irre ich mich?
br_klaus
 
Beiträge: 244
Registriert: 21. Jan 2010, 23:33
Wohnort: z.z. Brasilien, sonst 82335 Berg-Leoni (südlich von München)
OS, Lazarus, FPC: Windows Vista (L 0.9.31 FPC 2.5.1) | 
CPU-Target: 32Bit
Nach oben

Beitragvon theo » 7. Feb 2015, 21:05 Re: Lazarus zweite unabhängige Instanz?

br_klaus hat geschrieben:
theo hat geschrieben:Meinst du --primary-config-path ?

http://wiki.freepascal.org/Multiple_Lazarus

Da sehe ich aber keine Möglichkeit dazu, oder irre ich mich?

Ja, da irrst du. Wie der Name schon sagt, ist das der --primary-config-path.
theo
 
Beiträge: 8173
Registriert: 11. Sep 2006, 19:01

Beitragvon Michl » 7. Feb 2015, 23:41 Re: Lazarus zweite unabhängige Instanz?

br_klaus hat geschrieben:Aber die Programdateien mit environments.xml (oder so ähnlich) werden (zumindest in Windows) immer in einem Temp-Verzeichnis abgespeichert (eben unter C:\Users\...\lazarus. Diesen Verzeichnisnamen "lazarus" sollte man auch ändern können.
theo hatte es zwar eigentlich schon geklärt, doch auch unter Windows ist das kein Problem. Ich habe zur Zeit 3 parallele Lazarusversionen auf ein und dem selben Rechner (ein Laz. 1.2.6, ein "stabiles" Laz. 1.5 unter dem ich entwickle und ein Laz. 1.5, was ich zum testen von Patches nutze und gelegentlich wieder säubere und neu aufsetze). Alle nutzen unterschiedliche Configs, sonst hätte ich echt Probleme, wenn ich mir mal das "Wegwerf"-Lazarus zerschieße, dass ich dann mit meinem Projekt nicht weitermachen könnte.

Ich hatte dir auch schon mal gezeigt, dass es eigentlich recht einfach ist, parallele (Trunc-) Installationen zu erstellen: http://www.lazarusforum.de/viewtopic.php?p=68169#p68169
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2320
Registriert: 19. Jun 2012, 12:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon af0815 » 8. Feb 2015, 12:11 Re: Lazarus zweite unabhängige Instanz?

Für weitere Installationen kann man auch 'fpcup' verwenden. Siehe Free Pascal Wiki zu fpcup

Voraussetzung ist die Installation von ein paar Tools wie z.B. svn. Das Programm installiert dir den aktuelle trunc von fpc und Lazarus und hält den auch aktuell, wenn man will.

Zum ändern des Startverhalten unter Winwows kann man sich auf dem Desktop einen Link machen, dann die Eigenschaften des Links aufrufen und unter Verknüpfung bei Ziel folgende Änderung machen: Ziel: C:\development\lazarus\startlazarus.exe --pcp=C:\development\config_lazarus
Damit wird die Konfiguration in das Developmentverzeichnis umgebogen und ist von allen anderen Konfigurationen unabhängig.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
af0815
 
Beiträge: 3740
Registriert: 7. Jan 2007, 11:20
Wohnort: Niederösterreich
OS, Lazarus, FPC: FPC 3.2 Lazarus 2.0 per fpcupdeluxe | 
CPU-Target: 32Bit (64Bit)
Nach oben

Beitragvon br_klaus » 10. Feb 2015, 15:09 Re: Lazarus zweite unabhängige Instanz?

Habe es jetzt versucht, mit startlazarus –pcp=C:\LazConfig\1.5-3.1.1, aber da tat sich zuerst einmal gar nichts neues, das Verzeichnis blieb leer (sollte ich da schon vorher einige Dateien hineinkopieren?), auch die Angabe des Verzeichnisses der Speicherung der einzelnen Sitzungen (user\<name>\appdata\pocal\lazarus) blieb unverändert, das mußte ich erst von Hand ändern zu C:\LazConfig\1.5-3.1.1. Jetzt werden da die Sitzungen gespeichert.
Ich mußte dann noch die Datei fpc.cfg von der alten Version in das neue Lazaurs-Verzeichnis C:\LAZ 1.5\lazarus... hinüberkopieren (natürlich entsprechend angepaßt).
Beim Starten hieß es dann: Package PrettyMessages nicht gefunden, habe diesen Eintrag gelöschtt.
Schließlich konnte ich eine einfache Anwendung (nur eine Form) starten.

Wie ich dann aber ein neues Package installieren wollte, gab es ein paar Probleme.
Es hieß da: Ein oder mehrere benötigte Packages wurden nicht gefunden. Siehe Package-Graphik für Details.
Aber diese Graphik ist (bei etwa 100 Packages) total unübersichtlich, auch auf der linken Seite konnte ich kein Package erkennen, das da fehlen sollte, fast alle waren ockergelb mit einem kleinen grünen Kreuz drinnen und da hieß es: Zustand: installieren beim nächsten Start. (Aber beim Neustart wurde nichts installiert...)
Schließlich, nach mehreren fruchtlosen Versuchen, sah ich bei einem der ockergelben Symbole ein kleines rotes Kreuz drinnen und ohne Reaktion beim Draufklicken, das mußte wohl das fehlende Package sein (wäre es nicht sinnvoller, auch ein Infofenster zeigen zu lassen mit der Angabe, welche Packages genau noch fehlen, und auch anstelle des kleinen roten Kreuzes, das auf dem Ockergelb kaum zu sehen ist, das ganze Symbol in Rot zu halten oder gleich ein großes rotes Andreaskreuz?).
Es fehlte das Package PowerPDF (das hatte schon bei der früheren Version gefehlt). Ich kopierte mir das von der CodeTyphon-Version (pl_PowerPDF). Dann konnte ich mit dem Neukompilieren beginnen.

Da gab es aber noch ein paar Probleme. Alle im Zusammenhang mit dem Umwandeln von einem Set of const in ein anderes bzw in einen Integerwert.

Package LCLBase1.5, unit grids:
Code: Alles auswählen
 procedure CfgSetFontValue(cfg: TXMLConfig; AKey: WideString; AFont: TFont);
begin
  cfg.SetValue(AKey + '/name/value', AFont.Name);
  cfg.SetValue(AKey + '/size/value', AFont.Size);
  cfg.SetValue(AKey + '/color/value', ColorToString(AFont.Color));
  cfg.SetValue(AKey + '/style/value', Integer(AFont.Style));
end;
 
procedure CfgGetFontValue(cfg: TXMLConfig; AKey: WideString; AFont: TFont);
begin
  AFont.Name := cfg.GetValue(AKey + '/name/value', 'default');
  AFont.Size := cfg.GetValue(AKey + '/size/value', 0);
  AFont.Color:= StringToColor(cfg.GetValue(AKey + '/color/value', 'clWindowText'));
  AFont.Style:= TFontStyles(cfg.GetValue(AKey + '/style/value', 0));
end;
 

Der Compiler monierte jeweils zur 4. Zeile, daß er keine Möglichkeit der Konversion zwischen TFontStyles und Integer gäbe.
Ich habe mir dann geholfen mit einer integer Hilfsvariablen n, im zweiten Fall noch einer Variablen fs:TFontStyles:

Code: Alles auswählen
 procedure CfgSetFontValue(cfg: TXMLConfig; AKey: WideString; AFont: TFont);
    var n:integer;
begin
  cfg.SetValue(AKey + '/name/value', AFont.Name);
  cfg.SetValue(AKey + '/size/value', AFont.Size);
  cfg.SetValue(AKey + '/color/value', ColorToString(AFont.Color));
//  cfg.SetValue(AKey + '/style/value', Integer(AFont.Style));
  move(AFont.Style, n, sizeof(integer));
  cfg.SetValue(AKey + '/style/value', n);
end;
 
procedure CfgGetFontValue(cfg: TXMLConfig; AKey: WideString; AFont: TFont);
     var n:integer; fs:TFontStyles;
begin
  AFont.Name := cfg.GetValue(AKey + '/name/value', 'default');
  AFont.Size := cfg.GetValue(AKey + '/size/value', 0);
  AFont.Color:= StringToColor(cfg.GetValue(AKey + '/color/value', 'clWindowText'));
//  AFont.Style:= TFontStyles(cfg.GetValue(AKey + '/style/value', 0));
  n:= cfg.GetValue(AKey + '/style/value', 0);
  move(n, fs, sizeof(integer));  AFont.Style:=fs;
end;
 


Dasselbe Problem in Datei win32callback.inc
Code: Alles auswählen
 procedure TWindowProcHelper.UpdateDrawListItem(aMsg: UInt);
begin
  ……
    with DrawListItemStruct do
    begin
      ….
      ItemState := TOwnerDrawState(PDrawItemStruct(LParam)^.itemState);
     …
    end;
end;
 


TOwnerDrawState ist definiert als set of TownerDrawStateType mit 14 Konstanten, die also in ein UINT passen.
So ließe sich das umformen in:
Code: Alles auswählen
 
      move (PDrawItemStruct(LParam)^.itemState, n, sizeof(UINT));
      move(n, ItemState, sizeof(UINT));
 

Wäre das nicht einfacher mit: itemstate:= PDrawItemStruct(LParam)^.itemState; ?


In der unit lr_e_pdf: (Package PowerPfd?)
Code: Alles auswählen
  SquaredCorners := TPdfCorners(Data.Corners);
 


SquaredCorners ist definiert als TpdfCorners = set of (pcTopLeft,…), und Corners = set of(ctToplLeft,…), jeweils 4 Konstanten.
Habe Variablen eingefügt:
const n = sizeof (TCornerSet); var p: array[0..n-1] of byte; pc:TPdfCorners;
und dann umformen in
Code: Alles auswählen
         move(Data.Corners, pc, n);  SquaredCorners := pc;  

Vielleicht ginge es auch mit zwei Zeigervariablen p,q:
Code: Alles auswählen
 P:=@Data.Corners; q:=@SquaredCorners; move(p^,q^, sizeof(Data.Corners))



Jetzt gelang es mir endlich, die Packages zu installieren, aber als dann die IDE erstellt werden sollte, brach die Kompilation ab:
Code: Alles auswählen
Exit Code 1, Fehler 1 / Error: Illegal parameter  –w.

Wo sollte dieser „illegal parameter –w“ denn gebraucht werden?
Bei den Angaben im Kompilationsfester („Lazarus kompilieren“ einstellen heißt es bei den Einstellungen: -gw -gl -godwarfsets -gh -gt -Co -Cr -Ci –Sa. Aber auch wenn ich da das –gw weglasse, bekomme ich denselben Fehler.

Wie kann ich nun dieses Problem lösen? Oder ist das ein Bug in dem neuen Lazarus?
br_klaus
 
Beiträge: 244
Registriert: 21. Jan 2010, 23:33
Wohnort: z.z. Brasilien, sonst 82335 Berg-Leoni (südlich von München)
OS, Lazarus, FPC: Windows Vista (L 0.9.31 FPC 2.5.1) | 
CPU-Target: 32Bit
Nach oben

Beitragvon theo » 10. Feb 2015, 16:01 Re: Lazarus zweite unabhängige Instanz?

br_klaus hat geschrieben:Habe es jetzt versucht, mit startlazarus –pcp=C:\LazConfig\1.5-3.1.1, aber da tat sich zuerst einmal gar nichts neues,


Habe jetzt nur den ersten Satz gelesen, aber manchmal steckt der Teufel im Detail.
Hast du das genau so versucht?
Da fehlt nämlich ein "-".
Es müsste
Code: Alles auswählen
startlazarus –-pcp= 

heissen.
theo
 
Beiträge: 8173
Registriert: 11. Sep 2006, 19:01

Beitragvon br_klaus » 10. Feb 2015, 18:01 Re: Lazarus zweite unabhängige Instanz?

theo hat geschrieben:
br_klaus hat geschrieben:Habe es jetzt versucht, mit startlazarus –pcp=C:\LazConfig\1.5-3.1.1, aber da tat sich zuerst einmal gar nichts neues,


Habe jetzt nur den ersten Satz gelesen, aber manchmal steckt der Teufel im Detail.
Hast du das genau so versucht?
Da fehlt nämlich ein "-".
Es müsste
Code: Alles auswählen
startlazarus –-pcp= 

heissen.


Herzlichen Dank.
Habe es noch einmal probiert, mit einem neuen pcp-Verzeichnis und mit --pcp=.
Verzeichnis wurde erstellt. Mußte aber erst noch das Verzeichnis für gdb.exe eingeben, alles andere war schon richtig.
Und das Sitzungsverzeichnis war auch wieder Users\<Name>\appdata\local\temp\lazarus, mußte ich erst von Hand ändern.
Kompilierung klappte auch, und begann gleich ein neues Projekt.

Aber dann, beim Installieren eines neuen Packages und der damit verbundenen Neukompilierung erhielt ich wieder eine Error-Meldung, dieses Mal mit wenigstens ein paar mehr Angaben:

Code: Alles auswählen
 
Kompiliere Package DebuggerIntf 0.1: Erfolg
Kompiliere Package SynEdit 1.0: Erfolg, Warnungen: 3, Hinweise: 4
syntextdrawer.pp(961,31) Warning: Symbol "CanUTF8" is deprecated
syneditfoldedview.pp(352,24) Hint: Value parameter "aFoldProvider" is assigned but never used
syngutterlineoverview.pp(545,38) Hint: Converting the operands to "Int64" before doing the subtract could prevent overflow errors.
lazsynimm.pas(229,31) Warning: Symbol "Handle" is deprecated
lazsynimm.pas(646,24) Hint: Mixing signed expressions and longwords gives a 64bit result
lazsynimm.pas(652,28) Hint: Mixing signed expressions and longwords gives a 64bit result
lazsynimm.pas(682,19) Warning: Comparison might be always true due to range of constant and expression
Kompiliere Package LazDebuggerGdbmi 0.1: Erfolg
Kompiliere Package SynEditDsgn 1.0: Erfolg
IDE erstellen: Exit code 2, Fehler: 4
Panic: C:\LAZ 1.5\Lazarus\fpc\3.1.1\bin\i386-win32\make.exe: Entering directory `C:/LAZ 1.5/Lazarus'
Panic: C:\LAZ 1.5\Lazarus\fpc\3.1.1\bin\i386-win32\make.exe: Leaving directory `C:/LAZ 1.5/Lazarus'
Panic: makefile:29: *** You need the GNU utils package to use this Makefile.  Stop.
Panic: tool stopped with exit code 2. Use context menu to get more information.
 


Anscheinend liegt es am fpmake oder so ähnlich. Das sind auch die einzigen Dateien mit einem Parameter -w (wie bei der vorigen Kompilation als illegal parameter angegeben).
Weißt du da eine Lösung?
br_klaus
 
Beiträge: 244
Registriert: 21. Jan 2010, 23:33
Wohnort: z.z. Brasilien, sonst 82335 Berg-Leoni (südlich von München)
OS, Lazarus, FPC: Windows Vista (L 0.9.31 FPC 2.5.1) | 
CPU-Target: 32Bit
Nach oben

Beitragvon theo » 10. Feb 2015, 18:13 Re: Lazarus zweite unabhängige Instanz?

Keine Ahnung.
Gibt es denn C:\LAZ 1.5\Lazarus\fpc\3.1.1\bin\i386-win32\make.exe ?

Hat vltl. nichts damit zu tun, aber mir persönlich wird fast schlecht, wenn ich Pfadnamen mit Leerzeichen oder sonstigem Krimskrams sehe (C:\LAZ 1.5\).
Muss man den Teufel denn immer herausfordern? :wink:
theo
 
Beiträge: 8173
Registriert: 11. Sep 2006, 19:01

Beitragvon wp_xyz » 10. Feb 2015, 18:20 Re: Lazarus zweite unabhängige Instanz?

br_klaus hat geschrieben:*** You need the GNU utils package to use this Makefile.

Hast du Delphi? Wenn ja, dann zeigt die PATH Anweisung zum Make-Utility von Delphi.
wp_xyz
 
Beiträge: 2945
Registriert: 8. Apr 2011, 09:01

» Weitere Beiträge siehe nächste Seite »
Nächste

Zurück zu Windows



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried