Übersetzung des Lazarus-Wiki

Für Dinge rund um die Unterstützung des offizielen Lazarusprojekts, wie Übersetzungsabsprachen und anderem.

Beitragvon schnullerbacke » 17. Jan 2007, 08:35

Na "fascht",

die ist nur local zu Forms vorhanden. Dafür gibt es aber:

WndProc(var Message...)

nun müssen wir gucken ob wir da ansetzen können. Die existiert hoffentlich nicht nur a la Delphi in den visuellen Objekten, Dann wär's wieder "Arschlecken".

EDIT #1

Es findet sich in Forms:

TApplication.WndProc(var Message: LMessage);

weiterhin implementiert TObject:

Dispatch(var message)
DispatchStr...

Zum ansetzen findet sich in LMessages LM_User, das dürfte der kleinste Wert für eigene Messages sein. Da empfiehlt sich wohl ne eigene Unit MyAppMessages wo man dann in der Form:

Code: Alles auswählen
interface
 
uses
  LMessages, Forms;
 
const
 
LM_MyFirstMsg = LM_User;
LM_MySecondMsg = LM_User + 1;
 
var
  MyApp: TApplication;
 
implementation
 
initialization
  MyApp:= Application;


usf. deklarieren zu können. Dort sollte man vielleicht auch die Variable MyApp deklarieren, wie gezeigt. Da man diese Unit überall dort laden muß wo man eigene Messages deklariert, hat man dann auch den Zugrif auf MyApp.WndProc ohne deswegen gleich überall Forms laden zu müssen.

In TObject ist Dispatch vereinbart, Dispatch verteilt normalerweise die Messages an die entsprechende Prozedur wenn denn eine da ist. Das muß dann auch bei jeder Ableitung von TObject oder später gehen.

Nun müssen wir halt mal sehen, wie man die Message-Procs deklarieren muß. Bei Delphi mußten die public sein wenn ich mich nicht irre. Da findet man aber verschiedene Aussagen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)
schnullerbacke
 
Beiträge: 1189
Registriert: 13. Dez 2006, 10:58
Wohnort: Hamburg
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z) | 
CPU-Target: AMD A4-6400 APU
Nach oben

Beitragvon mschnell » 17. Jan 2007, 14:03

Es gibt in FPC eine Unit "simpleipc" mit inc-Dateien in "WIN32" und "UNIX". die das Senden an die Queue (in Windows mit Windows.SendMessage und in Unix mit einem TFilestream, der anscheinend irgendwie auf eine Pipe umgelenkt ist). Hier wird zusätzlich ein Stream von Daten übertragen.
-Michael
mschnell
 
Beiträge: 3361
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon schnullerbacke » 17. Jan 2007, 14:29

@mschnell

Laß uns mal den Ansatz wie zuvor beschrieben benutzen. Einfach ein Objekt von TObject ableiten und da einbauen:

Code: Alles auswählen
public
  procedure LMRecMyMessage(var Message: TMessage) message LM_RecMyMessage;


dann einfach nen Timer auf ne Form und im Intervall MyApp.WndProc(MyMsg); auslösen. Dann machste noch eine RecallProzedur in das Objekt die ein Ausgabe-Feld auf dem Form ausgibt. In dem Empfängerobjekt zählst du einfach nen Counter hoch.

Kommt die Message an und die Ausgabe funzt, dann ist das überall verfügbar, also auch in einem Thread.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)
schnullerbacke
 
Beiträge: 1189
Registriert: 13. Dez 2006, 10:58
Wohnort: Hamburg
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z) | 
CPU-Target: AMD A4-6400 APU
Nach oben

Beitragvon Christian » 17. Jan 2007, 15:07

was soll denn schon wieder der quatsch mit nem timer der mehrere tick quellen ausgibt das ist in delphi villeicht von vorteil aber nicht in fpc.
warum willst du immer wieder durch den arsch eine hirnoperation tätigen.
ttimer ist die systemnaheste implementation die du bekommen kannst die ist auch von Plattform zu Plattform verschieden eben optimiert auf die Plattform.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
 
Beiträge: 6102
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon mschnell » 17. Jan 2007, 16:10

Ich habe noch ein wenig 'rumgeschnüffelt.

Sowohl Delphi als auch FPC(Windows) schicken bei TThread.Synchronize eine Windows-Message an den Mainthread, die diesen weckt. Der Mainthread guckt dann in einer selbst gebauten Queue nach, was zu tun ist.

Ich habe ein Testprogrämmchen gemacht und mit Delphi getestet, das die Spezifikationen einer parameterlosen Klassen-Prozedur (Pointer auf den Einsprung und self-Pointer) direkt in eine Windows-Message packt und diese an den Mainthread schickt. Das geht von einem Thread aus, aber natürlich auch an jeder anderen Stelle im Programm. So kann man ohne selbst eine Queue zu bauen reguläre Mainthread-Events erzeugen und so behandeln, wie "onclikc"s behandelt werden (also am Ende eines anderen Events oder bei "Application.ProcessMessages".

Jetzt müsste man das noch auf FP portieren und für Linux usw. bauen.

-Michael
mschnell
 
Beiträge: 3361
Registriert: 11. Sep 2006, 09:24
Wohnort: Krefeld
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ) | 
CPU-Target: X32 / X64 / ARMv5
Nach oben

Beitragvon schnullerbacke » 17. Jan 2007, 17:09

@Christian

Nicht du das mit der Operationsmethode jetzt im Selbstversuch etwa probierst hast. Der Timer sollte nur dazu dienen regelmäßig den gleichen Event zum Testen auszulösen.

Läuft der Zähler dann sofort alles prima, ansonsten geht man debuggen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)
schnullerbacke
 
Beiträge: 1189
Registriert: 13. Dez 2006, 10:58
Wohnort: Hamburg
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z) | 
CPU-Target: AMD A4-6400 APU
Nach oben

Beitragvon Christian » 17. Jan 2007, 17:22

Nicht du das mit der Operationsmethode jetzt im Selbstversuch etwa probierst hast.

*Lach* *Hust*
naja ok,
dacht halt nur das es wieder um das "timerproblem" geht hat sich so sehr danach angehört.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
 
Beiträge: 6102
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon pluto » 21. Jan 2007, 11:35

ich habe noch einen link gefunden denn ich gerne lesen würde aber leider ist komplet in englisch:
http://wiki.lazarus.freepascal.org/Size_Matters
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7003
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon Euklid » 21. Jan 2007, 14:57

pluto hat geschrieben:ich habe noch einen link gefunden denn ich gerne lesen würde aber leider ist komplet in englisch:
http://wiki.lazarus.freepascal.org/Size_Matters


Es müssen tatsächlich noch viele Seiten übersetzt werden. Vielleicht kannst du schonmal deutsche Versionen der Artikel, für die es noch keine deutschen Versionen gibt, anlegen und die zugehörigen Templates erstellen?

Gruß, Euklid
Euklid
 
Beiträge: 2760
Registriert: 22. Sep 2006, 09:38
Wohnort: Hessen

Beitragvon Christian » 21. Jan 2007, 15:46

gute idee wir können ja dann beim voreischauen immer mal n stück übersetzen
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
 
Beiträge: 6102
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon pluto » 21. Jan 2007, 16:29

Code: Alles auswählen
n. Vielleicht kannst du schonmal deutsche Versionen der Artikel, für die es noch keine deutschen Versionen gibt, anlegen und die zugehörigen Templates erstellen?

meinst du damit ich soll eine liste mit den seiten erstellen dir mir auffallen und nicht deutsch sind ?
was meisnt du mit "Templates erstellen" ?

evlt. soltlen diese listen soger einen extra treahd bekommen damit jeder der was tuen möchte nicht erst stunden lang selbst suchen muss !
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7003
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon Euklid » 21. Jan 2007, 17:03

Wie dir bestimmt schon aufgefallen ist, haben einige Artikel im wiki oben eine Leiste, in der die Sprachen gelistet sind. Wenn ich das richtig verstanden habe, nennt man die Dinger Templates.

Die Übersetzung eines Artikels geschieht in der Regel wie folgt:

Nehmen wir mal an die "http://wiki.lazarus.freepascal.org/test" ist zu übersetzen. Dann muss man wie folgt vorgehen:

1. Eine Seite "http://wiki.lazarus.freepascal.org/test/de" wird angelegt. Zunächst ist das eine Kopie des englischen Originals.

2. Das zur Originalseite gehörende Template wird um die deutsche Sprache erweitert.

3. Die Seite wird übersetzt.

Ich hab selbst erst bestehende Templates erweitert. Unter "Edit" ganz unten ist ein Link dahin (guck z.B. mal hier ganz unten: http://wiki.lazarus.freepascal.org/inde ... ction=edit ) . Kam noch nicht dazu, diese Sprach-Templates völlig neu zu erstellen;

Für die Schritte 1 und 2 braucht man im Prinzip keine Englischkenntnisse. ;)
Euklid
 
Beiträge: 2760
Registriert: 22. Sep 2006, 09:38
Wohnort: Hessen

Beitragvon pluto » 21. Jan 2007, 17:26

ich habe gerade gesehen das ich mich da anmelden muss !
Es die anmeldung kostenlos ? (nehme ich mal an)

Wenn ich mich da angemeldet habe kann ich das natürlich machen kein problem
ich sammel alle seiten die noch nicht in deutsch sind(immer zwischen durch)
und erstele dazu ein "Templates" damit "ihr" dann nur noch die seite übersetztnen müsst !
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7003
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon pluto » 21. Jan 2007, 17:27

was heißt auf der anmelde seite: "Remember me" ?
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
Lazarusforum e. V.
 
Beiträge: 7003
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

Beitragvon knight » 21. Jan 2007, 17:34

Templates sind eine Gestaltungsmöglichkeit bei MediaWiki. Im Lazarus Wiki werden sie vor allem dafür verwendet, um auf Übersetzungen der gerade angezeigten Seite hinzuweisen. Dies könnte man grundsätzlich auch ohne Templates machen. Aber spätestens wenn mehrere Übersetzungen vorhanden sind lohnen sich die Templates. Wenn eine englische Seite neu erstellt wird, dann enthält sie idR. kein Template, da es noch keine Übersetzung gibt.
An dieser Stelle möchte ich noch folgendes ansprechen: Wenn eine deutsche Seite ( /de ) neu angelegt wird, dann sollte man noch kurz prüfen, ob andere deutsche Seiten auf die neue Seite verlinken oder noch auf die englische Seite und ggf. die Links anpassen.

knight
knight
 
Beiträge: 809
Registriert: 13. Sep 2006, 21:30

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

Zurück zu Unterstützung Lazarusproject



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

porpoises-institution
accuracy-worried