Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IntraWeb Links (https://www.delphipraxis.net/76296-intraweb-links.html)

hirnstroem 1. Sep 2006 14:53


IntraWeb Links
 
'loha Folks,

es ist Freitag und ich möchte noch kleine Teilerfolge verzeichnen können vor dem Feierabend.

Ich versuche eigentlich nichts anderes als eine Prozedur zu schreiben, welche ich für jegliche klicks auf Links in einem IntraWeb Projekt verwenden kann.

An und für sich wird bei einem Klick auf einen Link immer der Name der aufzurufenden Seite übergeben (wie im Code anhand des Beispiels Logout zu sehen)

Delphi-Quellcode:
procedure Tfrm_Main.logoutbuttonClick(Sender: TObject);
begin
  LinkClick(Sender, 'Logout');
end;

procedure Tfrm_Main.LinkClick(Sender: TObject; FormName: string);
begin
  if WebApplication.FindComponent('frm_' + FormName) <> nil then
  begin
    TIWAppForm(WebApplication.FindComponent('frm_' + FormName)).Show;
  end
  else
  begin
    // create form with 'Tfrm_' + FormName and show it
  end;
  Release;
end;
Die Zweite Prozedur ist dafür da die Pages dann auch aufzurufen. Als erstes wird da überprüft ob die seite eventuell schon irgendwo ist. Da wo ich den Kommentar gesetzt habe, würde ich dann gerne eine Seite aus dem String 'frm_' und derVariable FormName welche ja beim Linkklick mitgegeben wird erzeugen.

Ich habe schon etliche Varianten ausprobiert, leider funktioniert keine.

Wie geht das?

Grüsse
hirnstroem

Cetus 2. Sep 2006 21:14

Re: IntraWeb Links
 
Du musst einfach als erstes alle Klassen die du so aufrufen willst mittles Classes.RegisterClasses registrieren.
Dann kannst du sie über Classes.GetClass aufrufen.
So müsste es funktionieren (nich getestet^^):

Delphi-Quellcode:
procedure Tfrm_Main.logoutbuttonClick(Sender: TObject);
begin
  LinkClick(Sender, 'Logout');
end;

procedure Tfrm_Main.LinkClick(Sender: TObject; FormName: string);
begin
  if WebApplication.FindComponent('frm_' + FormName) <> nil then
  begin
    TIWAppForm(WebApplication.FindComponent('frm_' + FormName)).Show;
  end
  else
  begin
    // create form with 'Tfrm_' + FormName and show it
   TIWAppFormClass(GetClass('Tfrm_' + FormName)).Create(WebApplication).Show;
  end;
  Release;
end;

initialization
RegisterClasses([Tfrm_Main,Tfrm_Logout]); //Alle Forms/Klassen registrieren, ich hab hier nur 2 verwendet

end.

hirnstroem 4. Sep 2006 10:21

Re: IntraWeb Links
 
Vielen Dank! Funktioniert tadellos.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:32 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