AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Altes Delphi/Pascal im neuen BDS....

Offene Frage von "ThYpHoOn"
Ein Thema von ThYpHoOn · begonnen am 14. Jan 2008 · letzter Beitrag vom 11. Dez 2008
Antwort Antwort
ThYpHoOn

Registriert seit: 9. Jan 2008
52 Beiträge
 
Delphi 5 Enterprise
 
#1

Altes Delphi/Pascal im neuen BDS....

  Alt 14. Jan 2008, 22:32
Moin,

ich bin noch eher am Anfang der Materie Delphi und hab nun auch mal wieder eine Frage die ich los werden möchte.
Es geht um die NSD-Editore. Ich hab mir einen kostenlosen besorgt ( http://diuf.unifr.ch/softeng/student.../kalt/NSD.html ), dort liegt auch praktischer weise ein Source-Code bei. Diesen wollte ich dann mal in meinem BDS (2006) öffnen. Allerdings hat mir dies ein paar Probleme beschafft. Mir ist schon bewusst das dieses NSD-Editor Programm 1997 von einem netten Studenten entwickelt wurde und mein BDS vom Jahre 2006 ist, macht insgesamt 9 Jahre unterschied. Das sich dort einiges verändert ist nur logisch. Allerdings wollte ich jetzt fragen wie ich diesen alten Code mit teilweise alten Komponenten so anpassen kann, das es auch unter dem BDS 2006 lauffähig sein wird.

Konkret sind es erstmal die folgenden Punkte:

(Wohl etwas mit der Drucker-Ansteuerung)
"SetWindowExt"
"SetViewportExt"
"SetViewPortOrg"

(Wohl etwas mit der Windows System Info)
"WF_80x87"
"WF_CPU486"
"WF_CPU386"
"WF_CPU286"
"GetFreeSystemResources"

Bin natürlich immer dankbar für jegliche Art von Hilfe
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#2

Re: Altes Delphi/Pascal im neuen BDS....

  Alt 14. Jan 2008, 23:02
Grundsätzlich kannst du mit D2006 auch TP6 Code problemlos kompilieren. Weshalb er bei dir meckert... tja, hab meine Kristallkugel in der Firma gelasen. Poste doch mal die Codeausschnitte, welche er an meckert...
  Mit Zitat antworten Zitat
ThYpHoOn

Registriert seit: 9. Jan 2008
52 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: Altes Delphi/Pascal im neuen BDS....

  Alt 14. Jan 2008, 23:20
Delphi-Quellcode:
uses
  SysUtils, WinTypes, WinProcs, Buttons, Classes, Controls, Clipbrd, Dialogs, ExtCtrls,
  Forms, Menus, StdCtrls, Printers, IniFiles, Graphics,
  NSDchild, NSDgraph, NSDtypes, NSDutil, NSDpage, NSDabout;
{.....}
procedure TNSDEditor.PrintChild(Sender: TObject);
var
  x, y: Integer;
  r, s: Real;
begin
{.....}
    Screen.Cursor := crHourGlass;
    with TNSDiagram(ActiveMDIChild) do begin
      Printer.BeginDoc;
      { set mapping mode, necessary to change Window/Viewport extent !! }
      SetMapMode(Printer.Canvas.Handle, MM_ISOTROPIC); { set mapping mode }
      x := round(Printer.PageWidth / NSDlist.zoomFactor * 100);
      y := round(Printer.PageHeight / NSDlist.zoomFactor * 100);
      { set window(log.) : viewport(phys.) extent to Page size/Zoom : Page size}
      SetWindowExt(Printer.Canvas.Handle, x, y);
      SetViewportExt(Printer.Canvas.Handle, Printer.PageWidth, Printer.PageHeight);
      r := GetDeviceCaps(Printer.Handle, LOGPIXELSX) / 245 * NSDlist.leftMargin;
      s := GetDeviceCaps(Printer.Handle, LOGPIXELSY) / 245 * NSDlist.topMargin;
      { set viewport origin to (leftMargin, topMargin) in pixel }
      SetViewPortOrg(Printer.Canvas.Handle, round(r), round(s));
      Printer.Canvas.Font := NSDImage.Canvas.Font;
      NSDlist.Print(Printer);
      SetMapMode(Printer.Canvas.Handle, MM_TEXT); { reset mapping mode to Default }
      Printer.EndDoc;
Das wäre jetzt der Code-Ausschnitt für die SetWindowExt, etc.

Und hier der Code-Ausschnitt wo er System-Infos haben möchte:
Delphi-Quellcode:
uses
  SysUtils, WinTypes, WinProcs, Buttons, Classes, Controls, ExtCtrls, Forms, StdCtrls,
  Graphics;
{.....}
constructor TAboutBox.Execute(full: Boolean);
var
  AboutBox: TAboutBox;
  WVersion, DVersion: Word;
  WinFlags, start_time: LongInt;
begin
  AboutBox := TAboutBox.Create(Application);
  try
    with AboutBox do begin
      { Load application icon }
      {ProgramIcon.Picture.Graphic := Application.Icon;}
      {ProgramIcon.Picture.LoadFromFile('G:\delphi\1-nsd\NSD.BMP');}

      { Set dialog strings }
      Caption := 'About ' + Application.Title;
      ProductName.Caption := 'NSD Editor - ReMake';
      Version.Caption := 'Version 1.01 - ReMake by ThYpHoOn';
      Copyright.Caption := 'Copyright 1996 - Marcel Kalt' + #13#10 +
                           'UNI Fribourg, Switzerland';
      Comments.Caption := 'Project in computer science (third year),' + #13#10 +
                          'under the direction of Prof. J. Pasquier,'+ #13#10 +
                          'written by Marcel Kalt';

      if full then begin
        { Get Win/Dos version numbers }
        WVersion := LoWord(GetVersion);
        DVersion := HiWord(GetVersion);
        WinVersion.Caption := IntToStr(LO(WVersion)) + '.' + IntToStr(HI(WVersion));
        DosVersion.Caption := IntToStr(HI(DVersion)) + '.' + IntToStr(LO(DVersion));

        WinFlags := GetSystemInfo;

        { Get math coprocessor status }
        if WinFlags and WF_80x87 > 0 then
          Coprocessor.Caption := 'Present'
        else
          Coprocessor.Caption := 'Not Present';

        { Get CPU type }
        if WinFlags and WF_CPU486 > 0 then
          CPU.Caption := '486';
        if WinFlags and WF_CPU386 > 0 then
          CPU.Caption := '386';
        if WinFlags and WF_CPU286 > 0 then
          CPU.Caption := '286';

        { Get free memory, resources, disk space }
        FreeMemory.Caption := IntToStr(GetFreeSpace(0) div 1000) + ' KB';
        FreeResources.Caption := IntToStr(GetFreeSystemResources(GFSR_SYSTEMRESOURCES))
                       + ' / ' + IntToStr(GetFreeSystemResources(GFSR_GDIRESOURCES))
                       + ' / ' + IntToStr(GetFreeSystemResources(GFSR_USERRESOURCES)) + ' %';
        FreeDisk.Caption := IntToStr(DiskFree(3) div 1000000) + ' MB';

        ShowModal;
      end
{....}
Beide sind in einer jeweiligen Unit.

Den kompletten Source-Code kann man sich übrigens auf http://diuf.unifr.ch/softeng/student...t/ftp-nsd.html besorgen, falls man die komplette Übersicht haben möchte.

Ich werde jetzt erstmal die betroffenen Passagen ausbauen und einfach erstmal weg lassen, soweit ich das richtig einschätze sind es sowieso nur die Print-Steuerung und die SystemInfos die da fehlen würden. Was mich nicht sonderlich stört.


Greetz ThY
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#4

Re: Altes Delphi/Pascal im neuen BDS....

  Alt 14. Jan 2008, 23:27
Welche Fehler tauchen denn auf?
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Altes Delphi/Pascal im neuen BDS....

  Alt 7. Feb 2008, 11:48
Wie weit ist denn das Projekt fortgeschritten?

Das Ding von 1996 ist ja recht nett, aber nicht mehr zeitgemäss.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Rain

Registriert seit: 25. Aug 2005
4 Beiträge
 
#6

Re: Altes Delphi/Pascal im neuen BDS....

  Alt 9. Dez 2008, 00:43
Zitat:
"SetWindowExt"
"SetViewportExt"
"SetViewPortOrg"
Dafür gibt es in neueren Versionen die Funktionen "SetWindowExtEx", "SetViewportExtEx" und "SetViewPortOrgEx". Die benötigen noch einen vierten Parameter, den kann man auf NIL setzen.
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Altes Delphi/Pascal im neuen BDS....

  Alt 9. Dez 2008, 01:10
Zitat von RavenIV:
Wie weit ist denn das Projekt fortgeschritten?

Das Ding von 1996 ist ja recht nett, aber nicht mehr zeitgemäss.

Um die Frage an den TE mal wieder aufzufrischen: Wie weit ist er denn?
  Mit Zitat antworten Zitat
ThYpHoOn

Registriert seit: 9. Jan 2008
52 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Altes Delphi/Pascal im neuen BDS....

  Alt 11. Dez 2008, 16:49
Das freut mich doch sehr, das es so einen Anklang gefunden hat. Tatsächlich ist das Vorhaben etwas in den Hinterkopf gegangen.
Da ich damals als ich den Theard erstellt habe, in der Berufsschule Delphi gelernt habe und nun an der FH Wedel bin um dort Technischer Informatiker (Schwerpunkt auf Medieninformatik) zu werden, habe ich nun Pascal als Programmiersprache.

Somit ist es durchaus noch interessant und werde mich in den ersten Monaten 2009 konkret damit auseinander setzen und den NSD-Editor "zeitgemäß" anpassen.


Gz ThY
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:11 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