|
 | | |
| Autor | Správa |
Manny
 Užívateľ
 Založený: 01.10.2009 Príspevky: 73 Vek: 22
 | Zaslal: Št 14.10.10 16:47 |   |
Ahoj,
pracujem teraz na takom free softe, čo má vedieť uchovávať poznámky takým spôsobom, aby sa dali ľahko dohľadať. Využívam na to SQLite3. Celkovo mám jedinú tabuľku, ktorá obsahuje stĺpce: NoteId, NoteName, NoteTag.
Jedná sa o to, že by som chcel každú poznámku (poznámkou chápem záznam v DB) vykresliť pomocou komponenty TNotebook, v ktorej budú ešte TMemo, TEdit a TLabel. Pre lepšie predstavenie by to malo vyzerať takto:
No, ide o to, že sa vykreslujú tieto "poznámky" vedľa seba s takým malým náhľadom, aby používateľ vedel, čo potrebuje. A mňa by zaujímalo ako runtimovo vykreslím TNotebook, v ktorom budú ďalšie komponenty a ako potom budem k nemu pristupovať (napr. ako zistím či používateľ klikol na nejakú z týchto komponentov).
Ďakujem za akékoľvek nápomocné reakcie. |
| |
     |
 |
Fico
 Skúsený užívateľ
 Založený: 11.01.2009 Príspevky: 1049
 | Zaslal: Št 14.10.10 17:45 |   |
Ak som správne pochopil, že potrebuješ za behu vytvárať komponent a patrične ošetrovať jeho eventy, tak skús toto: na formulár daj jeden TButton, po kliknutí ktorého sa vytvorí inštancia triedy TNotebook. Jej definícia je tu:
| kód: | TNotebook = class
private
memo1: TMemo;
edit1: TEdit;
public
constructor Create();
procedure OnMemoClick( Sender: TObject );
end; |
Nová premenná notebook1:
| kód: | var
Form1: TForm1;
notebook1: TNotebook; |
Immplementácia členských metód:
| kód: | constructor TNotebook.Create();
begin
memo1:= TMemo.Create( Form1 );
with memo1 do begin
parent:= Form1;
Left:= 10;
Top:= 10;
Width:= 160;
Height:= 60;
end;
edit1:= TEdit.Create( Form1 );
with edit1 do begin
parent:= Form1;
Left:= 10;
Top:= 80;
Width:= 160;
Height:= 20;
end;
memo1.OnClick:= OnMemoClick; // takto priradíš danému eventu procedúru, ktorá sa má vykonať
end;
procedure TNotebook.OnMemoClick( Sender: TObject );
begin
ShowMessage( 'Kliklo sa na memo' );
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
notebook1:= TNotebook.Create();
end;
|
Ak je to to, čo si potreboval, tak si to už len patrične uprav. |
| |
   |
 |
Manny
 Užívateľ
 Založený: 01.10.2009 Príspevky: 73 Vek: 22
 |
OK, toto mi je jasné, akurát som nenašiel vytvorenie samotného TNotebook-u. Potrebujem pochopit, ako vytvorím to TMemo a TEdit s nastavením na rodiča TNotebook. Teda aby to memo s editom patrili notebooku, nie formu ako je to teraz.
A ešte sa ťa spýtam, akým spôsobom budem pristupovať ku komponentám, ak ich budem takto vytvárať viac? Napr. takýmto spôsobom potrebujem vytvoriť 30x Memo a po kliknutí na nejaké musím identifikovať ku akému ID v databázi je to memo priradené. |
_________________ Bad news: Time flies. God news: You are the pilot! | |
     |
 |
coldak
 Skúsený užívateľ
 Založený: 29.10.2008 Príspevky: 936
 | Zaslal: Pi 15.10.10 10:05 |   |
rozsir class TNotebook o parameter row_id do ktoreho budes zapisovat id riadku z tabulky.
samozrejme jedna z moznosti ako vytvorit viac instancii je miesto jednej premennej si zadefinovat a pri vytvarani noveho notebooku postupovat napriklad takto | kód: | | notebooks.add(TNotebook.create()); |
toto je len jednoducha verzia, vyhodnejsie je si urobit nejakeho managera instancii notebookov ktory bude manageovat vytvaranie, rusenie, vyhladavanie ...
ak mam niekde nejaku chybu tak sa ospravedlnujem, uz som s delphi davno nerobil. |
| |
  |
 |
|
Nemôžete pridávať nové témy do tohto fóra. Nemôžete odpovedať na témy v tomto fóre. Nemôžete upravovať svoje príspevky v tomto fóre. Nemôžete mazať svoje príspevky v tomto fóre. Nemôžete hlasovať v tomto fóre.
|
| |