Uložení do tabulky a zpětné vytažení – Delphi – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Uložení do tabulky a zpětné vytažení – Delphi – Fórum – Programujte.comUložení do tabulky a zpětné vytažení – Delphi – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
dyžon0
Stálý člen
31. 5. 2012   #1
-
0
-

Zdravím všechny profíky...

Jsem zatim lama a v zacatku uceni,ale chtel bych si udelat takovej projekt na evidenci znamek a prosim o pomoc.

Mozna vytvorit tuto prosbu bude trvat dele, nez jeji reseni,ale co uz.

Toto je muj jednoduchy projekt:

1. nevim, jak vyvolat proces otevreni cesty k souboru, tusim ze pres komponentu "OpenPictureDialog" , ale co mam napsat do procedury vlastnosti "OnClick" tlacitka "Vybrat"  ???  ...  proste uplna lama

2. chtel bych vsechny texty z editů (cesta k obrazku,data1, ..... a pod.) vlozit pres tlacitko "Uložit" do prislusnych poli v tabulce. Zrejme musim definovat promenne pro kazdy "Edit" ,ale opet nevim,jak zapsat proceduru vlastnosti "OnClick" tlacitka "Uložit"

3. jak udelat, aby kdyz dvakrat kliknu na radek v tabulce se mi zpet vypsaly ty informace nahoru do editů. To proto, ze planuju pozdeji vytvorit formular,ktery bych tiskl. Tech informaci, ktere se budou vkladat bude ve finale mnohem vic, tohle je jen zjednoduseny priklad.

Je mi jasny,ze zrejme namitnete, kdyz nic neumis, tak se do toho ne...r, ale jsem samouk ve vetsine veci co delam, treba programovani stranek a podobne a tam uz mam vysledky. Ucim se rychle  a hlavne nejlip z uz hotovych prikladu, ktery se snazim pochopit a zjistit co jak funguje proc a k cemu. Literaturu ctu samozrejme taky.

Pro jistotu jeste uvedu zdrojak:

=======================================================================================

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DB, DBTables, Grids, DBGrids, StdCtrls, jpeg;

type
  TForm1 = class(TForm)
    BtUlozit: TButton;
    EData1: TEdit;
    EData3: TEdit;
    EData2: TEdit;
    LData1: TLabel;
    LData2: TLabel;
    LData3: TLabel;
    ECestaKObrazku: TEdit;
    LCesta: TLabel;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    TTabulka: TTable;
    IObrazek: TImage;
    BtVybrat: TButton;
    procedure BtVybratClick(Sender: TObject);
    procedure BtUlozitClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BtVybratClick(Sender: TObject);
begin

end;

procedure TForm1.BtUlozitClick(Sender: TObject);
begin

end;

end.

===================================================================================== 

pokud by se nasel nekdo, komu by nevadilo tyto procedury vepsat primo do zdrojaku,(opet bych se neco naucil z jiz hotove veci,kterou bych potom prevadel na skutecnou slozitejsi aplikaci), tak zabalim a nekam uploudnu celej projekt,ale jsem realista a budu moc rad za kazdou radu.

predem diky, mejte se, ...

OMLOUVÁM SE ZA TU DIAKRITIKU ...., už se mi to nechce přepisovat.

Nahlásit jako SPAM
IP: 89.102.38.–
hege6
~ Anonymní uživatel
2 příspěvky
31. 5. 2012   #2
-
0
-

#1 dyžon
0. na podobé problémy doporučuji knihu Delphi v příkladech od Tomáše Holana. Je velmi stručná a názorná.

1. pod OnClick při otvírání napsat

               OpenPictureDialog1.execute;

               Image1.picture.loadfromfile(OpenPictureDialog1.filename)

2. stringgrid1.cells[sloupec,radek]:=editX.text

Nahlásit jako SPAM
IP: 78.128.196.–
dyžon0
Stálý člen
1. 6. 2012   #3
-
0
-

#2 hege6

0.  Tu knizku uz mam, musim rict, ze je to knizka, ktera mi zatim nejvic pomohla, ale tohle jsem tam bohuzel nenasel.

1. Pod Tvoje dva radky jsem se snazil jeste vypsat::   ECestaKObrazku.Text :=
                                                                                      (OpenPictureDialog1.FileName.AsString)
                      ale je to spatne. Z ceho nactu cestu toho obrazku do Editu "ECestaKObrazku" ??? abych ji mohl potom ulozit spolu s ostatnima Editama do tabulky .

2. takze podle Tebe je pouziti DBGrid spatne a mel bych pouzit Stringgrid ?? 
    Stringgrid ale nema zadnou vlastnost jako je "Columns" ..  kde teda upravovat jeho vlastnosti ??
    nema dokonce ani "DataSource"

Jsem z toho tak trochu zmatenej, Myslis, ze bych Te precejen mohl poprosit, ze bych Ti poslal soubory z projektu a Ty by jsi mi to dopsal ??  pokud ne, tak se rozhodne zlobit nebudu a budu se v tom dal brodit ..  ,kdybych to ovsem videl hotove, urcite bych to pochopil driv ...

Nahlásit jako SPAM
IP: 89.102.38.–
dyžon0
Stálý člen
1. 6. 2012   #4
-
0
-

Tak problem 3. uz jsem vyresil, pouzil jsem komponenty DBEdit a DBText ...
ted jeste potrebuju poradit s tim, jak zapsat ty udaje z Editu do Tabulky DBGird ...

Nahlásit jako SPAM
IP: 89.102.38.–
Honzc0
Stálý člen
4. 6. 2012   #5
-
-1
-
Mimo téma

#4 dyžon
1. Třeba takto s použitím StringGridu.

procedure TForm1.BtVybratClick(Sender: TObject);
var cesta: String;
begin
  if OpenPictureDialog1.Execute then
  begin
    cesta := ExtractFilePath(OpenPictureDialog1.FileName);
    Edit1.Text := cesta;
    StringGrid1.Cells[4,1] := cesta;
    Image1.Picture.LoadFromFile(OpenPictureDialog1.filename);
  end;
end;

Šířky řádků můžeš nadefinovat takto:

procedure TForm1.FormCreate(Sender: TObject);
begin
  StringGrid1.ColWidths[0] := 10;
  StringGrid1.ColWidths[4] := 140;
end;

Nahlásit jako SPAM
IP: 93.181.78.–
Řešení
dyžon0
Stálý člen
8. 6. 2012   #6
-
0
-
Vyřešeno Nejlepší odpověď

Dekuju vsem za prispevky, ale nakonec jsem si pozval kamose z byvale prace a ten mi to vyresil, ...

Pro zajemce dam k dispozici kod.

Misto Edit jsem nakonec pouzil komponentu DBEdit ..

Tohle je procedura,ktera zjistuje z field (0)  {1.sloupec v tabulce .. identifikacni cislo} tu nejvyssi hodnotu, pricte k ni 1 a automaticky vepise do DBEdit .. Data1: 

procedure TForm2.FormShow(Sender: TObject);
var novahodnota: integer;
begin
  if operation = oInsert then
  begin
  query1.SQL.add('select max(data1) from znamky.db');
  query1.Open;
  NovaHodnota := strToInt(query1.Fields[0].asstring) + 1;
  query1.Close;
  datasource.DataSet.insert;
  datasource.DataSet.FieldByName('data1').AsString := inttostr(novahodnota);
  end
  else
  datasource.DataSet.edit;
end;

Tato procedura  uklada do tabulky hodnoty vsech BDEditu kliknutim na tlacitko "Ulozit"

procedure TForm2.BtUlozitClick(Sender: TObject);
begin
  datasource.DataSet.post;
  modalresult := mrOK;

Nahlásit jako SPAM
IP: 89.102.38.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032014 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý