hallo,
ich bins wieder und wieder brauche ich eure hilfe.
ich möchte, dass beim start meiner applikation sofort eine funktion ausgeführt wird. habe schon mit formcreate, initialize u.ä. rumexperimentiert, aber bislang passiert entweder garnix oder das programm stürzt ab.
hier weiß doch sicher jemand wie das geht.
danke und grüße, ac
funktion automatisch starten
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
Wenn du sagst worums überhaupt geht und die notwendigen angaben machst kann man dir sicher auch helfen.
Regulär kannst du es in Formcreate machen. Oder in der lpr oder in der initialization einer unit oder so. Aber es kommt natürlich drauf an was du in dieser Funktion machst wie gesagt ...
Regulär kannst du es in Formcreate machen. Oder in der lpr oder in der initialization einer unit oder so. Aber es kommt natürlich drauf an was du in dieser Funktion machst wie gesagt ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
ich schriebe gerade an einem programm dass mit datenbanken arbeitet, genauer tabellen kopiert.(mit hilfe von zeos) das programm soll starten und dann vollkommen selbstständig, ohne dass der benutzer einen knopf drück bestimmte tabellen kopieren. deshalb will ich dirket beim starten die einzelnen prozeduren aufrufen.
ich post einfach mal den code (ist zwar noch recht fehlerhaft und noch nicht vollständig aber vll könnt ihr ja etwas damit anfangen:
das was button1click macht, soll alles dirket bei programmstart gemacht werden. jemand eine idee?
ich post einfach mal den code (ist zwar noch recht fehlerhaft und noch nicht vollständig aber vll könnt ihr ja etwas damit anfangen:
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs,
ZConnection, ZDataset, DB, DBCtrls, Buttons;
type
TCopyDataBase = class(TForm)
Button1: TButton;
DBMemo1: TDBMemo;
ZConnection1: TZConnection;
ZQuery1: TZQuery;
Datasource1: TDatasource;
ZConnection2: TZConnection;
ZQuery2: TZQuery;
Datasource2: TDatasource;
ColumnList : TStringList;
procedure Button1Click(Sender: TObject);
procedure SetConnection;
procedure GetColumns;
procedure CopyTable;
end;
var
CopyDataBase: TCopyDataBase;
implementation
procedure TCopyDataBase.Button1Click(Sender: TObject);
begin
SetConnection;
GetColumns;
CopyTable;
end;
procedure TCopyDataBase.SetConnection;
begin
ZConnection1.Hostname := '192.168.139';
ZConnection1.Port := 3306;
ZConnection1.Database := 'testdb1';
ZConnection1.Protocol := 'mssql';
ZConnection1.User := 'muh';
ZConnection1.Password := 'muh';
ZConnection1.Connected := True;
ZQuery1.Connection := ZConnection1;
Datasource1.DataSet := ZQuery1;
ZConnection2.Hostname := '192.168.139';
ZConnection2.Port := 3306;
ZConnection2.Database := 'testdb2';
ZConnection2.Protocol := 'mysql-5';
ZConnection2.User := 'bla';
ZConnection2.Password := 'bla';
ZConnection2.Connected := True;
ZQuery2.Connection := ZConnection2;
Datasource2.DataSet := ZQuery2;
end;
procedure TCopyDataBase.GetColumns;
begin
ColumnList := TStringList.Create;
ColumnList.add('id');
ColumnList.add('newsdate');
ColumnList.add('newsheading1');
ColumnList.add('newsheading2');
ColumnList.add('newstext');
ColumnList.add('newsimage');
ColumnList.add('newslink');
ColumnList.add('newslinkname');
ColumnList.add('newslinkexternal');
ColumnList.add('regionid');
ColumnList.add('visible');
ColumnList.add('visibleonindex');
end;
procedure TCopyDataBase.CopyTable;
var
ZeileAsInt : integer;
ZeileAsString: string;
ColumnListPos :integer;
Tabelle : string;
begin
Tabelle := 'ContentNews';
ZeileAsInt := 0;
while(ZeileAsInt <= ColumnList.Count) do
begin
inc(ZeileAsInt);
Str(ZeileAsInt, ZeileAsString);
ColumnListPos := 0;
while (ColumnListPos < ColumnList.Count) do
begin
ZQuery1.SQL.clear;
ZQuery1.SQL.add('SELECT '+ColumnList.ValueFromIndex[ColumnListPos]+' FROM '+Tabelle+' WHERE ID='+ZeileAsString+';');
zQuery1.Active := True;
inc(ColumnListPos);
end;
end;
end;
initialization
{$I unit1.lrs}
end.
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
also entschuldige, aer das sollte eigentlich schon gehen
.
Einfach die Form markieren, im OI bei den Ereignissen das FormCreate auswählen und auf den kleinen Knopf mit '...' daneben klicken (Doppelklick ins Feld sollte auch gehen) und die Befehle in den entsprechenden, autoomatisch erstellten Funktionsrumpf einfügen. Und schon werden die Befehle bei Programstart, genau bei der erstellung des Formulars, ausgeführt.

Einfach die Form markieren, im OI bei den Ereignissen das FormCreate auswählen und auf den kleinen Knopf mit '...' daneben klicken (Doppelklick ins Feld sollte auch gehen) und die Befehle in den entsprechenden, autoomatisch erstellten Funktionsrumpf einfügen. Und schon werden die Befehle bei Programstart, genau bei der erstellung des Formulars, ausgeführt.
ich habe das nun nochmal ausprobiert:
ich habe in die drei prozeduren zur kontrolle ein paar showmessage() reingeschrieben. die werden auch angezeigt, allerdings die form an sich nicht.
kann es sein, dass ich bei FormCreate noch weitere angaben machen muss ?
Code: Alles auswählen
procedure TCopyDataBase.FormCreate(Sender: TObject);
begin
SetConnection;
GetColumns;
CopyTable;
end;
kann es sein, dass ich bei FormCreate noch weitere angaben machen muss ?
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
FormCreate wird wie der mane schon sagt ausgeführt wenn die Form erstellt wird demzufolge kann sie zu diesem Zeitpunkt nicht angezeigt werden.
Nachdem deine 3 proceduren ausgeführt wurden wird auch die form angezeigt. Ansonsten kannst du onShow nehmen das wird ausgeführt sobald die form sichtbar gemacht wurde allerdings auch jedesmal wenn sie sichtbar wird.
Nachdem deine 3 proceduren ausgeführt wurden wird auch die form angezeigt. Ansonsten kannst du onShow nehmen das wird ausgeführt sobald die form sichtbar gemacht wurde allerdings auch jedesmal wenn sie sichtbar wird.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/